Blog / Tutorials / n8n + YouTube Transcripts: Install the Official Node and Build Your First Workflow
Tutorials 9 min read â€ĸ November 13, 2026

n8n + YouTube Transcripts: Install the Official Node and Build Your First Workflow

Founder

Scriptube publishes an official n8n community node, n8n-nodes-scriptube, that wraps the transcript API in n8n-native nodes: one for actions (create a batch, check status, pull a transcript, check credits) and one trigger that receives Scriptube's webhooks directly in your workflow. This is the pillar guide for every Scriptube + n8n workflow — later articles build specific recipes on top of it.

Install the node

From n8n's Community Nodes panel:

  1. Go to Settings > Community Nodes
  2. Click Install
  3. Enter n8n-nodes-scriptube
  4. Click Install

Self-hosting without the Community Nodes UI, install it manually instead:

cd ~/.n8n/custom
npm install n8n-nodes-scriptube

Set up credentials

Create a Scriptube API key first: sign in, open Settings > API Keys, and create a key (give it full scope if this workflow will submit batches, not just read results — see api-keys-scopes-rotation-revocation for the difference).

In n8n, add a new Scriptube API credential with three fields:

FieldWhat goes here
API KeyThe key from Settings > API Keys
Webhook SecretA dedicated random string, 16–256 characters — not your API key
Base URLhttps://scriptube.me (the default)

The Webhook Secret matters even if you're only using the action node right now: the trigger node registers every webhook with this secret, and Scriptube signs every delivery with it. Without a real secret here, anyone who discovers your n8n webhook URL could fire your workflow by sending it a fake payload.

The Scriptube action node

The main Scriptube node groups its operations under three resources:

ResourceOperationCalls
BatchCreatePOST /api/v1/transcripts
BatchGetGET /api/v1/transcripts/{batch_id}
BatchGet ItemsGET /api/v1/transcripts/{batch_id}?include_metadata=true
BatchListGET /api/v1/transcripts
TranscriptGetGET /api/v1/transcripts/{batch_id}/export?format=...
CreditsGet BalanceGET /api/v1/credits/balance

Create Batch takes a URLs field (one YouTube URL per line, or comma-separated — videos, playlists, channel URLs/@handles, or any mix), plus two optional fields under Options: Translate to English and External ID (your own id for the batch, max 128 characters, echoed back in every response and webhook — useful for matching a Scriptube batch to the row that triggered it). Transcript > Get takes the batch id returned by Create Batch and a format: JSON, Plain Text, SRT, VTT, CSV, or JSONL.

Build your first workflow: submit, wait, export

Start with the simplest useful shape — submit one video, wait for it, then fetch the transcript:

  1. Manual Trigger or Set node with a test URL, e.g. https://www.youtube.com/watch?v=dQw4w9WgXcQ
  2. Scriptube > Batch > Create — paste the URL into URLs
  3. Wait node, a few seconds (a single cached video is often already completed in the create response; an uncached one needs processing time)
  4. Scriptube > Batch > Get — batch id from the Create step's output ({{$json.batch_id}})
  5. IF node — branch on {{$json.status}} === "completed", looping back to Wait if not
  6. Scriptube > Transcript > Get — once completed, pull the export in whatever format the next step needs

This is the polling shape. It works for one-off runs, but for anything production-grade, swap the Wait/Get/IF loop for the trigger node below — it's the same information, delivered the moment it's ready instead of guessed at with a timer.

The trigger node: react to events instead of polling

Add a Scriptube Trigger node to start a new workflow. Pick an event:

  • batch.created, batch.started, batch.completed, batch.failed
  • item.completed, item.failed
  • transcript.ready
  • credits.low, credits.depleted
  • subscription.updated

Activate the workflow once and n8n calls Scriptube's POST /api/webhooks/register for you, using the node's webhook URL and the Webhook Secret from your credential. Deactivating the workflow unregisters it the same way.

Every delivery is verified before your workflow runs: the node checks X-Scriptube-Signature (an HMAC-SHA256 of the timestamp and raw request body, signed with your Webhook Secret) and rejects anything with a bad signature or a timestamp older than the Replay Window parameter (default 300 seconds, matching the 5-minute window Scriptube documents). An unverified delivery gets a 401 and never reaches your nodes — raise the replay window only if your n8n instance's clock drifts.

Example: notify Slack when a batch finishes

[Scriptube Trigger: Batch Completed] → [Slack: Send Message]

Map the trigger's output fields (data.batch_id, data.item_count, data.completed_count, data.failed_count) into the Slack message text. This pattern — trigger in, message out, no polling node anywhere — is the basic shape for most Scriptube workflows. A worked version with the exact Slack webhook setup is in slack-alert-transcript-batch-finished, and a Notion variant is in n8n-youtube-channel-to-notion.

Reading errors

If a node throws, the error message comes straight from Scriptube's API error envelope ({code, message, detail}). Common ones you'll hit while building: a 402 means the account is out of credits for the batch being created; a 429 means you've hit a rate limit (the response carries a Retry-After header — the Wait node can read this to back off correctly instead of guessing a delay). Turn on Continue On Fail on the Scriptube node if you want failed items to flow through as data instead of stopping the workflow.

Where this doesn't reach

There is no equivalent official app for Zapier, Make, or Pipedream — those platforms don't have a native Scriptube integration. You can still automate with them using the same webhooks and HMAC scheme this node uses under the hood; see zapier-make-youtube-transcripts-webhooks for the manual setup. If you're deciding between push and poll for a custom integration outside n8n entirely, webhooks-vs-polling-youtube-transcripts covers the trade-off in more depth.

Get your API key and start building: sign up for Scriptube, or check plans if you're estimating costs for a workflow that runs on a schedule.

Try Scriptube Free

Extract YouTube transcripts instantly. No credit card required.

Get Started

Related Articles

Tutorials

Your YouTube Transcript Library: Find Everything You've Already Processed

Every video you've ever submitted to Scriptube stays in your library — browsable by channel and playlist, searchable when you need to find something you...

Tutorials

How to Retry Failed YouTube Transcripts Without Resubmitting the Batch

A batch of 50 videos rarely comes back 50 for 50 — a couple of videos might have no captions, one might hit a rate limit, another might just need a second...

Tutorials

YouTube Transcript API: The Complete Guide

The Scriptube API lets you submit YouTube video, playlist, or channel URLs and get back transcripts and metadata as JSON, CSV, or JSONL, plus timed segments...