.claude/skills/ingest-youtube/SKILL.md
Extract transcript from YouTube videos for wiki ingestion. Lazy-installs yt-dlp on first use.
npx skillsauth add RonanCodes/llm-wiki ingest-youtubeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Extract auto-generated or manual subtitles from a YouTube video.
which yt-dlp >/dev/null 2>&1 || {
echo "Installing yt-dlp for YouTube transcript support..."
brew install yt-dlp
}
yt-dlp --dump-json --skip-download "<url>" 2>/dev/null | python3 -c "
import json, sys
data = json.load(sys.stdin)
print(f'Title: {data.get(\"title\", \"Unknown\")}')
print(f'Channel: {data.get(\"channel\", \"Unknown\")}')
print(f'Upload Date: {data.get(\"upload_date\", \"Unknown\")}')
print(f'Duration: {data.get(\"duration_string\", \"Unknown\")}')
print(f'Description: {data.get(\"description\", \"\")[:500]}')
"
VIDEO_ID="<extracted-id>"
yt-dlp --write-auto-sub --sub-lang en --skip-download --sub-format srt \
-o "/tmp/yt-ingest-${VIDEO_ID}" "<url>"
sed '/^[0-9]*$/d; /^$/d; /-->/d' "/tmp/yt-ingest-${VIDEO_ID}.en.srt" \
| awk '!seen[$0]++' \
> "/tmp/yt-ingest-${VIDEO_ID}.txt"
raw/<video-slug>-transcript.md with YAML header:---
source-url: <youtube-url>
title: <video-title>
author: <channel-name>
date-fetched: <today>
source-type: video
---
source-type: video in the source-note frontmatterIf no English subtitles available, try: --sub-lang en,en-US,en-GB
If still none, list available: yt-dlp --list-subs --skip-download "<url>"
data-ai
Extract transcript from a YouTube video as clean readable text. Use when user shares a youtube.com or youtu.be link and wants the transcript, content summary, or to read what was said.
development
Page type templates and frontmatter conventions for LLM Wiki pages. Reference skill loaded by ingest, query, and lint skills to ensure consistent wiki structure.
testing
Show status of all LLM Wiki vaults — page counts, source counts, last activity, and git status. Use when user wants to see vault status, list vaults, or check wiki health.
documentation
Import an existing Obsidian vault, markdown folder, or git repo as an llm-wiki vault. Moves content into vaults/, adds missing structure (index, log, CLAUDE.md, frontmatter). Use when user wants to import, adopt, migrate, or bring in an existing knowledge base.