By michaeldboyd
Catalog photos and video with AI-powered semantic tags, descriptions, and searchable database
Note: This plugin was mostly vibed up by Claude. YMMV.
Point it at a folder of media files and it will scan, extract keyframes, analyze visuals using Claude's vision, generate rich tags, and store everything in a searchable catalog.
.meta.json sidecars alongside each original filePhotos: .jpg .jpeg .png .tiff .heic .heif .webp .cr2 .cr3 .nef .arw .dng .raf
Video: .mp4 .mov .avi .mkv .mts .m2ts .mxf .r3d .braw
pip install Pillow)Clone the repo into your project and run the setup script:
git clone https://github.com/michaeldboyd/media-ingest.git
cd media-ingest
./scripts/setup.sh
Or manually: ensure ffmpeg and Pillow are installed, then open Claude Code in any parent directory containing this plugin folder.
/ingest /path/to/media/folder
Scans the folder, extracts keyframes from video, analyzes everything visually, and builds the catalog. Each file gets a .meta.json sidecar with tags, description, and technical metadata. A media_catalog.db SQLite database is created at the root of the media folder.
/search-media sunset ocean
Searches tags and descriptions across your catalog and returns matching assets.
The plugin also activates automatically when you say things like:
Each asset gets 10-30 semantic tags across categories like subject matter, environment, lighting, weather, camera/shot type, action, mood, color palette, and production context. Tags are lowercase and hyphenated (golden-hour, slow-motion, establishing-shot).
See skills/media-ingest/references/tag_taxonomy.md for the full taxonomy.
media-ingest/
├── .claude-plugin/
│ └── plugin.json # Plugin manifest
├── commands/
│ ├── ingest.md # /ingest slash command
│ └── search-media.md # /search-media slash command
├── skills/
│ └── media-ingest/
│ ├── SKILL.md # Core skill (pipeline, tagging guidelines, schema)
│ └── references/
│ └── tag_taxonomy.md # Tag vocabulary and conventions
└── scripts/
├── setup.sh # Dependency checker and installer
├── scan_media.py # Media file discovery
├── extract_keyframes.py # FFmpeg keyframe extraction
└── catalog_db.py # SQLite catalog management
Apache 2.0 — see LICENSE.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
npx claudepluginhub michaeldboyd/media-ingest --plugin media-ingestAI-powered visual asset management for Claude Code. Search, tag, analyze, edit, and organize your media library using natural language.
MCP server for intelligent photo management with Immich — interactive HTML galleries with Cowork Actions Panel, geographic album curation, library cleanup, duplicate detection, people & face management, trash management, metadata repair, and 36 MCP tools. The first MCP server for self-hosted photo management.
Turn videos into a sequence of relevant still frames + transcript + a self-contained HTML report so Claude can view them as images, hear the audio, and write its analysis back into the report. Pass a local path, an http(s) URL, or pipe video bytes on stdin.
Process videos using VideoDB Python SDK. Upload, search, edit, generate subtitles, transcode, capture, and stream — all via natural language.
Computer vision image processing and analysis
TwelveLabs video AI integration. Index, search, and analyze videos using TwelveLabs' multimodal AI platform.