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 (includingtiktok.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)
- Apify account → Settings → API & Integrations → copy your token
- In Get transcripts (Apify) create a Header Auth credential: Name
Authorization, ValueBearer YOUR_TOKEN - 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):