N8N + GPT-4: Build an Automated YouTube Transcript Summarization Pipeline
What if every YouTube video you needed could be distilled into a 30-second read? With N8N and GPT-4, you can build a fully automated pipeline that extracts transcripts, generates intelligent summaries, and delivers them straight to Slack—all without writing a single line of code.
The Information Overload Problem
Let's be honest: you have 47 browser tabs open right now, and at least 12 of them are YouTube videos you'll "watch later." That backlog of educational content, competitor analysis, and industry updates keeps growing. A 2024 study found that knowledge workers lose 2.5 hours per day to video content consumption that could be summarized in minutes.
The math is brutal:
- Average "must-watch" video length: 18 minutes
- Videos added to your queue per week: 15-20
- Time required at 1x speed: 4.5-6 hours/week
- Time required to read summaries: 15-20 minutes/week
That's a 95% time savings—if you have the right automation in place.
The Solution: Automated AI Summarization
We're going to build an N8N workflow that:
- Accepts a YouTube URL (via webhook, Slack command, or RSS trigger)
- Extracts the full transcript using Scriptube's API
- Sends to GPT-4 with intelligent prompting for structured summaries
- Delivers to Slack with key points, timestamps, and action items
Step-by-Step N8N Workflow
Step 1: Set Up the Trigger
Start with a Webhook node that accepts YouTube URLs. This gives you a clean API endpoint you can call from anywhere:
{
"nodes": [
{
"name": "YouTube URL Webhook",
"type": "n8n-nodes-base.webhook",
"parameters": {
"path": "summarize-video",
"httpMethod": "POST",
"responseMode": "onReceived"
}
}
]
}
Now you can trigger summaries by POSTing to https://your-n8n.com/webhook/summarize-video with a JSON body containing the URL.
Step 2: Extract the Transcript with Scriptube
Add an HTTP Request node to call Scriptube's transcript API:
{
"name": "Get Transcript",
"type": "n8n-nodes-base.httpRequest",
"parameters": {
"method": "POST",
"url": "https://api.scriptube.io/v1/transcript",
"authentication": "genericCredentialType",
"headers": {
"Content-Type": "application/json"
},
"body": {
"url": "={{ $json.youtube_url }}",
"format": "text",
"include_timestamps": true
}
}
}
Scriptube returns clean, formatted transcripts with optional timestamps—perfect for AI processing. Unlike YouTube's auto-captions, you get:
- Proper punctuation and formatting
- Speaker identification (when available)
- Multiple language support with automatic translation
- Bulk processing for playlists (up to 500 videos)
Step 3: Intelligent GPT-4 Summarization
Here's where the magic happens. Add an OpenAI node with this carefully crafted prompt:
{
"name": "GPT-4 Summarizer",
"type": "n8n-nodes-base.openAi",
"parameters": {
"model": "gpt-4-turbo-preview",
"prompt": "You are an expert content analyst. Analyze this YouTube video transcript and provide:\n\n## Summary (2-3 sentences)\n[Core message and value proposition]\n\n## Key Insights (bullet points)\n- Insight 1\n- Insight 2\n- Insight 3\n\n## Notable Quotes\n> \"Quote with timestamp\"\n\n## Action Items\n- [ ] Actionable takeaway 1\n- [ ] Actionable takeaway 2\n\n## Skip To (Timestamps)\n- 00:00 - Section name\n- 05:30 - Key moment\n\nTranscript:\n{{ $json.transcript }}",
"maxTokens": 1500,
"temperature": 0.3
}
}
Pro tip: Set temperature to 0.3 for consistent, factual summaries. Higher values add creativity but risk hallucination.
Step 4: Deliver to Slack
Format the summary beautifully for Slack using Block Kit:
{
"name": "Post to Slack",
"type": "n8n-nodes-base.slack",
"parameters": {
"channel": "#video-summaries",
"text": "New Video Summary",
"blocks": [
{
"type": "header",
"text": {
"type": "plain_text",
"text": "{{ $json.video_title }}"
}
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "{{ $json.summary }}"
}
},
{
"type": "divider"
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "<{{ $json.youtube_url }}|Watch Original>"
}
}
]
}
}
Complete Configuration Guide
Environment Setup
- Scriptube API Key: Sign up at scriptube.io/signup to get your API key. The free tier includes 50 transcripts/month—plenty for testing.
- OpenAI API Key: Get yours from platform.openai.com. GPT-4 Turbo costs ~$0.01 per 1K tokens (about $0.05-0.15 per video summary).
- Slack Webhook: Create an app at api.slack.com with incoming webhooks enabled.
Cost Breakdown Per Summary
| Service | Cost |
|---|---|
| Scriptube API (transcript) | $0.02 |
| GPT-4 Turbo (~3K tokens) | $0.09 |
| N8N (self-hosted) | Free |
| Total per summary | $0.11 |
At $0.11 per video, summarizing 100 videos costs just $11—versus 30+ hours of watching time saved.
Advanced: Multi-Format Outputs
Add Audio with ElevenLabs
Want to listen to summaries during your commute? Chain in ElevenLabs TTS:
{
"name": "Generate Audio Summary",
"type": "n8n-nodes-base.httpRequest",
"parameters": {
"method": "POST",
"url": "https://api.elevenlabs.io/v1/text-to-speech/21m00Tcm4TlvDq8ikWAM",
"body": {
"text": "{{ $json.summary }}",
"model_id": "eleven_turbo_v2",
"voice_settings": {
"stability": 0.5,
"similarity_boost": 0.75
}
}
}
}
Scriptube's native ElevenLabs integration makes this even simpler—convert any transcript to professional audio with one click.
Multilingual Summaries
Scriptube's translation feature supports 50+ languages. Combine it with GPT-4 for localized summaries:
- Fetch transcript in original language
- Use Scriptube's translation to convert to target language
- Summarize in the translated language for native-quality output
Batch Processing RSS Feeds
Monitor YouTube channels automatically by adding an RSS trigger:
{
"name": "Channel RSS Monitor",
"type": "n8n-nodes-base.rssFeedRead",
"parameters": {
"url": "https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID"
}
}
Every new upload gets summarized and delivered within minutes of publishing.
Real-World ROI
Case Study: SaaS Marketing Team
A 12-person marketing team at a B2B SaaS company implemented this workflow for competitor monitoring:
- Before: 2 team members spent 4 hours/week watching competitor webinars and product updates
- After: Automated summaries delivered to #competitive-intel Slack channel
- Time saved: 16 hours/week (32 hours for 2 people)
- Cost: ~$50/month (450 videos processed)
- ROI: 128 hours saved = $6,400 labor value vs $50 cost = 128x return
Case Study: Solo Entrepreneur
A crypto analyst uses this workflow to process YouTube alpha:
- Monitors 15 crypto YouTube channels via RSS
- Receives summaries within 5 minutes of upload
- Extracts trading signals before most viewers finish watching
- Time advantage: 15-20 minutes vs 1-2 hours per video
Troubleshooting Common Issues
Transcript Too Long for GPT-4
For videos over 2 hours, split the transcript into chunks and summarize each, then create a meta-summary. Add a Code node between Scriptube and GPT-4:
const transcript = $input.first().json.transcript;
const chunkSize = 12000; // ~3000 tokens
const chunks = [];
for (let i = 0; i < transcript.length; i += chunkSize) {
chunks.push(transcript.slice(i, i + chunkSize)) ON CONFLICT (id) DO NOTHING;
}
return chunks.map((chunk, i) => ({
json: { chunk, index: i, total: chunks.length }
}));
Rate Limiting
Add a Wait node (2 seconds) between API calls when processing batches. Both Scriptube and OpenAI have generous rate limits, but spacing requests ensures reliability.
Ready to Build This Workflow?
Get your Scriptube API key and start summarizing YouTube videos in minutes. Free tier includes 50 transcripts/month.
Start Free with Scriptube