YouTube Transcript (yt-dlp captions)
by @itzsubhadip
Extract YouTube video transcripts from existing captions (manual or auto-generated) using yt-dlp, with optional timestamps and local SQLite caching. Use when...
clawhub install youtube-transcript-yt-dlpπ About This Skill
name: yt_transcript description: Extract YouTube video transcripts from existing captions (manual or auto-generated) using yt-dlp, with optional timestamps and local SQLite caching. Use when the user asks for a YouTube transcript, captions, subtitles, or wants to turn a YouTube link into text for summarization/search. metadata: {"openclaw":{"requires":{"bins":["python3","yt-dlp"]},"os":["linux","darwin","win32"]}} user-invocable: true
YouTube Transcript (Captions-Only)
This skill extracts transcripts from existing YouTube captions.
Primary behavior
--text)
Reliability behavior
yt-dlp reports no captions for a video, the script tries a fallback:get_transcript) when accessibleThis published version intentionally does not call third-party transcript providers.
Privacy note: This published version only contacts YouTube directly (via yt-dlp and the transcript panel fallback). It does not send video IDs/URLs to third-party transcript providers.
Cookies: Cookies are treated as secrets.
--cookies / YT_TRANSCRIPT_COOKIES, but does not auto-load cookies from inside the skill directory.~/.config/yt-transcript/.Path safety: This skill restricts --cookies and --cache paths to approved directories.
~/.config/yt-transcript/{baseDir}/cache/ and ~/.config/yt-transcript/How to run
Script path:
{baseDir}/scripts/yt_transcript.pyTypical usage:
python3 {baseDir}/scripts/yt_transcript.py python3 {baseDir}/scripts/yt_transcript.py --lang en python3 {baseDir}/scripts/yt_transcript.py --text python3 {baseDir}/scripts/yt_transcript.py --no-ts Cookies (optional, but often required on VPS IPs):
python3 {baseDir}/scripts/yt_transcript.py --cookies /path/to/youtube-cookies.txt YT_TRANSCRIPT_COOKIES=/path/to/youtube-cookies.txtPublishing safety note: Cookies are optional, so YT_TRANSCRIPT_COOKIES is intentionally not required by skill metadata. Only set it if you need authenticated access.
Best practice: store cookies outside the skill folder (so you never accidentally publish them), e.g. ~/.config/yt-transcript/youtube-cookies.txt, and point to it via --cookies or YT_TRANSCRIPT_COOKIES.
What the script returns
JSON mode (default)
A JSON object:video_id: 11-char idlang: chosen languagesource: manual | auto | panelsegments: list of { start, duration, text } (or text-only when --no-ts)Text mode (--text)
A newline-separated transcript.
[12.34s].--no-ts to output only the text lines.Caching
Default cache DB:
{baseDir}/cache/transcripts.sqliteCache key includes:
video_id, lang, source, include_timestamp, formatCookie handling (important)
Recommended local path (ignored by git/publish):
{baseDir}/cache/youtube-cookies.txt (chmod 600)Notes (safety + reliability)
yt-dlp is missing, instruct the user to install it (recommended):pipx install yt-dlp
- ensure yt-dlp is on PATH