Openclaw-master-skills video-transcript-downloader
Download videos, audio, subtitles, and clean paragraph-style transcripts from YouTube and any other yt-dlp supported site. Use when asked to “download this video”, “save this clip”, “rip audio”, “get subtitles”, “get transcript”, or to troubleshoot yt-dlp/ffmpeg and formats/playlists.
install
source · Clone the upstream repo
git clone https://github.com/LeoYeAI/openclaw-master-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/LeoYeAI/openclaw-master-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/video-transcript-downloader" ~/.claude/skills/leoyeai-openclaw-master-skills-video-transcript-downloader && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/LeoYeAI/openclaw-master-skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/video-transcript-downloader" ~/.openclaw/skills/leoyeai-openclaw-master-skills-video-transcript-downloader && rm -rf "$T"
manifest:
skills/video-transcript-downloader/SKILL.mdsource content
Video Transcript Downloader
./scripts/vtd.js can:
- Print a transcript as a clean paragraph (timestamps optional).
- Download video/audio/subtitles.
Transcript behavior:
- YouTube: fetch via
when possible.youtube-transcript-plus - Otherwise: pull subtitles via
, then clean into a paragraph.yt-dlp
Setup
cd ~/Projects/agent-scripts/skills/video-transcript-downloader && npm ci
Transcript (default: clean paragraph)
./scripts/vtd.js transcript --url 'https://…' ./scripts/vtd.js transcript --url 'https://…' --lang en ./scripts/vtd.js transcript --url 'https://…' --timestamps ./scripts/vtd.js transcript --url 'https://…' --keep-brackets
Download video / audio / subtitles
./scripts/vtd.js download --url 'https://…' --output-dir ~/Downloads ./scripts/vtd.js audio --url 'https://…' --output-dir ~/Downloads ./scripts/vtd.js subs --url 'https://…' --output-dir ~/Downloads --lang en
Formats (list + choose)
List available formats (format ids, resolution, container, audio-only, etc):
./scripts/vtd.js formats --url 'https://…'
Download a specific format id (example):
./scripts/vtd.js download --url 'https://…' --output-dir ~/Downloads -- --format 137+140
Prefer MP4 container without re-encoding (remux when possible):
./scripts/vtd.js download --url 'https://…' --output-dir ~/Downloads -- --remux-video mp4
Notes
- Default transcript output is a single paragraph. Use
only when asked.--timestamps - Bracketed cues like
are stripped by default; keep them via[Music]
.--keep-brackets - Pass extra
args afteryt-dlp
for--
fallback,transcript
,download
,audio
,subs
.formats
./scripts/vtd.js formats --url 'https://…' -- -v
Troubleshooting (only when needed)
- Missing
/yt-dlp
:ffmpeg
brew install yt-dlp ffmpeg
- Verify:
yt-dlp --version ffmpeg -version | head -n 1