Skip to main content

youtube-transcripts

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.

Zur Installation springen

Quellinformationen

Repository
grahama1970/fetcher
Letzte Quellaktivität
20. Januar 2026 um 12:53
Erkannte Sprache von SKILL.md
Englisch
Sterne
2
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
2 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
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**: 1. **Direct** - youtube-transcript-api (fastest) 2. **Proxy** - IPRoyal residential proxy rotation (handles rate limits) 3. **Whisper** - yt-dlp audio download → OpenAI Whisper (last resort) ## Quick Start ```bash # 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 ```bash 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 ```bash python .agents/skills/youtube-transcripts/youtube_transcript.py list-languages -i VIDEO_ID ``` **Output:** JSON with available transcript languages ### Check Proxy ```bash 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 ```json { "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 ```bash pip install youtube-transcript-api requests yt-dlp openai ``` - `youtube-transcript-api` - Tier 1 & 2 - `requests` - Proxy support - `yt-dlp` - Tier 3 audio download - `openai` - Tier 3 transcription ## Integration with Memory ```bash # 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)
Auf GitHub ansehen