Skip to main content
skill CX Codex

video-transcript-downloader — Claude Code skill: transcripts

Turns a video into a clean paragraph of text, or downloads the video, audio track or subtitles through yt-dlp. Useful when you would rather skim a talk than watch it.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add steipete/agent-scripts --skill video-transcript-downloader -a claude-code
Open on GitHub

What video-transcript-downloader does

The skill ships a single script, scripts/vtd.js, that the agent calls with a subcommand. Transcripts come out as one paragraph by default; add --timestamps to keep timing, add --keep-brackets to keep cues like [Music]. On YouTube it first tries youtube-transcript-plus, and falls back to pulling subtitles with yt-dlp and flattening them into prose.

The other subcommands are download, audio, subs and formats. formats lists format ids, resolution and container, so you can pick before committing to a download. Anything after -- goes straight to yt-dlp, which is how --remux-video mp4 wraps the result in mp4 without re-encoding.

Run npm ci inside the skill folder once before the first call. The script needs yt-dlp and ffmpeg on the machine; on macOS brew install yt-dlp ffmpeg covers both. Subcommand help works without a link, so ./scripts/vtd.js transcript --help is the fastest way to see the flags.

What it helps with

  • read a recorded talk as plain text
  • pull the audio track out for transcription
  • download subtitles in one language
  • flatten a transcript into one paragraph without timestamps
  • inspect available formats before choosing one

Example prompts for the agent

  • Pull the transcript from this video and give it to me as one paragraph
  • Download the audio from that link into ~/Downloads
  • List the formats for this video, I want to pick one

How to install video-transcript-downloader

1Skills CLI (Vercel)

npx skills add steipete/agent-scripts --skill video-transcript-downloader -a claude-code

2Manually: put the files in place

~/.claude/skills/video-transcript-downloader/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/video-transcript-downloader/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about video-transcript-downloader

How do I install video-transcript-downloader in Claude Code?

Run npx skills add steipete/agent-scripts --skill video-transcript-downloader -a claude-code. The skill lands at ~/.claude/skills/video-transcript-downloader/SKILL.md; then run npm ci inside that folder.

What does video-transcript-downloader do?

It prints a video transcript as a single paragraph, or downloads the video, audio or subtitle files. Both paths go through scripts/vtd.js with different subcommands.

Does it need anything installed first?

yt-dlp and ffmpeg. The script shells out to them for subtitles and for downloads, so a missing binary breaks the run.

Source text

SKILL.md · MIT
---
name: video-transcript-downloader
description: "yt-dlp downloads: video, audio, subtitles, transcripts, clips, playlists."
---

# 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 `youtube-transcript-plus` when possible.
- Otherwise: pull subtitles via `yt-dlp`, then clean into a paragraph.

## Setup

```bash
cd ~/Projects/agent-scripts/skills/video-transcript-downloader && npm ci
```

CLI syntax:

```bash
./scripts/vtd.js --help
./scripts/vtd.js transcript --help
```

Subcommands support focused help without requiring `--url`.

## Transcript (default: clean paragraph)

```bash
./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

```bash
./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):

```bash
./scripts/vtd.js formats --url 'https://…'
```

Download a specific format id (example):

```bash
./scripts/vtd.js download --url 'https://…' --output-dir ~/Downloads -- --format 137+140
```

Prefer MP4 container without re-encoding (remux when possible):

```bash
./scripts/vtd.js download --url 'https://…' --output-dir ~/Downloads -- --remux-video mp4
```

## Notes

- Default transcript output is a single paragraph. Use `--timestamps` only when asked.
- Bracketed cues like `[Music]` are stripped by default; keep them via `--keep-brackets`.
- Pass extra `yt-dlp` args after `--` for `transcript` fallback, `download`, `audio`, `subs`, `formats`.

```bash
./scripts/vtd.js formats --url 'https://…' -- -v
```

## Troubleshooting (only when needed)

- Missing `yt-dlp` / `ffmpeg`:

```bash
brew install yt-dlp ffmpeg
```

- Verify:

```bash
yt-dlp --version
ffmpeg -version | head -n 1
```

© steipete · MIT · steipete/agent-scripts

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set4

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor