[Free template] YouTube + TikTok transcripts in one workflow (works on n8n Cloud, no proxies)

Getting transcripts into n8n keeps breaking: old community nodes are deprecated, YouTube blocks cloud IPs (“Sign in to confirm you’re not a bot”), and TikTok needs yet another tool. I built two Apify Actors for this and wired them into a small template. Disclosure: I’m the author of both Actors.

What it does

Start → Videos to transcribe → Group by platform (Code) → Get transcripts (HTTP Request) → Clean output

  • Mix YouTube videos, Shorts, playlists, whole channels (https://www.youtube.com/@handle) and TikTok links (including tiktok.com/t/… share links) in one list
  • YouTube videos without captions are transcribed with Whisper AI (aiFallback: true)
  • TikTok uses TikTok’s own captions and falls back to Whisper. Music-only clips (dances, lip-syncs) are skipped and not charged
  • One synchronous call per platform (run-sync-get-dataset-items), so there’s no polling. A typical run takes 15–25 s
  • Output per video: status, url, title, author, source, wordCount, transcript

Setup (2 min)

  1. Apify account → Settings → API & Integrations → copy your token
  2. In Get transcripts (Apify) create a Header Auth credential: Name Authorization, Value Bearer YOUR_TOKEN
  3. Paste your links into Videos to transcribe and run

Cost (pay per result, failed/unavailable videos are free): $4 / 1,000 YouTube transcripts, $3 / 1,000 TikTok transcripts, AI transcription $0.006 per audio minute.

Ideas to extend: an LLM node for summaries/hooks/blog drafts, Google Sheets for one row per video, a vector store for RAG over a whole channel (the YouTube Actor can also return ~N-word chunks with timestamps via chunkWords).

Actors: YouTube Transcript & Subtitles Downloader – Bulk + AI · Apify · TikTok Transcript Scraper – Captions & AI Speech to Text · Apify

Tested on n8n 2.42. Happy to adapt it if you need other fields.

Workflow JSON (copy → paste into an empty n8n canvas):

Nice work - “no proxies on n8n Cloud” is the hard part, so I am curious what you ended up using on the YouTube side.

I have been on the Shorts end of the same problem (Shorts specifically, plus their top comments), and two things bit me that are worth knowing if you ever extend the template to Shorts:

  1. The caption you get is usually a machine translation. The player response for one English Short carried 21 caption tracks: the original plus 20 auto-translations. Pick by “preferred language” and your workflow silently feeds Spanish or German into the summary. The original one is flagged in a field that is not the obvious one.

  2. A single IP gets rate-limited after about 30-40 caption requests, and YouTube starts asking you to sign in to confirm you are not a bot. Rotating the proxy per request and retrying that specific error took me from 85% to ~95% of Shorts solved.

I packaged it as an Apify Actor so it runs outside n8n and returns clean JSON (one row per Short: video data + transcript with timestamps + top comments with their authors): YouTube Shorts Scraper with Transcripts & Comments · Apify

It is pay per Short delivered, $5 per 1,000, and Shorts without captions are reported and not charged. Happy to compare notes on the rate limiting - that was the part that took me longest.