youtube-transcripts-api

Bulk YouTube transcript, subtitle & caption scraper for n8n — Apify-backed, pay-per-video, usable as an AI agent tool.

Package Information

Released: 4 mo ago
Downloads: 26 weekly / 141 monthly
Latest Version: 0.1.2
Author: John Cole

Documentation

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, and m.youtube.com links.
  • 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.

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

  • Simplified (default) — returns { video_id, language, transcript }, where transcript is 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.

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.

Resources

License

MIT

Discussion