steipete avatar

Video Transcript Downloader

A clean wrapper around yt-dlp that defaults to giving you transcripts as readable paragraphs instead of raw subtitle files. It tries YouTube's transcript API first, then falls back to subtitles when needed. You get timestamped output only when you ask for it, and bracketed noise like [Music] is stripped by default. Beyond transcripts, it handles the usual yt-dlp tasks: downloading video, audio, subtitles, listing formats, and passing through custom flags. The subcommands have focused help screens, which is nice when you're not sure what options exist. If you're building agents that need to read video content or just want a friendlier interface to yt-dlp's transcript capabilities, this saves you from writing the same cleanup logic every time.

skills.sh installs
1.1K
GitHub stars
7.5K
last updated
Aug 21, 2026

Install

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

Installs into .claude/skills of the current project.

Files

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, including with --timestamps. Empty cleaned subtitles exit with an error and remove their temporary files.

Setup

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

CLI syntax:

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

Subcommands support focused help without requiring --url.

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

Sponsors

Details

Repository
github.com/steipete/agent-scripts
Category
AI & Agent Building
First seen
May 16, 2026

More from steipete/agent-scripts

All 9
1getsentry avatarsentry-react-setupgetsentry/sentry-agent-skillsSetup Sentry in React apps. Use when asked to add Sentry to React, install @sentry/react, or configure error monitoring, error boundaries, session replay, or br1.1Kskills.sh installs
2K-Dense-AI avatarpkpd-modelingK-Dense-AI/scientific-agent-skillsPharmacokinetic and pharmacodynamic modelling and simulation - non-compartmental analysis, compartmental and population PK, PK/PD and exposure-response, TMDD, P1.1Kskills.sh installs
3orchestra-research avatarsegment-anything-modelorchestra-research/ai-research-skillsFoundation model for image segmentation with zero-shot transfer. Use when you need to segment any object in images using points, boxes, or masks as prompts, or 1.1Kskills.sh installs
4orchestra-research avatarunslothorchestra-research/ai-research-skillsExpert guidance for fast fine-tuning with Unsloth - 2-5x faster training, 50-80% less memory, LoRA/QLoRA optimization1Kskills.sh installs
5dbt-labs avatarbuilding-dbt-semantic-layerdbt-labs/dbt-agent-skillsUse when creating or modifying dbt Semantic Layer components — semantic models, metrics, dimensions, entities, measures, or time spines. Covers MetricFlow confi1Kskills.sh installs
6tinybirdco avatartinybird-typescript-sdk-guidelinestinybirdco/tinybird-agent-skillsTinybird TypeScript SDK for defining datasources, pipes, and queries with full type inference. Use when working with @tinybirdco/sdk, TypeScript Tinybird projec1Kskills.sh installs