Search

PythonReactSEOPDF
OpenClaw

youtube-archiver

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.

benmillerat0 source installs☆ 0 Repository stars

Installation

Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.

SkillHub CLI

skillhub install benmillerat/youtube-archiver

Inspect the source and compatibility requirements, then follow its installation steps.

Give your agent the source link and ask it to inspect instructions and dependencies before explaining the installation steps.

View source ↗Guides

Skill instructions

YouTube Archiver

Use this skill to import YouTube playlists into markdown files and optionally enrich notes with transcript, summary, and tagging.

Requirements

  • Python 3.7+
  • yt-dlp (pip install yt-dlp or brew install yt-dlp)
  • A browser signed into YouTube (for private playlists like Liked/Watch Later)
  • macOS: terminal needs Full Disk Access to read browser cookies
  • Windows: browser cookie extraction can be flaky; cookies_file export is the safer path
  • Linux: works on desktop installs; headless servers need cookies_file

First-run setup flow (interactive)

If no config exists at <output>/.config.json, 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 <skill>/scripts/yt-import.py --output <output-dir> --init
  2. Edit <output-dir>/.config.json from the user’s answers.
  3. Verify auth with dry run:
    • python3 <skill>/scripts/yt-import.py --output <output-dir> --dry-run
  4. Run real import.
  5. Run enrichment (optional):
    • python3 <skill>/scripts/yt-enrich.py --output <output-dir> --limit 10

One-shot quick start

Use this for immediate manual sync:

python3 <skill>/scripts/yt-import.py --output <output-dir>
python3 <skill>/scripts/yt-enrich.py --output <output-dir> --limit 10

Useful import...

Source information

Source
github
Repository
openclaw/skills
Path
skills/benmillerat/youtube-archiver
Version
—
Commit
5d519dfe18346794d378601f2c651ad7326735aa
Classification source
rules
Status
active
Visibility
public

These signals come from indexed source analysis and may lag behind changes. Check the current source files.

README

YouTube Archiver

An OpenClaw skill that archives YouTube playlists as markdown notes with AI-generated summaries, full transcripts, and auto-assigned tags.

What It Does

  • Archives YouTube playlists as individual markdown files
  • Each video gets: metadata, full transcript, AI summary, and topic tags
  • Two-phase pipeline: fast import (metadata only), then enrichment (AI calls)
  • Works with any LLM provider (OpenAI, Gemini, Anthropic, Ollama, OpenRouter) or none at all
  • Runs on macOS, Linux, and Windows

Example Output

---
title: "How to Self-Host Everything"
channel: "TechChannel"
url: https://www.youtube.com/watch?v=abc123
video_id: abc123
published: 2026-01-15
tags: ["youtube-archive", "self-hosted", "tutorial"]
enriched: true
---

# How to Self-Host Everything

## Summary
## Key Takeaways
- ...

## Transcript
> [!note]- Full Transcript
> ...

Requirements

  • Python 3.7+
  • yt-dlp (pip install yt-dlp)
  • A browser signed into YouTube (for private playlists)

No other dependencies. All HTTP calls use Python's stdlib urllib.

Install (OpenClaw)

clawhub install youtube-archiver

Or clone this repo into your OpenClaw skills directory.

Then ask your agent: "Archive my YouTube playlists" and it will walk you through setup.

Manual Usage (without OpenClaw)

The scripts work standalone too:

# Initialize config
python3 scripts/yt-import.py --output ~/YouTube-Archive --init

# Edit .config.json with your playlists and preferences

# Import videos (fast, metadata only)
python3 scripts/yt-import.py --output ~/YouTube-Archive

# Enrich with summaries + transcripts
python3 scripts/yt-enrich.py --output ~/YouTube-Archive --limit 10

Configuration

All preferences live in .config.json in the output directory:

{
  "playlists": [
    {"id": "LL", "name": "Liked Videos"},
    {"id": "WL", "name": "Watch Later"}
  ],
  "browser...

Extracted content

SKILL.md
# YouTube Archiver

Use this skill to import YouTube playlists into markdown files and optionally enrich notes with transcript, summary, and tagging.

## Requirements

- Python 3.7+
- `yt-dlp` (`pip install yt-dlp` or `brew install yt-dlp`)
- A browser signed into YouTube (for private playlists like Liked/Watch Later)
- **macOS**: terminal needs Full Disk Access to read browser cookies
- **Windows**: browser cookie extraction can be flaky; `cookies_file` export is the safer path
- **Linux**: works on desktop installs; headless servers need `cookies_file`

## First-run setup flow (interactive)

If no config exists at `<output>/.config.json`, 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 <skill>/scripts/yt-import.py --output <output-dir> --init`
2. Edit `<output-dir>/.config.json` from the user’s answers.
3. Verify auth with dry run:
   - `python3 <skill>/scripts/yt-import.py --output <output-dir> --dry-run`
4. Run real import.
5. Run enrichment (optional):
   - `python3 <skill>/scripts/yt-enrich.py --output <output-dir> --limit 10`

## One-shot quick start

Use this for immediate manual sync:

```bash
python3 <skill>/scripts/yt-import.py --output <output-dir>
python3 <skill>/scripts/yt-enrich.py --output <output-dir> --limit 10
```

Useful import...
README
# YouTube Archiver

An [OpenClaw](https://github.com/openclaw/openclaw) skill that archives YouTube playlists as markdown notes with AI-generated summaries, full transcripts, and auto-assigned tags.

## What It Does

- Archives YouTube playlists as individual markdown files
- Each video gets: metadata, full transcript, AI summary, and topic tags
- Two-phase pipeline: fast import (metadata only), then enrichment (AI calls)
- Works with any LLM provider (OpenAI, Gemini, Anthropic, Ollama, OpenRouter) or none at all
- Runs on macOS, Linux, and Windows

## Example Output

```markdown
---
title: "How to Self-Host Everything"
channel: "TechChannel"
url: https://www.youtube.com/watch?v=abc123
video_id: abc123
published: 2026-01-15
tags: ["youtube-archive", "self-hosted", "tutorial"]
enriched: true
---

# How to Self-Host Everything

## Summary
## Key Takeaways
- ...

## Transcript
> [!note]- Full Transcript
> ...
```

## Requirements

- Python 3.7+
- [yt-dlp](https://github.com/yt-dlp/yt-dlp) (`pip install yt-dlp`)
- A browser signed into YouTube (for private playlists)

No other dependencies. All HTTP calls use Python's stdlib `urllib`.

## Install (OpenClaw)

```bash
clawhub install youtube-archiver
```

Or clone this repo into your OpenClaw skills directory.

Then ask your agent: **"Archive my YouTube playlists"** and it will walk you through setup.

## Manual Usage (without OpenClaw)

The scripts work standalone too:

```bash
# Initialize config
python3 scripts/yt-import.py --output ~/YouTube-Archive --init

# Edit .config.json with your playlists and preferences

# Import videos (fast, metadata only)
python3 scripts/yt-import.py --output ~/YouTube-Archive

# Enrich with summaries + transcripts
python3 scripts/yt-enrich.py --output ~/YouTube-Archive --limit 10
```

## Configuration

All preferences live in `.config.json` in the output directory:

```json
{
  "playlists": [
    {"id": "LL", "name": "Liked Videos"},
    {"id": "WL", "name": "Watch Later"}
  ],
  "browser...

Related skills

OpenClaw

bambu-studio-ai

heyixuan2

Bambu Lab 3D printer control and automation. Activate when user mentions: printer status, 3D printing, slice, analyze model, generate 3D, AMS filament, print monitor, Bambu Lab, or any 3D printing task. Full pi...

OpenClaw

geo-optimization

capt-marbles

Generative Engine Optimization (GEO) for AI search visibility. Optimize content to appear in ChatGPT, Perplexity, Claude, and Google AI Overviews. Use when optimizing websites, pages, or content for LLM discove...

OpenClaw

0protocol

0isone

Agents can sign plugins, rotate credentials without losing identity, and publicly attest to behavior.