Skip to content

media-ingest

Safe, reviewable renaming and organization of multi-camera trip media for DaVinci Resolve projects.

After a trip, raw media from iPhones, DJI Osmo cameras, and DJI mics lands in a project folder with device-native names and a mess of timezone conventions. media-ingest renames everything to a consistent YYYY-MM-DDTHHMMSS - Device - id.ext scheme, organized into per-day folders, so that sorting by filename gives perfect chronological order across every device.

Why not just a rename script

Renaming a couple thousand vacation files in one shot is error prone. DJI devices store UTC in metadata while their filenames and the DJI Mic use local time, iPhones are timezone-aware and switch zones automatically mid-trip, and two identical iPhone models can collide on the same second. A single mistake bakes a wrong offset into hundreds of filenames.

media-ingest splits the job into read-only steps you can review, then makes the one destructive step journaled and reversible. Nothing moves until you have looked at a plan and an HTML timeline report and decided it is correct.

The workflow

init  ->  scan  ->  plan  ->  (review report, spot-check with align)  ->  apply
                                                                            |
                                                                          undo
  • init writes a config file at the project root.
  • scan reads metadata and hashes for every raw file. Read-only.
  • plan computes the renames, warnings, and an HTML timeline report. Read-only.
  • align shows what every device captured around a given clip, using iPhone media as the trusted clock.
  • apply performs journaled, idempotent, same-volume renames.
  • undo replays the journal in reverse.
  • report regenerates the HTML report from the existing plan.

Where to go next