Connect YouTube Transcripts
to Any n8n Workflow

n8n has no native YouTube transcript node. VidProxy fills that gap: subscribe to any channel, set VidProxy's webhook to your n8n Webhook node URL, and the full transcript arrives in your workflow the moment a video posts.

n8n's YouTube node doesn't give you transcripts

n8n includes a YouTube node for channel metadata and video information. What it cannot do is give you the spoken content of a video. The YouTube node will tell you a video title, view count, and description — not the transcript. And there's no built-in way to trigger a workflow when a specific channel publishes something new, with the full text attached.

VidProxy is the missing YouTube transcript data source for n8n. It monitors channels on your behalf, fetches transcripts via a multi-tier extraction pipeline, and delivers a standard JSON webhook to your n8n workflow — no code, no API keys, no quota management.

The pattern: VidProxy fires a webhook → n8n Webhook node receives it → downstream nodes process the transcript (AI, Slack, Notion, database, anything).

Connect VidProxy to n8n in five minutes

No code required. Just configure the two services to point at each other.

1

Create a Webhook node in n8n

In your n8n workflow, add a Webhook trigger node. Set the HTTP method to POST. Copy the webhook URL — it will look like https://your-n8n.domain/webhook/[uuid]. For local development, use the "Test URL" and keep the workflow active while testing.

2

Create a VidProxy subscription

In the VidProxy dashboard, click Add channel. Paste the YouTube channel URL or @handle. In the webhook field, paste the n8n Webhook URL you just copied. Add a label (used in the payload as subscription.label). Save.

3

Build your workflow with the transcript data

Activate the n8n workflow. When the next video posts on the subscribed channel, VidProxy fires your webhook. In n8n, use {{ $json.transcript.text }} to access the transcript, {{ $json.video.title }} for the title, and {{ $json.enrichment.summary }} for the AI summary (Pro). Wire those to any downstream node.

What your n8n Webhook node receives

Every field available in the VidProxy webhook payload, as n8n expression syntax.

// n8n expression paths for common fields

// Video info
{{ $json.video.title }}          // "GPT-5 is Here and It's Remarkable"
{{ $json.video.url }}            // "https://youtube.com/watch?v=abc123"
{{ $json.video.published }}      // "2026-04-29T10:00:00Z"

// Channel info
{{ $json.subscription.channel_name }}   // "Two Minute Papers"
{{ $json.subscription.label }}          // Your subscription label

// Transcript
{{ $json.transcript.available }}        // true / false
{{ $json.transcript.text }}             // Full plain-text transcript
{{ $json.transcript.segments }}         // Array of {start, duration, text}

// AI Enrichment (Pro + Agency only)
{{ $json.enrichment.summary }}          // AI-generated summary
{{ $json.enrichment.key_takeaways }}    // Array of strings
{{ $json.enrichment.topics }}           // Array of topic tags

Common n8n patterns with VidProxy

Copy these patterns and adapt them for your use case.

Transcript → Slack notification

Webhook nodeIF node (check transcript.available = true) → Slack node (post to channel with video title, URL, and AI summary).

Transcript → Notion database

Webhook nodeNotion node (create page in a database). Map video.title → Name, transcript.text → Content, enrichment.topics → Tags multi-select.

Transcript → AI summary → email

Webhook nodeOpenAI node (summarize or generate blog post from transcript) → Gmail/SMTP node (send to your team or newsletter list).

Transcript → Airtable research log

Webhook nodeAirtable node (create record). Map video metadata and transcript to fields. Use enrichment.topics to populate a multi-select category field automatically.

Competitor alert with keyword check

Use VidProxy's keyword alerts (Pro) to only fire when specific terms appear. The n8n workflow receives pre-filtered payloads — no IF node needed for keyword matching, VidProxy handles it upstream.

Transcript → vector store upsert

Webhook nodeCode node (chunk transcript into 500-word segments) → OpenAI Embeddings nodePinecone node (upsert vectors). Full RAG ingestion pipeline with no custom API server.

Common questions

Does VidProxy work with self-hosted n8n?
Yes. VidProxy just needs a publicly accessible webhook URL. If your n8n instance is behind a VPN or on localhost, use a tunnel like ngrok to expose it temporarily for testing, or deploy n8n to a VPS with a public URL for production use.
How do I handle the case where transcript.available is false?
Add an IF node immediately after the Webhook node. Condition: {{ $json.transcript.available }} equals true. Route the true path to your processing nodes and the false path to a logging step or just terminate it. VidProxy still fires the webhook even without a transcript so you have a complete event log.
Can I have multiple n8n workflows triggered by different channels?
Yes — create a separate VidProxy subscription per channel (or per topic group) each with its own webhook URL pointing to a different n8n workflow. Alternatively, use a single VidProxy subscription with a shared webhook and use a Switch node in n8n to route based on subscription.label or subscription.channel_name.
What if my n8n server is down when VidProxy fires the webhook?
VidProxy retries failed webhooks up to 3 times with exponential backoff (2s, 10s, 30s). If all retries fail, the delivery is marked as failed in the VidProxy delivery log — you can see it in the dashboard. You can also use the Pull API as a fallback to retrieve any transcripts you might have missed.
How soon after a video publishes does the workflow run?
Two waits stack up. VidProxy re-reads the channel's RSS feed every few minutes — and then waits for YouTube to generate captions, which happens after the upload goes live rather than at the same moment. Your poll interval is the floor; the caption lag is the variable part. If captions never appear, the video is held for 24 hours and then delivered without a transcript, so the workflow still runs.
How many channels can I feed into n8n?
One on Free, 15 on Starter, 100 on Pro. Agency limits are agreed case by case. Webhook endpoints are capped separately — 1 on Free, 3 on Starter, unlimited on Pro and Agency — so on a paid plan you can give every channel its own n8n workflow, or send them all to one and branch on subscription.label. AI enrichment (summary, key takeaways, topic tags) is generated on Pro and Agency only; on the other plans the enrichment key is absent from the payload, which is worth a guard in any node that reads it.

Add YouTube transcripts to your n8n workflows

Free tier includes 1 channel and webhook delivery. Up and running in minutes.

No credit card · Free tier forever