UNPKG

aiwg

Version:

Deployment tool and support utility for AI context. Copies agents, skills, commands, rules, and behaviors into the paths each AI platform reads (Claude Code, Codex, Copilot, Cursor, Warp, OpenClaw, and 6 more) so one source of truth works across 10 platfo

139 lines (112 loc) 5.42 kB
# Media Curator Framework Intelligent media archive management for building, curating, and maintaining comprehensive media collections. Handles discography analysis, source discovery, acquisition, quality assessment, metadata curation, and multi-platform export. ## Quick Start ```bash # Deploy the framework aiwg use media-curator # Analyze an artist's discography /analyze-artist "Twenty One Pilots" # Discover sources for specific content /find-sources "Twenty One Pilots" --scope "complete" # Acquire content from discovered sources /acquire --plan sources.yaml # Tag and organize the collection /tag-collection /path/to/collection # Check collection completeness /check-completeness "Twenty One Pilots" # Verify archive integrity /verify-archive /path/to/collection # Export for a specific platform /export --profile plex /path/to/collection /path/to/output ``` ## Capabilities | Capability | Agent | Command | |-----------|-------|---------| | Discography research and era identification | `discography-analyst` | `/analyze-artist` | | Multi-platform source discovery | `source-discoverer` | `/find-sources` | | Download orchestration with format selection | `acquisition-manager` | `/acquire` | | Audio/video quality scoring and filtering | `media-quality-assessor` | (integrated) | | Metadata tagging and artwork embedding | `metadata-curator` | `/tag-collection` | | Gap analysis and completeness tracking | `completeness-tracker` | `/check-completeness` | | Narrative and playlist assembly | (integrated) | `/assemble` | | Multi-platform format export | (integrated) | `/export` | | SHA-256 integrity verification | (integrated) | `/verify-archive` | ## Architecture ``` media-curator/ ├── agents/ │ ├── discography-analyst.md # Era/project identification │ ├── source-discoverer.md # Finding content across platforms │ ├── acquisition-manager.md # Download orchestration │ ├── media-quality-assessor.md # Accept/reject criteria │ ├── metadata-curator.md # Tagging and organization │ └── completeness-tracker.md # Gap analysis ├── commands/ │ ├── curate.md # Main orchestration entry point │ ├── analyze-artist.md # Discography analysis │ ├── find-sources.md # Source discovery │ ├── acquire.md # Download management │ ├── tag-collection.md # Metadata application │ ├── check-completeness.md # Gap analysis │ ├── assemble.md # Narrative/playlist assembly │ ├── export.md # Multi-platform output │ └── verify-archive.md # Integrity verification ├── skills/ │ ├── youtube-acquisition.md # yt-dlp patterns │ ├── archive-acquisition.md # Internet Archive patterns │ ├── audio-extraction.md # ffmpeg audio extraction │ ├── metadata-tagging.md # opustags/ffmpeg tagging │ ├── quality-filtering.md # Accept/reject logic │ ├── cover-art-embedding.md # Artwork embedding │ ├── integrity-verification.md # SHA-256 manifests │ ├── gap-documentation.md # GAP-NOTE.md pattern │ └── provenance-tracking.md # W3C PROV-O for media ├── config/ │ └── defaults.yaml # Default configuration └── docs/ ├── overview.md # Framework overview ├── user-guide.md # User guide └── standards-reference.md # Standards (PREMIS, PROV, ID3) ``` ## User Interaction Patterns ### Complete Collection ``` User: "My favorite band is Radiohead - build me the complete collection" → Analyzes eras, discovers sources, acquires systematically, delivers organized collection ``` ### Targeted Extraction ``` User: "I love early Metallica - Master of Puppets era" → Identifies 1983-1988, finds era-specific content, delivers focused collection ``` ### Event/Tour Focus ``` User: "Twenty One Pilots Bandito Tour - everything from that tour" → Identifies tour dates/venues, finds pro-shot performances, delivers tour archive ``` ## Quality Tiers | Tier | Sources | Action | |------|---------|--------| | 1: Official/Lossless | Bandcamp FLAC, official YouTube | Always accept | | 2: High Quality | YouTube Music AAC 256, SoundCloud 320 | Accept | | 3: Standard | YouTube AAC 128-256 | Accept if unique | | 4: Avoid | Phone recordings, heavy compression | Reject (unless legendary) | ## Standards | Standard | Usage | |----------|-------| | ID3v2.4 / Vorbis Comments | Audio metadata | | SHA-256 (NIST FIPS 180-4) | Integrity verification | | PREMIS 3.0 | Preservation fixity metadata | | W3C PROV-O | Provenance tracking | | ISO 8601 | Timestamps (UTC, nanosecond precision) | | MusicBrainz | Canonical discography data | ## Tools Required | Tool | Purpose | Install | |------|---------|---------| | `yt-dlp` | Video/audio acquisition | `pip install yt-dlp` | | `ffmpeg` | Transcoding, extraction | System package | | `opustags` | Opus metadata tagging | System package | | `sha256sum` | Integrity checksums | GNU coreutils | ## Related Issues - Epic: [#75](https://git.integrolabs.net/roctinam/ai-writing-guide/issues/75) - Child issues: #76-#83, #253