Ingest YouTube and YouTube Music watch history from Google Takeout exports. Builds music taste profile for Horus persona with /memory integration.
Scanned 9/11/2026
Install to Claude Code
npx -y skills add grahama1970/agent-skills --skill ingest-yt-history --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Ingest Yt History?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/grahama1970-ingest-yt-history)More formats (shields.io, HTML) on the badges page.
---
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
provides:
- ingest-yt-history
composes:
- task-monitor
- agentic-evals
disciplines:
- data-engineering
- persona-simulation
---
# 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)
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!