YouTube Archiver
by @benmillerat
Archive YouTube playlists into markdown notes with metadata, transcripts, AI summaries, and tags. Use when a user asks to import/sync YouTube playlists, arch...
clawhub install youtube-archiverπ About This Skill
name: youtube-archiver description: Archive YouTube playlists into markdown notes with metadata, transcripts, AI summaries, and tags. Use when a user asks to import/sync YouTube playlists, archive Watch Later or Liked videos, enrich YouTube notes, batch process video notes, or automate recurring YouTube-to-markdown sync jobs with cron.
YouTube Archiver
Use this skill to import YouTube playlists into markdown files and optionally enrich notes with transcript, summary, and tagging.
Requirements
yt-dlp (pip install yt-dlp or brew install yt-dlp)cookies_file export is the safer pathcookies_fileFirst-run setup flow (interactive)
If no config exists at , ask these questions before running scripts.
Required questions
1. Where should archived notes be stored?
- Default: ./YouTube-Archive
2. Which playlists should be archived?
- Accept playlist IDs or URLs
- Default: LL (Liked Videos), WL (Watch Later)
3. Which browser is signed into YouTube for cookie auth?
- Default: chrome
Optional enrichment questions
Ask only if the user wants summaries/tags.
1. Generate AI summaries? (yes/no)
2. Summary provider? (openai, gemini, anthropic, openrouter, ollama, none)
3. Summary model name?
4. API key env var name?
5. Enable auto-tagging? (yes/no)
6. Tagging provider/model/env var?
7. Keep default tags or define custom vocabulary?
First-run execution sequence
1. Run init:
- python3
2. Edit from the userβs answers.
3. Verify auth with dry run:
- python3
4. Run real import.
5. Run enrichment (optional):
- python3
One-shot quick start
Use this for immediate manual sync:
python3 /scripts/yt-import.py --output
python3 /scripts/yt-enrich.py --output --limit 10
Useful import flags:
--dry-run--playlist (repeatable)--no-summary--no-tags--cookies --browser Useful enrich flags:
--dry-run--limit --strict-configIdempotency and safety behavior
video_id.Title [video_id].md.enriched: true./.yt-archiver.lock .Automation with cron (single-agent default)
Offer cron only after one successful manual run.
Example schedule (daily 11:00):
1. Import new videos 2. Enrich a bounded batch
Example task text:
Run yt-import.py for , then run yt-enrich.py --limit 10 for the same output. Keep it single-agent by default. Do not assume multi-agent routing.
Troubleshooting and provider details
Read these references when needed:
references/providers.mdreferences/troubleshooting.mdreferences/default-summary-prompt.md