
youtube-transcripts
by grahama1970
SKILL.md
name: youtube-transcripts description: > Extract transcripts from YouTube videos. Use when user says "get transcript", "transcribe this video", "what does this YouTube video say", "extract captions", "youtube transcript", or provides a YouTube URL and wants the text content. allowed-tools: Bash, Read triggers:
- get transcript
- transcribe video
- youtube transcript
- extract captions
- what does this video say
- get subtitles from
- youtube url text metadata: short-description: YouTube transcript extraction
YouTube Transcripts Skill
Extract transcripts from YouTube videos with three-tier fallback:
- Direct - youtube-transcript-api (fastest)
- Proxy - IPRoyal residential proxy rotation (handles rate limits)
- Whisper - yt-dlp audio download → OpenAI Whisper (last resort)
Quick Start
# Get transcript (auto-fallback through all tiers)
python .agents/skills/youtube-transcripts/youtube_transcript.py get -i dQw4w9WgXcQ
# Skip proxy tier
python .agents/skills/youtube-transcripts/youtube_transcript.py get -i VIDEO_ID --no-proxy
# Skip whisper tier
python .agents/skills/youtube-transcripts/youtube_transcript.py get -i VIDEO_ID --no-whisper
# List available transcript languages
python .agents/skills/youtube-transcripts/youtube_transcript.py list-languages -i VIDEO_ID
# Check proxy configuration
python .agents/skills/youtube-transcripts/youtube_transcript.py check-proxy
Commands
Get Transcript
python .agents/skills/youtube-transcripts/youtube_transcript.py get \
--url "https://youtube.com/watch?v=dQw4w9WgXcQ" \
--lang en
Options:
| Option | Short | Description |
|---|---|---|
--url | -u | YouTube video URL |
--video-id | -i | Video ID directly |
--lang | -l | Language code (default: en) |
--no-proxy | Skip proxy tier | |
--no-whisper | Skip Whisper fallback tier | |
--retries | -r | Max retries per tier (default: 3) |
Output: JSON with transcript segments (text, start time, duration)
List Available Languages
python .agents/skills/youtube-transcripts/youtube_transcript.py list-languages -i VIDEO_ID
Output: JSON with available transcript languages
Check Proxy
python .agents/skills/youtube-transcripts/youtube_transcript.py check-proxy
python .agents/skills/youtube-transcripts/youtube_transcript.py check-proxy --test-rotation
Tests IPRoyal proxy connectivity and IP rotation.
Output Format
{
"meta": {
"video_id": "dQw4w9WgXcQ",
"language": "en",
"took_ms": 3029,
"method": "direct"
},
"transcript": [
{"text": "Hello world", "start": 0.0, "duration": 2.5},
{"text": "This is a test", "start": 2.5, "duration": 3.0}
],
"full_text": "Hello world This is a test...",
"errors": []
}
Method values: direct, proxy, whisper, or null (if all failed)
Three-Tier Fallback
Tier 1: Direct
- Uses youtube-transcript-api without proxy
- Fastest, no additional cost
- May fail with rate limits on repeated requests
Tier 2: IPRoyal Proxy
- Uses IPRoyal residential proxy (auto-rotates IPs)
- Handles rate limiting (429) and blocking (403)
- Requires proxy credentials
Environment variables:
| Variable | Description |
|---|---|
IPROYAL_HOST | Proxy host (e.g., geo.iproyal.com) |
IPROYAL_PORT | Proxy port (e.g., 12321) |
IPROYAL_USER | Proxy username |
IPROYAL_PASSWORD | Proxy password |
Tier 3: Whisper Fallback
- Downloads audio with yt-dlp
- Transcribes with OpenAI Whisper API
- Works for videos with disabled captions
- Costs ~$0.006/minute of audio
Environment variables:
| Variable | Description |
|---|---|
OPENAI_API_KEY | OpenAI API key for Whisper |
Dependencies
pip install youtube-transcript-api requests yt-dlp openai
youtube-transcript-api- Tier 1 & 2requests- Proxy supportyt-dlp- Tier 3 audio downloadopenai- Tier 3 transcription
Integration with Memory
# Get transcript
python .agents/skills/youtube-transcripts/youtube_transcript.py get -i VIDEO_ID > transcript.json
# Ingest into memory
memory-agent workspace-ingest --source transcript.json --scope youtube
Limitations
- Tier 1-2 require captions (auto-generated or manual)
- Tier 3 (Whisper) works for any video but costs money
- Private/unlisted videos may not be accessible
- Very long videos may exceed Whisper file size limits (25MB)
スコア
総合スコア
リポジトリの品質指標に基づく評価
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
レビュー
レビュー機能は近日公開予定です