Description
YouTube Transcripts (n8n community node)
Extract YouTube transcripts, subtitles, and captions in n8n — in bulk, at about $0.00001 per video. This node runs the YouTube Transcript & Subtitles Scraper Actor on Apify, and works as a tool inside n8n AI Agent workflows.
Package: n8n-nodes-youtube-transcripts-api
Installation · Credentials · Usage · Output · Examples · Pricing
What it does
- Takes one YouTube URL or many at once — standard videos, Shorts,
youtu.be, embed, andm.youtube.comlinks. - Returns the full transcript text, timestamped snippets (text, start, duration), language info, and processing status for each video.
- Reports invalid or failed URLs per item without stopping the run.
- When used as an AI Agent tool, it returns a trimmed result automatically to keep the model’s context clean.
- Simplified (default) — returns
{ video_id, language, transcript }, wheretranscriptis the full text. Best for summarizing or feeding an LLM. This mode is used automatically when the node runs as an AI Agent tool. - Raw — every field the Actor produces, including timestamped segments.
- Selected Fields — any subset of the fields listed below.
Installation
Follow the n8n community node installation guide, or:
1. In n8n, open Settings → Community Nodes.
2. Select Install.
3. Enter n8n-nodes-youtube-transcripts-api and confirm.
Community nodes can be installed on self-hosted n8n. On n8n Cloud they become available once the node is verified.
Credentials
You need an Apify account (the free tier is enough to start) and an API token.
1. Copy your token from Apify Console → Settings → API & Integrations.
2. In n8n, add a new Apify API credential and paste the token.
OAuth2 is also supported (Apify OAuth2 API credential) if your n8n instance is set up for it.
Usage
Resource: Transcript → Operation: Get Transcripts
| Field | Description |
|——-|————-|
| YouTube URL or URLs | One URL as a string, or several as an array. n8n also runs the node once per incoming item, so you can map a URL from a previous node to transcribe a whole list. |
| Output | How much to return per video: Simplified (default), Raw, or Selected Fields. |
| Fields to Include | Appears when Output is Selected Fields. Pick exactly which keys to return. |
Output modes
Output
Each processed video returns one item. Full field list (Raw mode):
| Field | Type | Description |
|——-|——|————-|
| url | string | The YouTube URL that was processed |
| video_id | string | 11-character video ID |
| language | string | Transcript language name (e.g. English) |
| language_code | string | ISO code (e.g. en) |
| is_generated | boolean | Whether the captions were auto-generated by YouTube |
| is_translatable | boolean | null | Whether the transcript can be translated |
| translation_languages | array | null | Language codes it can be translated to |
| total_seconds | number | Video duration in seconds |
| timestamped | array | Snippets, each { text, start, duration } |
| non_timestamped | string | Full transcript text (Simplified mode exposes this as transcript) |
| timestamp | string | ISO time the video was processed |
| success | boolean | Whether transcription succeeded |
| error | boolean | Whether an error occurred |
| error_message | string | Description of the error, if any |
| error_type | string | Error class (e.g. RequestBlocked) |
Examples
Summarize a video for a blog post
Manual Trigger → YouTube Transcripts (Simplified, one URL) → LLM / AI Agent (summarize transcript) → output
Bulk-transcribe for a RAG index
Read URLs (Google Sheets / DB) → YouTube Transcripts (one URL per item) → Embeddings → Vector store
As an AI Agent tool
Connect the node to an AI Agent’s tool input. The agent supplies a URL and gets back { video_id, language, transcript }, so the model receives clean text without timestamp noise.
Pricing
The underlying Actor uses Apify pay-per-event pricing — roughly $0.00001 per video processed, billed through your Apify account. The node itself is free and open source.