--- name: ingest-yt-history description: > Ingest YouTube and YouTube Music watch history from Google Takeout exports. Builds music taste profile for Horus persona with /memory integration. allowed-tools: Bash, Read triggers: - ingest youtube history - youtube watch history - youtube music history - google takeout youtube - find music for horus - what music do I like - music preferences metadata: short-description: YouTube history → Horus music discovery --- # YouTube History → Horus Music Discovery **Goal:** Let Horus persona easily find music based on human's listening history. ## Quick Start (Horus Persona) ```bash cd .pi/skills/ingest-yt-history # What music does the human like? ./run.sh find-music # Find music matching a mood ./run.sh find-music --mood melancholic ./run.sh find-music --mood epic # Get artist recommendations ./run.sh similar-artists "Chelsea Wolfe" # Search music history ./run.sh search "metal" --service youtube_music ``` ## Integration with Horus The skill stores music preferences in `/memory` so Horus can: 1. **Reference in conversations:** "Ah, you favor the grim cadence of Chelsea Wolfe..." 2. **Inform creative work:** Match story/movie mood to human's taste 3. **Connect via taxonomy:** Dark music → Horus's melancholic aesthetic ### Memory Integration ```bash # Sync music preferences to /memory ./run.sh sync-memory # Creates entries like: # - Category: music_preferences # - Tags: youtube_music, horus_lupercal, dark_folk, doom ``` ## Commands | Command | Description | |---------|-------------| | `find-music` | List music from history (filterable by mood, genre) | | `similar-artists` | Find artists similar to favorites | | `search` | Search history by title, channel, service | | `stats` | Show listening stats and top artists | | `sync-memory` | Export preferences to /memory | | `profile` | Generate taste profile JSON | ## One-Time Setup ### 1. Export from Google Takeout 1. Go to [Google Takeout](https://takeout.google.com) 2. Select only **"YouTube and YouTube Music"** → **History** 3. **Set format to JSON** (not HTML!) 4. Download and unzip ### 2. Ingest ```bash ./run.sh ingest ~/Downloads/Takeout/YouTube*/history/watch-history.json ``` ### 3. Sync to Memory ```bash ./run.sh sync-memory ``` ## Example Horus Queries ```bash # "What atmospheric music does the human listen to?" ./run.sh find-music --mood atmospheric # "Find something for a battle scene" ./run.sh find-music --mood epic --genre metal # "The human mentioned Chelsea Wolfe - what else like that?" ./run.sh similar-artists "Chelsea Wolfe" ``` ## Data Locations | Data | Location | |------|----------| | Raw history | `~/.pi/ingest-yt-history/history.jsonl` | | Music index | `~/.pi/ingest-yt-history/music_index.json` | | Taste profile | `~/.pi/ingest-yt-history/taste_profile.json` | | Memory entries | ArangoDB via `/memory` | ## Current Human's Profile From Takeout analysis (10,000 entries): **Music (dark/atmospheric):** - Chelsea Wolfe - dark folk, doom - Daughter - melancholic indie - Spiritbox - progressive metal - Billie Marten - atmospheric folk **Warhammer 40K (Horus lore):** - Luetin09, In Deep Geek, Stories by Imperium **Mood alignment with Horus:** High (dark, melancholic, epic)