Download YouTube transcripts for videos tracked in a CSV file. Use when you need to download transcripts in bulk with progress tracking, fetching transcripts overnight, processing video libraries, or when the user mentions "get transcripts", "download captions", or "bulk transcript download".
Why? Manually downloading transcripts one-by-one is tedious and error-prone. This skill automates bulk transcript downloads with rate limiting, progress tracking, and resume capability.
# Standard usage (recommended)
ytscriber download --folder <channel-name> --delay 60
# Single video (adds to default collection and downloads)
ytscriber add "https://www.youtube.com/watch?v=VIDEO_ID" --folder random
Ensure you have a CSV file with video URLs:
extract-videos skill, ORurl column# Check CSV exists and has videos
head -5 ~/Documents/YTScriber/<channel-name>/videos.csv
[!TIP] If you don't have a CSV yet, run
extract-videosfirst to build your video list from a YouTube channel.
ytscriber download --folder <folder-name> --delay 60
| Option | Description | Default | Notes |
|--------|-------------|---------|-------|
| --folder | Folder name containing videos.csv | Required | Uses platformdirs data path |
| --delay | Seconds between requests | 60 | Minimum 30, recommended 60+ |
| --verbose, -v | Enable verbose output | False | Shows download progress |
[!CAUTION] NEVER set
--delaybelow 30 seconds. YouTube will block your IP if you make requests too quickly. The default of 60 seconds exists for a reason. You WILL get banned and may wait hours before downloading again.
After the command completes:
# Check how many transcripts downloaded
ls -la ~/Documents/YTScriber/<folder-name>/transcripts/*.md | wc -l
# Verify CSV status updated
grep -c "success" ~/Documents/YTScriber/<folder-name>/videos.csv
The command automatically:
transcript_downloaded column with success/error/emptyTranscripts are saved as markdown with YAML frontmatter:
---
video_id: dQw4w9WgXcQ
video_url: https://www.youtube.com/watch?v=dQw4w9WgXcQ
title: Building Resilient Microservices at Scale
author: Jane Smith
published_date: 2025-03-15
length_minutes: 42.5
views: 15234
description: "Video description..."
is_generated: True
---
[Transcript text as continuous paragraph]
# Large channel - run overnight with safe delay
ytscriber download --folder aws-reinvent-2025 --delay 90 --verbose
# Smaller collection - minimum safe delay
ytscriber download --folder pycon-2024 --delay 30
| Problem | Cause | Solution |
|---------|-------|----------|
| "No transcript found" | Video lacks captions | Some videos have no captions available |
| IP blocked / 403 errors | Too many requests too quickly | Wait 30-60 minutes, then retry with --delay 120 |
| Script interrupted mid-run | Network issue or Ctrl+C | Re-run the exact same command; it skips completed videos |
| Empty transcript files | Auto-captions unavailable or video is live | Check if video has captions on YouTube; skip if not |
| "Folder not found" | Wrong folder name | Verify folder with ls ~/Documents/YTScriber/ |
| Slow downloads | Rate limiting working correctly | This is expected; 100 videos at 60s delay = ~2 hours |
Reducing delay to "speed up" - Do not set delay below 30 seconds. You will get IP banned. Use overnight runs for large batches.
Running without checking CSV first - Always verify your CSV exists and has videos before running. Empty CSVs waste time.
Not using resume capability - If interrupted, don't start over. Re-run the same command to resume from where you left off.
Before running:
url columnAfter running:
transcript_downloaded column updatednpx skills add dparedesi/download-transcripts下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Edit PDFs with natural-language instructions using the nano-pdf CLI.
Control Sonos speakers (discover/status/play/volume/group).
Terminal Spotify playback/search via spogo (preferred) or spotify_player.
Capture frames or clips from RTSP/ONVIF cameras.
CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.
Category:tools