init¶
Write an ingest.toml template into a project directory.
init is the one command you run before there is any config. It creates ingest.toml at the project root, pre-filled with the trip timezone, the trip date range, and a best-guess list of the media directories to scan. It refuses to overwrite an existing ingest.toml, so it is safe to run into a directory you are not sure about.
Arguments¶
DIRECTORYis the project directory to initialize. It must already exist. Defaults to the current directory (.).
Options¶
--timezone,-tsets the trip timezone. Accepts an IANA name likeAmerica/New_Yorkor a fixed UTC offset like-04:00. Defaults toAmerica/New_York. See the timezone model for how this is used.--startsets the trip start date (YYYY-MM-DD). Captures outside the trip range are flagged during plan.--endsets the trip end date (YYYY-MM-DD).
If you omit --start or --end, they default to today's date, which you will almost certainly want to edit.
Example¶
cd "/Volumes/T7/PROJECTS/2026-03_my-trip"
media-ingest init --timezone -04:00 --start 2026-03-14 --end 2026-03-22
This writes ingest.toml and prints where it went. It then reminds you to edit the [scan] include list before scanning.
What it writes¶
The generated ingest.toml looks like this:
# media-ingest project configuration
[project]
# IANA name ("America/New_York") or fixed offset ("-04:00").
# Used to localize devices that record UTC (DJI and GoPro video metadata).
timezone = "-04:00"
# Expected trip date range; captures outside it are flagged for review.
start = 2026-03-14
end = 2026-03-22
[scan]
# Directories (relative to this file) containing raw, unrenamed media.
include = ["DCIM", "iphone-export", "mic"]
# Destination templates per device group (relative to this file).
# Available placeholders: {date}
[destinations]
action_cameras = "media/source/action_cameras/{date}"
iphones = "media/source/iphones/{date}"
photos = "media/source/photos/{date}"
mics = "audio/mics/{date}"
The include list¶
init populates [scan] include with the non-hidden subdirectories it finds, skipping a few conventional output folder names (media, audio, exports, graphics, and project) so it does not try to re-ingest already-organized material. This is only a guess. Open the file and make sure the list names only the folders that hold raw, unrenamed media, then run media-ingest scan.
Destination templates¶
Each device group renames into its own destination tree, with {date} expanded to the capture day (YYYY-MM-DD). The four groups are action_cameras (DJI Osmo and GoPro), iphones, photos (other cameras and screenshots), and mics (DJI Mic recordings). Edit the templates if you want a different layout. Any file whose group is not listed falls back to media/source/other/{date}.