youtube-tools

安装量: 136
排名: #6370

安装

npx skills add https://github.com/casper-studios/casper-marketplace --skill youtube-tools

YouTube Tools (yt-dlp) Overview Free, local YouTube operations using yt-dlp. No API keys required, no per-video costs. Works offline after installation. When to Use This vs Apify ┌─────────────────────────────────────────────────────────────────┐ │ DECISION: YouTube Tools (yt-dlp) vs Apify │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ Use youtube-tools (FREE) when: │ │ ├── Downloading videos to local storage │ │ ├── Extracting transcripts/subtitles │ │ ├── Getting video metadata (title, duration, views, etc.) │ │ ├── Bulk downloading playlists or channels │ │ ├── Converting to audio-only (MP3) │ │ └── You want zero API costs │ │ │ │ Use apify-scrapers when: │ │ ├── Scraping YouTube SEARCH results │ │ ├── Getting comments at scale │ │ ├── Channel analytics and statistics │ │ ├── Trending video discovery │ │ └── You need cloud-based processing │ │ │ └─────────────────────────────────────────────────────────────────┘ Quick Decision Tree What do you need? │ ├── Download video(s) │ ├── Single video → scripts/download_video.py URL │ ├── Multiple videos → scripts/download_video.py --urls-file list.txt │ ├── Playlist → scripts/download_video.py "playlist_url" │ ├── Audio only → scripts/download_video.py URL --audio-only │ └── Specific quality → scripts/download_video.py URL --quality 720p │ ├── Get transcript/subtitles │ ├── Auto-generated captions → scripts/get_transcript.py URL │ ├── Manual subtitles → scripts/get_transcript.py URL --manual-only │ ├── Specific language → scripts/get_transcript.py URL --lang es │ └── All available → scripts/get_transcript.py URL --all-langs │ ├── Get video metadata │ ├── Single video → scripts/get_video_info.py URL │ ├── Multiple videos → scripts/get_video_info.py --urls-file list.txt │ └── Playlist info → scripts/get_video_info.py "playlist_url" │ └── Advanced ├── Age-restricted → scripts/download_video.py URL --cookies-from-browser chrome ├── Private videos → Requires authentication (see references/yt-dlp-guide.md) └── Live streams → scripts/download_video.py URL --live-from-start Environment Setup

Install yt-dlp (required)

pip install yt-dlp

Optional: Install ffmpeg for format conversion

macOS

brew install ffmpeg

Ubuntu/Debian

sudo apt install ffmpeg

Windows

winget install ffmpeg No API keys required! This is completely free. Common Usage Download Single Video python scripts/download_video.py "https://www.youtube.com/watch?v=VIDEO_ID" Download with Specific Quality python scripts/download_video.py "https://youtu.be/VIDEO_ID" --quality 1080p Download Audio Only (MP3) python scripts/download_video.py "https://youtube.com/watch?v=VIDEO_ID" --audio-only Download Entire Playlist python scripts/download_video.py "https://youtube.com/playlist?list=PLAYLIST_ID" --output-dir ./videos Bulk Download from File

Create urls.txt with one URL per line

python scripts/download_video.py --urls-file urls.txt --output-dir ./downloads Get Transcript python scripts/get_transcript.py "https://youtube.com/watch?v=VIDEO_ID" Get Transcript in Specific Language python scripts/get_transcript.py "https://youtu.be/VIDEO_ID" --lang es Get Video Metadata python scripts/get_video_info.py "https://youtube.com/watch?v=VIDEO_ID" Get Metadata for Multiple Videos python scripts/get_video_info.py --urls-file videos.txt --output metadata.json Output Location All outputs save to .tmp/youtube/ by default: Videos: .tmp/youtube/videos/ Audio: .tmp/youtube/audio/ Transcripts: .tmp/youtube/transcripts/ Metadata: .tmp/youtube/metadata/ Cost FREE - No API keys, no per-video costs, no subscriptions. Security Notes Safe by Design URL validation: Only accepts YouTube URLs (youtube.com, youtu.be) Filename sanitization: Removes dangerous characters Output restriction: Only writes to .tmp/ directory No shell injection: Uses subprocess with argument lists, not string concatenation No stored credentials: Cookies only used when explicitly requested Copyright Warning Only download content you have rights to access Respect YouTube's Terms of Service Do not redistribute copyrighted content Use for personal/educational purposes Rate Limiting yt-dlp has built-in rate limiting For bulk downloads, use --sleep-interval 5 to avoid throttling YouTube may temporarily block IPs with excessive requests Troubleshooting Issue: "Video unavailable" Cause: Video is private, age-restricted, or region-locked Solution: Use --cookies-from-browser chrome for age-restricted content Issue: "Unable to extract video data" Cause: YouTube changed their page structure Solution: Update yt-dlp: pip install -U yt-dlp Issue: No subtitles found Cause: Video has no captions (auto or manual) Solution: Use --list-subs to see available subtitles first Issue: Slow downloads Cause: YouTube throttling or network issues Solution: Try --concurrent-fragments 4 for faster downloads Issue: Format conversion failed Cause: ffmpeg not installed Solution: Install ffmpeg (see Environment Setup) Integration Patterns Download + Transcribe + Summarize

1. Download video

python scripts/download_video.py "URL" --output-dir .tmp/video

2. Get transcript

python scripts/get_transcript.py "URL" --output .tmp/transcript.txt

3. Use content-generation to summarize

(transcript file is now ready for summarization)

Bulk Research Workflow

1. Get metadata for research videos

python scripts/get_video_info.py --urls-file research_videos.txt --output .tmp/metadata.json

2. Download transcripts for text analysis

python scripts/get_transcript.py --urls-file research_videos.txt --output-dir .tmp/transcripts

3. Use parallel-research to analyze content

Course Content Download

Download entire playlist as course modules

python scripts/download_video.py "PLAYLIST_URL" --output-dir .tmp/course --quality 720p

Get all transcripts for notes

python scripts/get_transcript.py "PLAYLIST_URL" --output-dir .tmp/course/transcripts Resources references/yt-dlp-guide.md - Complete yt-dlp reference with all options yt-dlp documentation : https://github.com/yt-dlp/yt-dlp#readme

返回排行榜