Skip to main content

youtube-transcript

Fetch YouTube video transcripts using uvx and youtube-transcript-api

Quellinformationen

Repository
lefant/agent-skills
Letzte Quellaktivität
4. Februar 2026 um 10:28
Erkannte Sprache von SKILL.md
Englisch
Sterne
1
Forks
1

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.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
youtube-transcript
description
Fetch YouTube video transcripts using uvx and youtube-transcript-api
invocationPattern
when user provides a YouTube URL or asks to get/fetch a YouTube transcript
# YouTube Transcript Skill ## Purpose Fetch transcripts from YouTube videos for analysis, note-taking, research, or content extraction. Uses `uvx` to run `youtube-transcript-api` without requiring installation. ## When to Use Call this skill when: - User provides a YouTube URL (e.g., `https://www.youtube.com/watch?v=VIDEO_ID`) - User asks to "get the transcript", "fetch YouTube transcript", or "transcribe this video" - User wants to analyze, summarize, or extract content from a YouTube video - User needs video content for research or documentation purposes ## Quick Reference **Basic usage:** ```bash # From full URL uvx --from youtube-transcript-api youtube_transcript_api VIDEO_ID --format text # Extract video ID from URL # https://www.youtube.com/watch?v=LvLdNkgO-N0 → LvLdNkgO-N0 ``` **Output formats:** - `--format text` - Plain text (recommended for reading/analysis) - `--format json` - JSON with timestamps - `--format srt` - SubRip subtitle format - `--format vtt` - WebVTT subtitle format **Language selection:** ```bash # Specific language uvx --from youtube-transcript-api youtube_transcript_api VIDEO_ID --languages en --format text # Multiple language preferences uvx --from youtube-transcript-api youtube_transcript_api VIDEO_ID --languages en,es,fr --format text ``` ## Video ID Extraction YouTube URLs come in various formats: | Format | Example | Video ID | |--------|---------|----------| | Standard | `https://www.youtube.com/watch?v=LvLdNkgO-N0` | `LvLdNkgO-N0` | | Short | `https://youtu.be/LvLdNkgO-N0` | `LvLdNkgO-N0` | | Embed | `https://www.youtube.com/embed/LvLdNkgO-N0` | `LvLdNkgO-N0` | | Mobile | `https://m.youtube.com/watch?v=LvLdNkgO-N0` | `LvLdNkgO-N0` | **Extract video ID with bash:** ```bash # From standard URL echo "https://www.youtube.com/watch?v=LvLdNkgO-N0" | grep -oP '(?<=v=)[^&]*' # From short URL echo "https://youtu.be/LvLdNkgO-N0" | grep -oP '(?<=youtu.be/)[^?]*' # Universal (works for most formats) echo "URL" | sed -E 's/.*[?&v=|youtu.be\/]([a-zA-Z0-9_-]{11}).*/\1/' ``` ## Saving Transcripts Transcripts can be saved to appropriate vault locations based on use case: | Use Case | Location | Example | |----------|----------|---------| | Research material | `3-resources/transcripts/` | `3-resources/transcripts/youtube-VIDEOID-title.md` | | Project reference | `1-projects/PROJECT/references/` | `1-projects/my-project/references/video-transcript.md` | | Area knowledge | `2-areas/AREA/references/` | `2-areas/development/references/claude-code-tutorial.md` | | Archived content | `4-archives/transcripts/` | `4-archives/transcripts/2026-01-old-tutorial.md` | **Naming convention:** ``` youtube-[video-id]-brief-description.md ``` Examples: - `youtube-LvLdNkgO-N0-claude-code-advanced-techniques.md` - `youtube-dQw4w9WgXcQ-rickroll.md` ## Skill Behavior When invoked: ### 1. Extract Video ID Parse the provided URL to extract the 11-character video ID: ```bash VIDEO_ID=$(echo "$URL" | sed -E 's/.*[?&v=|youtu.be\/]([a-zA-Z0-9_-]{11}).*/\1/') ``` ### 2. Fetch Transcript Use uvx to fetch the transcript without installation: ```bash uvx --from youtube-transcript-api youtube_transcript_api "$VIDEO_ID" --format text ``` ### 3. Handle Output The output may be large (>50KB). Common approaches: **Option A: Display excerpt** Show first ~2000 characters and ask if user wants it saved **Option B: Save directly** If user asked to "save" or "create note", save to appropriate location **Option C: Summarize** If user asked for summary, use the transcript as context for analysis ### 4. Save to Vault (if requested) ```bash # Save with proper naming OUTPUT_FILE="3-resources/transcripts/youtube-${VIDEO_ID}-${BRIEF_TITLE}.md" # Add frontmatter cat > "$OUTPUT_FILE" <<EOF --- source: https://www.youtube.com/watch?v=${VIDEO_ID} fetched: $(date +%Y-%m-%d) type: youtube-transcript --- # ${VIDEO_TITLE} ${TRANSCRIPT_CONTENT} EOF ``` ### 5. Error Handling Common errors and solutions: | Error | Cause | Solution | |-------|-------|----------| | "Subtitles are disabled" | Video has no transcript | Inform user, suggest alternatives | | "Video unavailable" | Invalid ID or region lock | Verify URL/ID | | "Could not retrieve transcript" | Language mismatch | Try `--languages en,auto` | ## Example Workflow ```bash # 1. User provides URL URL="https://www.youtube.com/watch?v=LvLdNkgO-N0" # 2. Extract video ID VIDEO_ID=$(echo "$URL" | sed -E 's/.*[?&v=|youtu.be\/]([a-zA-Z0-9_-]{11}).*/\1/') # 3. Fetch transcript TRANSCRIPT=$(uvx --from youtube-transcript-api youtube_transcript_api "$VIDEO_ID" --format text) # 4. Save to vault cat > "3-resources/transcripts/youtube-${VIDEO_ID}-how-i-ai-claude-code.md" <<EOF --- source: https://www.youtube.com/watch?v=${VIDEO_ID} fetched: $(date +%Y-%m-%d) type: youtube-transcript title: "How I AI - Advanced Claude Code Techniques" --- # How I AI - Advanced Claude Code Techniques with John Lindquist ${TRANSCRIPT} EOF ``` ## Advanced Usage ### Timestamp Preservation Use JSON format to preserve timestamps for detailed analysis: ```bash uvx --from youtube-transcript-api youtube_transcript_api VIDEO_ID --format json | jq -r '.[] | "[\(.start | floor)]s: \(.text)"' ``` ### Batch Processing Process multiple videos: ```bash for video_id in VIDEO_ID1 VIDEO_ID2 VIDEO_ID3; do uvx --from youtube-transcript-api youtube_transcript_api "$video_id" --format text > "transcript-${video_id}.txt" done ``` ### Language Detection List available languages: ```bash uvx --from youtube-transcript-api youtube_transcript_api VIDEO_ID --list-transcripts ``` ## Related Tools - **yt-dlp**: Alternative tool for downloading videos and subtitles (can run via `uvx yt-dlp`) - **youtube-dl**: Older alternative (less maintained) - **WebFetch**: For general web content (doesn't work well for YouTube) ## Related Skills This skill complements other research and documentation workflows: - **Web clipping skills**: For capturing written content - **Note-taking skills**: For processing and summarizing transcripts - **Research skills**: For building knowledge bases from video content ## Common Use Cases 1. **Research Documentation**: Capture talks, tutorials, interviews for reference 2. **Content Analysis**: Extract key points from educational videos 3. **Meeting/Talk Notes**: Convert recorded presentations to searchable text 4. **Accessibility**: Create text versions of video content 5. **Quote Extraction**: Find specific statements or explanations ## Tips - First fetch downloads Python 3.14, subsequent runs are instant - Large transcripts (>50KB) should be saved to files rather than displayed - Auto-generated transcripts may have typos/errors - Manual transcripts (when available) are more accurate - Consider asking user where to save before creating files - Add metadata (title, date, source) to saved transcripts ## Skill Activation This skill activates when: - User provides a YouTube URL in their message - User explicitly requests a transcript: "get transcript from..." - User asks to analyze/summarize a YouTube video - User asks about YouTube transcript capabilities
Auf GitHub ansehen