Home Media Organizer
A workflow for pulling 20+ years of family video tapes, photo prints, and scattered digital archives into one self-hosted library I actually own.
I had multiple decades of family media trapped in formats one hardware failure away from being lost — MiniDV tapes, VHS cassettes, boxes of photo prints, and years of digital pictures scattered across iCloud and old hard drives. This is the toolchain I built to consolidate it all into a single searchable library I control.
Immich
Immich is the foundation for the solution. Immich is a self-hosted photo and video management platform that positions itself as an open-source alternative to Google Photos and iCloud Photos, and it’s a strong fit for home media storage because it gives you full ownership of your library without recurring subscription fees or vendor lock-in. It runs in Docker on hardware you already own (a NAS, mini-PC, or home server), supports automatic background backup from iOS and Android, and offers the modern conveniences people expect from cloud photo services: facial recognition, object and scene detection, map views, smart search, shared albums, and timeline browsing. It handles original-quality storage by default — no silent re-encoding — and supports external libraries, so you can point it at an existing photo archive without having to copy everything into its managed storage. Active development, a healthy community, and a permissive license mean it’s evolving quickly and unlikely to disappear, while the self-hosted model means your photos stay on your network, your backup strategy is whatever you choose, and you’re never one pricing change or policy shift away from losing access to your own memories.
What it does
- Captures from the original media. MiniDV via a chain of FireWire and Thunderbolt adapters, VHS via a ClearClick Video2USB dongle, and prints via a rented Epson FastFoto FF-680W sheet scanner.
- Splits tapes into scenes automatically. A Python script uses PySceneDetect to find hard cuts, pulls a representative frame from each scene, and asks Claude’s vision API to generate a description and a sensible filename.
- Embeds metadata at ingestion. Capture dates, scene descriptions, and
source info get written into EXIF and XMP fields with
exiftoolso the library can index them later. - Stores everything on a Synology NAS with Immich pointed at the files as an external library — Immich indexes them in place without copying.
- Keeps Apple Photos in sync. A LaunchAgent rsyncs the Mac’s photo library to the NAS hourly over SSH.
- Backs up to S3 Glacier Deep Archive so a disaster-recovery copy lives off-site for pennies a month.
Why I built it
The cloud-photo services were both expensive and a single point of failure. I wanted family media that outlives any subscription — searchable, browsable, and on storage I control.
The thing I learned the hard way
Metadata is everything. Spending an extra hour at ingestion to get dates,
captions, and EXIF/XMP fields right saves days of unsearchable mess later.
Two specific traps cost me real time: FFmpeg’s -metadata flag writes to
the container, which Immich ignores, and edits made through Immich’s UI on
external-library files don’t get persisted back to disk. If it isn’t in the
file when you import it, it might as well not exist.