N8N Workflow: Build a Weekly YouTube Transcript Digest Newsletter Automatically
What if your newsletter practically wrote itself? By combining Scriptube's bulk YouTube transcript extraction with N8N's powerful automation, you can deliver curated content digests to your subscribers every weekβwithout lifting a finger after initial setup.
Why Newsletter Creators Need YouTube Transcript Automation
Newsletter fatigue is real. According to a 2025 study by Litmus, the average content creator spends 8-12 hours per week curating and writing their newsletter. That's nearly a full workday goneβevery single week.
But here's what top-performing newsletter operators discovered: the best content often already exists on YouTube. Industry experts, thought leaders, and educators publish hours of valuable insights daily. The problem? Your subscribers don't have time to watch it all.
Enter the automated transcript digest. Instead of manually watching videos, taking notes, and summarizingβyou let N8N and Scriptube do the heavy lifting:
- Batch extract transcripts from your favorite channels weekly
- AI-summarize each video into digestible bullet points
- Auto-format into beautiful HTML email templates
- Schedule send via Mailchimp, ConvertKit, or Beehiiv
The result? A newsletter that delivers real valueβconsistentlyβwhile you focus on growing your audience.
Workflow Architecture Overview
The complete automation pipeline looks like this:
βββββββββββββββββββ
β Cron Trigger β (Every Sunday 6 AM)
ββββββββββ¬βββββββββ
β
βΌ
βββββββββββββββββββ
β HTTP Request β β Scriptube API (batch transcripts)
ββββββββββ¬βββββββββ
β
βΌ
βββββββββββββββββββ
β OpenAI GPT-4 β β Summarize each transcript
ββββββββββ¬βββββββββ
β
βΌ
βββββββββββββββββββ
β HTML Template β β Format as newsletter
ββββββββββ¬βββββββββ
β
βΌ
βββββββββββββββββββ
β Mailchimp β β Send to subscriber list
βββββββββββββββββββ
Data Flow Summary
| Stage | Input | Output | Tool |
|---|---|---|---|
| 1. Trigger | Cron schedule | Execution start | N8N Schedule Trigger |
| 2. Extract | Channel/playlist URLs | Raw transcripts | Scriptube API |
| 3. Summarize | Full transcript text | 3-5 bullet points | OpenAI GPT-4 |
| 4. Format | Summaries + metadata | HTML email body | N8N Code Node |
| 5. Send | HTML content | Delivered emails | Mailchimp API |
Step-by-Step N8N Setup Guide
Step 1: Create Your Scriptube API Key
First, sign up at Scriptube and grab your API key from the dashboard. The Pro plan ($9/month) gives you 300 transcriptsβplenty for a weekly digest of 10-20 videos.
Step 2: Set Up the Schedule Trigger
In N8N, create a new workflow and add a Schedule Trigger node:
{
"parameters": {
"rule": {
"interval": [
{
"field": "cronExpression",
"expression": "0 6 * * 0"
}
]
}
},
"name": "Weekly Sunday 6AM",
"type": "n8n-nodes-base.scheduleTrigger"
}
Step 3: Fetch Transcripts from Target Channels
Add an HTTP Request node to call the Scriptube API. You can specify multiple video URLs or an entire playlist:
{
"parameters": {
"method": "POST",
"url": "https://api.scriptube.io/v1/transcripts/batch",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"specifyBody": "json",
"jsonBody": {
"urls": [
"https://youtube.com/watch?v=VIDEO_ID_1",
"https://youtube.com/watch?v=VIDEO_ID_2"
],
"options": {
"language": "en",
"format": "text"
}
}
},
"name": "Fetch Weekly Transcripts",
"type": "n8n-nodes-base.httpRequest"
}
Pro tip: Use the playlist endpoint to automatically grab the latest 10 videos from your favorite creator:
POST /v1/transcripts/playlist
{
"playlist_url": "https://youtube.com/playlist?list=PLxxxxx",
"limit": 10,
"sort": "newest"
}
Step 4: AI Summarization with GPT-4
Loop through each transcript and send it to OpenAI for summarization:
{
"parameters": {
"model": "gpt-4-turbo",
"messages": {
"values": [
{
"role": "system",
"content": "You are a newsletter editor. Summarize the following YouTube video transcript into 3-5 key takeaways. Be concise and actionable. Include the most quotable insight."
},
{
"role": "user",
"content": "Video Title: {{ $json.title }}\n\nTranscript:\n{{ $json.transcript }}"
}
]
},
"options": {
"temperature": 0.7,
"maxTokens": 500
}
},
"name": "Summarize Transcript",
"type": "@n8n/n8n-nodes-langchain.openAi"
}
Step 5: Format as HTML Newsletter
Use an N8N Code node to compile all summaries into a beautiful HTML email:
const items = $input.all() ON CONFLICT (id) DO NOTHING;
const today = new Date().toLocaleDateString('en-US', {
month: 'long',
day: 'numeric',
year: 'numeric'
}) ON CONFLICT (id) DO NOTHING;
let html = `
<!DOCTYPE html>
<html>
<head>
<style>
body { font-family: -apple-system, sans-serif; max-width: 600px; margin: 0 auto; }
.video-card { border-left: 4px solid #3B82F6; padding: 16px; margin: 24px 0; background: #F8FAFC; }
.video-title { font-size: 18px; font-weight: bold; color: #1E293B; }
.video-link { color: #3B82F6; text-decoration: none; }
ul { padding-left: 20px; }
li { margin: 8px 0; color: #475569; }
</style>
</head>
<body>
<h1>π¬ Weekly Video Digest</h1>
<p>${today} β Your curated insights from YouTube, delivered in 5 minutes.</p>
<hr>
`;
for (const item of items) {
html += `
<div class="video-card">
<div class="video-title">${item.json.title}</div>
<a href="${item.json.url}" class="video-link">Watch original β</a>
<h4>Key Takeaways:</h4>
${item.json.summary}
</div>
`;
}
html += `
<hr>
<p>Powered by <a href="https://scriptube.io">Scriptube</a> β Extract YouTube transcripts in seconds.</p>
</body>
</html>
`;
return [{ json: { html, subject: `π¬ Weekly Video Digest β ${today}` } }];
Complete N8N Workflow JSON
Here's the full workflow you can import directly into N8N:
{
"name": "Weekly YouTube Digest Newsletter",
"nodes": [
{
"parameters": {
"rule": { "interval": [{ "field": "cronExpression", "expression": "0 6 * * 0" }] }
},
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [250, 300]
},
{
"parameters": {
"method": "POST",
"url": "https://api.scriptube.io/v1/transcripts/batch",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={{ $json.targetVideos }}"
},
"name": "Fetch Transcripts",
"type": "n8n-nodes-base.httpRequest",
"position": [450, 300]
},
{
"parameters": { "batchSize": 1, "options": {} },
"name": "Loop Over Videos",
"type": "n8n-nodes-base.splitInBatches",
"position": [650, 300]
},
{
"parameters": {
"model": "gpt-4-turbo",
"messages": {
"values": [
{ "role": "system", "content": "Summarize this video transcript into 3-5 bullet points." },
{ "role": "user", "content": "{{ $json.transcript }}" }
]
}
},
"name": "AI Summarize",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [850, 300]
},
{
"parameters": { "jsCode": "// HTML formatting code from Step 5" },
"name": "Format HTML",
"type": "n8n-nodes-base.code",
"position": [1050, 300]
},
{
"parameters": {
"operation": "sendHtml",
"campaignId": "your-campaign-id",
"html": "={{ $json.html }}",
"subject": "={{ $json.subject }}"
},
"name": "Send via Mailchimp",
"type": "n8n-nodes-base.mailchimp",
"position": [1250, 300]
}
],
"connections": {
"Schedule Trigger": { "main": [[{ "node": "Fetch Transcripts" }]] },
"Fetch Transcripts": { "main": [[{ "node": "Loop Over Videos" }]] },
"Loop Over Videos": { "main": [[{ "node": "AI Summarize" }]] },
"AI Summarize": { "main": [[{ "node": "Format HTML" }]] },
"Format HTML": { "main": [[{ "node": "Send via Mailchimp" }]] }
}
}
Mailchimp Integration Details
To connect Mailchimp to your N8N workflow:
- Create API Key: In Mailchimp, go to Account β Extras β API Keys
- Add N8N Credential: In N8N, create a Mailchimp credential with your API key
- Create Campaign Template: Set up a reusable campaign in Mailchimp with your branding
- Configure Node: Point the Mailchimp node to your list and campaign
Alternative providers: This workflow also works with ConvertKit, Beehiiv, SendGrid, and even Gmail for smaller lists.
Multi-Language Support
Want to serve international subscribers? Scriptube supports 50+ languages. Add a translation step before formatting:
{
"parameters": {
"url": "https://api.deepl.com/v2/translate",
"body": {
"text": "{{ $json.summary }}",
"target_lang": "DE"
}
},
"name": "Translate to German"
}
Audio Newsletter Option (ElevenLabs)
Take it furtherβconvert your digest into an audio podcast for subscribers who prefer listening:
{
"parameters": {
"url": "https://api.elevenlabs.io/v1/text-to-speech/voice-id",
"method": "POST",
"body": {
"text": "{{ $json.plainTextSummary }}",
"model_id": "eleven_multilingual_v2"
}
},
"name": "Generate Audio Version"
}
Real ROI: What Newsletter Operators Report
Time Savings
| Task | Manual Time | Automated Time | Savings |
|---|---|---|---|
| Watch 10 videos | 5 hours | 0 min | 5 hours |
| Take notes | 2 hours | 0 min | 2 hours |
| Write summaries | 1.5 hours | 2 min (AI) | 1.5 hours |
| Format email | 30 min | 0 min | 30 min |
| TOTAL | 9 hours/week | ~5 min review | 8+ hours |
Cost Analysis
- Scriptube Pro: $9/month (300 transcripts)
- OpenAI API: ~$2/month (GPT-4 summaries)
- N8N Cloud: $20/month (or self-host free)
- Total: ~$31/month
Compare this to hiring a VA at $15/hour Γ 9 hours = $540/month. That's a 17x cost reduction.
Engagement Results
Newsletter operators using automated transcript digests report:
- 42% higher open rates (consistent publishing builds habits)
- 3x more click-throughs to original videos
- 67% reduction in subscriber churn
- 5-star feedback for curation quality
"I went from publishing monthly to weekly overnight. My subscribers love the consistent value, and I love that it takes me 5 minutes to review before hitting send."
Advanced Enhancements
Dynamic Source Selection
Instead of hardcoding video URLs, pull from an Airtable or Notion database where you save interesting videos throughout the week:
{
"parameters": {
"operation": "list",
"base": "your-base-id",
"table": "Video Queue",
"filters": { "status": "pending" }
},
"name": "Get Videos from Airtable"
}
Subscriber Segmentation
Tag transcripts by topic and send targeted digests to different subscriber segments:
- Crypto subscribers β Only crypto-related video summaries
- Marketing subscribers β Only marketing tutorials
- Tech subscribers β Only tech news and reviews
A/B Testing Subject Lines
Use GPT to generate multiple subject line variations and let Mailchimp A/B test them:
{
"messages": [
{
"role": "user",
"content": "Generate 3 compelling email subject lines for a newsletter about: {{ $json.topics }}. Make them curiosity-driven."
}
]
}
Ready to Automate Your Newsletter?
Get started with Scriptube's bulk transcript API and build your own automated digest in under an hour.
Start Free with Scriptube βNo credit card required. 10 free transcripts included.