YouTube Content Extraction
Extract transcripts, download audio or video, and retrieve metadata from YouTube using youtube-transcript-api (Python) and yt-dlp.
When to Use
- User wants to get the transcript of a YouTube video
- User wants to summarize a YouTube video without watching it
- User wants to download audio from a YouTube video
- User wants to download a video for offline viewing
- User wants to search for metadata (title, duration, views) of a video
How to Use
1. Install required tools
powershellpip install youtube-transcript-api pip install yt-dlp # Verify yt-dlp --version
2. Get a video transcript (Python)
pythonfrom youtube_transcript_api import YouTubeTranscriptApi video_id = "dQw4w9WgXcQ" # from youtube.com/watch?v=<id> transcript = YouTubeTranscriptApi.get_transcript(video_id) text = " ".join(entry["text"] for entry in transcript) print(text[:2000])
3. Get transcript in a specific language
pythonfrom youtube_transcript_api import YouTubeTranscriptApi video_id = "dQw4w9WgXcQ" # Try English first, then auto-generated transcript = YouTubeTranscriptApi.get_transcript(video_id, languages=["en", "en-US"]) text = " ".join(entry["text"] for entry in transcript)
4. List available transcript languages for a video
pythonfrom youtube_transcript_api import YouTubeTranscriptApi video_id = "dQw4w9WgXcQ" transcript_list = YouTubeTranscriptApi.list_transcripts(video_id) for t in transcript_list: print(t.language, t.language_code, "auto-generated:", t.is_generated)
5. Download audio (MP3) with yt-dlp
powershell$videoUrl = "https://www.youtube.com/watch?v=dQw4w9WgXcQ" yt-dlp -x --audio-format mp3 -o "%(title)s.%(ext)s" $videoUrl
6. Download video (best quality)
powershell$videoUrl = "https://www.youtube.com/watch?v=dQw4w9WgXcQ" yt-dlp -f "bestvideo+bestaudio" --merge-output-format mp4 -o "%(title)s.%(ext)s" $videoUrl
7. Download video at specific quality
powershell# List available formats first yt-dlp -F $videoUrl # Download 720p yt-dlp -f "bestvideo[height<=720]+bestaudio" --merge-output-format mp4 -o "%(title)s.%(ext)s" $videoUrl
8. Get video metadata (no download)
powershellyt-dlp --dump-json --no-download $videoUrl | python -m json.tool | Select-String -Pattern '"title"|"duration"|"view_count"|"upload_date"'
9. Download an entire playlist
powershell$playlistUrl = "https://www.youtube.com/playlist?list=PLxxxxxx" yt-dlp -x --audio-format mp3 -o "%(playlist_index)s-%(title)s.%(ext)s" $playlistUrl
Examples
"Get me the transcript of this YouTube tutorial so I can read it"
→ Use step 2 — extract video ID from URL and call get_transcript.
"Download the audio from this podcast episode on YouTube" → Use step 5 with the video URL to download as MP3.
"What languages are available for transcripts on this video?" → Use step 4 to list available transcript languages.
Cautions
youtube-transcript-apionly works for videos that have transcripts (manual or auto-generated)- Auto-generated transcripts may have errors, especially for technical content or non-English speech
- Downloading videos may be subject to YouTube's Terms of Service — use for personal research and fair use only
- yt-dlp may need updates when YouTube changes its API: run
yt-dlp -Uto update - Rate limiting may occur on rapid consecutive downloads — add delays between requests for playlists


