Indic-voice-pipeline video-downloader

install
source · Clone the upstream repo
git clone https://github.com/humancto/indic-voice-pipeline
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/humancto/indic-voice-pipeline "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/video-downloader" ~/.claude/skills/humancto-indic-voice-pipeline-video-downloader && rm -rf "$T"
manifest: skills/video-downloader/SKILL.md
source content

Video Downloader

Download videos, audio, and playlists from any URL. Supports 1000+ sites via yt-dlp.

Prerequisites

Run once to install dependencies:

pip install yt-dlp --quiet

ffmpeg is also required for audio extraction and format merging:

brew install ffmpeg  # macOS

Step-by-Step Workflow

For ANY video download request, follow these steps:

Step 1: Check dependencies

/usr/local/opt/python@3.11/bin/python3.11 ~/.claude/skills/video-downloader/scripts/check_deps.py

Step 2: Determine intent and run the appropriate command

User wants to download a video:

/usr/local/opt/python@3.11/bin/python3.11 ~/.claude/skills/video-downloader/scripts/video_downloader.py download "<URL>" --output-dir ~/Downloads

User wants audio only (music, podcast, etc.):

/usr/local/opt/python@3.11/bin/python3.11 ~/.claude/skills/video-downloader/scripts/video_downloader.py audio "<URL>" --output-dir ~/Downloads --audio-format mp3

User wants a full playlist:

/usr/local/opt/python@3.11/bin/python3.11 ~/.claude/skills/video-downloader/scripts/video_downloader.py playlist "<URL>" --output-dir ~/Downloads

User wants to see available formats/qualities:

/usr/local/opt/python@3.11/bin/python3.11 ~/.claude/skills/video-downloader/scripts/video_downloader.py formats "<URL>"

User wants video info without downloading:

/usr/local/opt/python@3.11/bin/python3.11 ~/.claude/skills/video-downloader/scripts/video_downloader.py info "<URL>"

Step 3: Report results

Tell the user:

  • Where the file was saved (full path)
  • File size
  • Video title and duration
  • Any subtitles that were downloaded

All Commands

# Download single video (default: best quality up to 1080p, saved to ~/Downloads)
/usr/local/opt/python@3.11/bin/python3.11 ~/.claude/skills/video-downloader/scripts/video_downloader.py download "<URL>"

# Download with quality cap
/usr/local/opt/python@3.11/bin/python3.11 ~/.claude/skills/video-downloader/scripts/video_downloader.py download "<URL>" --quality 720

# Download with specific format ID (use 'formats' command to find IDs)
/usr/local/opt/python@3.11/bin/python3.11 ~/.claude/skills/video-downloader/scripts/video_downloader.py download "<URL>" --format 137

# Download without subtitles
/usr/local/opt/python@3.11/bin/python3.11 ~/.claude/skills/video-downloader/scripts/video_downloader.py download "<URL>" --no-subs

# Download to custom directory
/usr/local/opt/python@3.11/bin/python3.11 ~/.claude/skills/video-downloader/scripts/video_downloader.py download "<URL>" --output-dir ~/Videos

# Download audio only as MP3
/usr/local/opt/python@3.11/bin/python3.11 ~/.claude/skills/video-downloader/scripts/video_downloader.py audio "<URL>"

# Download audio as M4A or Opus
/usr/local/opt/python@3.11/bin/python3.11 ~/.claude/skills/video-downloader/scripts/video_downloader.py audio "<URL>" --audio-format m4a
/usr/local/opt/python@3.11/bin/python3.11 ~/.claude/skills/video-downloader/scripts/video_downloader.py audio "<URL>" --audio-format opus

# Download entire playlist
/usr/local/opt/python@3.11/bin/python3.11 ~/.claude/skills/video-downloader/scripts/video_downloader.py playlist "<URL>"

# List available formats
/usr/local/opt/python@3.11/bin/python3.11 ~/.claude/skills/video-downloader/scripts/video_downloader.py formats "<URL>"

# Show video info without downloading
/usr/local/opt/python@3.11/bin/python3.11 ~/.claude/skills/video-downloader/scripts/video_downloader.py info "<URL>"

Important Notes

  • Default download location is
    ~/Downloads
  • All output is JSON to stdout, status messages go to stderr
  • A
    download_meta.json
    file is saved alongside each download
  • Quality options: 360, 480, 720, 1080, 4k (default: 1080)
  • Audio format options: mp3, m4a, opus (default: mp3)
  • yt-dlp supports 1000+ sites: YouTube, Vimeo, Twitter/X, TikTok, Instagram, Reddit, Twitch, etc.
  • Subtitles are downloaded by default (English, SRT format)
  • Playlist videos are numbered with zero-padded index prefix