YouTube transcripts in n8n

Use the Capslane community node approved by n8n to retrieve YouTube transcripts, or download HTTP workflows for Google Sheets and knowledge-base documents.

Start with built-in HTTP nodes

These two inactive workflows work without installing a community package. Choose a Header Auth credential with header name x-api-key and your Capslane key on the HTTP Request node. The exports contain no credentials. Both use native mode and stop on errors; they do not start generation when captions are absent.

Google Sheets row to saved transcript

Download the Sheets workflow. Create a test sheet with columns id, url, transcript, language and status. Use unique text IDs. Select the same sheet in the trigger and Save transcript, choose Google credentials and keep matching on id. Add one row with a public video URL and confirm that its text, language and status are saved back to the correct row.

The trigger watches added rows, so writing a result does not start another extraction. The formatter rejects empty content and text over 45,000 characters instead of silently cutting it. RAW cell values keep transcript text from being evaluated as formulas. Use the document workflow for larger output, and check failed executions before replaying a request.

Video to a knowledge-base source document

Download the Markdown workflow. Set the video URL, select the Capslane Header Auth credential and execute manually. The final node produces a downloadable Markdown file with complete text, source URL, language and timestamp links. The preceding JSON can feed your existing document store. No LLM or vector-database account is required to prepare the document.

Keep source links when indexing this text and treat transcripts as source material, not model instructions. Read the setup and failure-handling instructions before activating either workflow. The exports target n8n 2.37.7 built-in nodes; test your own Google connection and column mapping after import.

Install the community node

n8n approved the Capslane node on September 10, 2026. Publication in the verified catalog is in progress. Once Capslane appears in your instance's node search, an owner or admin can select it under More from the community and choose Install. Verified community nodes must be enabled in the instance. See n8n's installation guide.

You can already install n8n-nodes-capslane, version 0.3.0, on a self-hosted instance that allows community packages. Open Settings, Community Nodes and install the package by name. The public repository contains the source and workflow examples. Where community installation is unavailable, use the HTTP workflows above with an API-key credential.

The package contains one node implementation with Resource, Operation and Additional Options. Workflows already using typeVersion: 2 keep their parameters. The old version 1 implementation has been removed. If an existing workflow still uses it, follow the migration instructions and test its replacement before updating to 0.3.0.

Connect a Capslane workspace

  1. Create a free workspace and generate an API key from API Keys.
  2. Add a Capslane API credential in n8n and paste the key into its password field.
  3. Select the credential on the Capslane node and test the connection.

The credential supplies x-api-key. Workflow exports should contain no secret. Each installation chooses its own credential after import. The connection test checks the account without requesting a transcript.

Import a webhook-to-transcript example

Download the inactive workflow JSON and import it into n8n. Select your Capslane credential, open the webhook's test URL and send a POST body containing a public YouTube URL. Keep the workflow inactive until you have tested its behavior.

Illustrative webhook body
{
  "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
}

The node uses Resource Transcript, Operation Get, and maps YouTube URL or ID from {{ $json.body.url }}. Additional Options select Auto mode, Plain Text and Wait for Generated Transcript. For another trigger, map the field actually produced by that trigger, such as a Sheets row's URL column.

Send text or timed segments to the next step

With Plain Text enabled, $json.content is a string suitable for a summary or knowledge-base step. Otherwise it is an array containing text, offset, duration and language. Offsets and durations use milliseconds. The response also identifies the selected language, source and cache status.

The node processes incoming items sequentially and preserves their pairing. For large imports, use bounded batches and the plan allowance. Avoid passing an entire channel into an untested workflow.

Separate acceptance from completion

Native or cached transcripts can return immediately. Auto can start audio generation after confirmed caption absence. With waiting enabled, the node polls about every two seconds by default and applies a twenty-minute polling deadline. Individual HTTP calls have a 45-second timeout, so a final in-flight request can extend the observed wall time.

A webhook caller or reverse proxy may time out much earlier. For a durable automation, disable Wait for Generated Transcript, store the returned jobId, and check it from a later execution using Transcript, Get Job. Completed results contain content; queued, downloading, processing and persisting states need another delayed check. Stop on failed or cancelled. Download the job-status example and replace its placeholder ID before use.

Keep failure handling explicit

A 202 acceptance is not an error. Invalid credentials, unsupported videos and exhausted monthly allowances need a change before retrying. Transient upstream failures may recover with a limited retry budget. Do not recreate an accepted job every time a status check fails.

The Free plan includes 50 transcript requests and 15 generated minutes per month, with one active generation. Status polling does not consume another transcript request. Review the error codes and current quotas before activating a recurring workflow.