Free, local alternative to Apify actor — no third-party paid APIs.
Fetches all videos from a YouTube channel (or playlist), extracts available transcripts (auto-generated or manual), and exports to JSON/CSV.
yt-dlp installed ( https://github.com/yt-dlp/yt-dlp)jq installed (for JSON processing)bash
# Basic: fetch all transcripts from a channel
youtube_full_channel_transcripts channel_url="https://www.youtube.com/@SomeChannel" output_format="json"
# With filters
youtube_full_channel_transcripts channel_url="https://www.youtube.com/c/ChannelName" max_videos=50 languages="en" include_auto_generated=true
ParameterTypeRequiredDescriptionchannel_urlstringyesYouTube channel URL, handle, or playlist URLoutput_formatstringnoOutput format: json (default) or csv``max_videosintegernoLimit number of videos to process (default: all)languagesstringnoComma-separated language codes (e.g., en,es). Default: en``include_auto_generatedbooleannoInclude auto-generated transcripts? (default: true)output_dirstringnoDirectory to save results (default: workspace/exports/youtube-transcripts)
transcripts.json or transcripts.csv — structured data with:
json
{
"video_id": "abc123",
"title": "Video Title",
"url": "https://youtube.com/watch?v=abc123",
"upload_date": "20240322",
"duration": 360,
"language": "en",
"transcript": "Full text...",
"is_auto_generated": false
}
Summary printed to console: number of videos processed, success/failure counts.
yt-dlp --flat-playlist -J to list all videosyt-dlp --write-subs --sub-format srt --skip-download per video--sleep-interval if neededmax_videos to limit.