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.

Add YouTube transcripts to your n8n workflows

Free tier includes 3 channels and webhook delivery. Up and running in minutes.

No credit card · Free tier forever