# Video Transcript Downloader

Yt-dlp downloads: video, audio, subtitles, transcripts, clips, playlists.

- Repository: https://github.com/steipete/agent-scripts (7431 stars)
- Category: Media
- License: MIT
- Last updated: 2026-10-30
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add steipete/agent-scripts --skill video-transcript-downloader -g -a claude-code -y`
Codex: `npx skills add steipete/agent-scripts --skill video-transcript-downloader -g -a codex -y`
Cursor: `npx skills add steipete/agent-scripts --skill video-transcript-downloader -g -a cursor -y`
Gemini CLI: `npx skills add steipete/agent-scripts --skill video-transcript-downloader -g -a gemini-cli -y`

## Description

yt-dlp downloads: video, audio, subtitles, transcripts, clips, playlists.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# 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`:

The rest: https://github.com/steipete/agent-scripts/blob/HEAD/skills/video-transcript-downloader/SKILL.md
