automations / n8n · updated 2026-07-20
YouTube channel → transcript corpus
Paste a channel URL or @handle and get one item per video with the full transcript as plain text — the two-actor answer to "get transcripts for a whole channel." The channel actor lists the videos, the transcript actor reads each one, and captionless or unplayable videos exit as typed rows instead of stopping the corpus build.
A 50-video channel costs at most $0.18 — $0.025 to list it and $0.15 for the transcripts; captionless videos are $0.
What's inside
- 1.Run workflow (manual trigger — swap for a schedule to keep the corpus current)
- 2.List channel videos (HTTP Request → channel scraper, one item per video)
- 3.Split channel rows (IF on {{ $json.success }}; a bad handle exits as a typed row)
- 4.Collect video IDs (Code node: gathers the IDs and batches them 50 per transcript run)
- 5.Get transcripts (HTTP Request → transcript scraper, one item per video)
- 6.Split transcript rows (IF on {{ $json.success }})
- 7.Transcript text (true branch: video_id, title, and the segments joined to plain text)
- 8.Transcript / channel failure rows (false branches: code, request_id — not billed)
Set it up
Open the workflow on GitHub (button above), click Raw and copy that URL, then in n8n: Workflow → Import from URL. Replace YOUR_APIFY_TOKEN in BOTH HTTP nodes (List channel videos and Get transcripts). Put your channel in channelUrls — a URL, @handle, or UC… ID — and raise maxResults to walk deeper than 50 videos. The token comes from Apify Console → Settings → API tokens; the free tier works, and the run bills per delivered row on your Apify account.
Ways to extend it
- Wire Transcript text into a vector store or Notion to make the channel searchable — the text field is ready to embed.
- Add an OpenAI node after the true branch to summarize each video before saving.
- Swap the manual trigger for a weekly schedule and dedup on video_id downstream to only process new uploads.
- Duplicate List channel videos with the Shorts scraper URL to include the channel's Shorts in the same corpus.
Going deeper: the n8n transcripts guide — the full HTTP-node walkthrough, the async pattern for big batches, and the community-node alternative. Actor pricing: what a YouTube Channel Scraper run costs, what a YouTube Transcript Scraper run costs. Error codes the failure branch can carry: the error-code reference.