A viral r/n8n post in April 2026 described a 30-agent workflow that scaled a YouTube channel from zero to 50K subs in 9 months. The bottleneck was always research data. This tutorial shows how to build the same architecture with Scavio as the single data source: transcript mining, competitor video analysis, and trending topic discovery on one key.
Prerequisites
- n8n or LangGraph
- A Scavio API key ($30/mo tier recommended for this workload)
- An LLM credential
Walkthrough
Step 1: Map the 30 agent roles
Typical split: 5 research, 10 script draft, 5 thumbnail/title, 5 shorts repurpose, 5 publish+monitor.
// agent-roster.json
[
{ "role": "trend_scout", "count": 3 },
{ "role": "competitor_analyst", "count": 2 },
{ "role": "script_writer", "count": 10 },
{ "role": "thumbnail_brief", "count": 3 },
{ "role": "title_ab", "count": 2 },
{ "role": "shorts_cutter", "count": 5 },
{ "role": "publish_monitor", "count": 5 }
]Step 2: Wire the trend scout to Scavio YouTube search
Each scout agent queries Scavio for rising topics in your niche.
// Trend scout agent
POST https://api.scavio.dev/api/v1/search
Body: { "platform": "youtube", "query": "niche keyword", "sort": "recent" }
// Filter by view velocity (views/hours since publish).Step 3: Competitor analyst pulls transcripts
Transcript mining is what Scavio uniquely does at this price point.
POST https://api.scavio.dev/api/v1/youtube/transcript
Body: { "video_id": "{{ competitor_video_id }}" }Step 4: Script writer consumes transcripts as context
Feed transcripts into the script-writer agents so they riff on proven angles.
// Script writer prompt
You are writing a YouTube script on {{ topic }}.
Competitor transcript: {{ transcript }}
Identify 3 things they missed and build a 7-minute script around those gaps.Step 5: Thumbnail brief mines top YouTube thumbnails
Thumbnails are visual; Scavio returns thumbnail URLs in search results.
// Use the thumbnail_url field from YouTube search results
scavio.search({ platform: 'youtube', query: topic })
.organic_results.forEach(v => console.log(v.thumbnail_url));Step 6: Publish monitor tracks rank
Each published video kicks off a daily rank-check loop.
// Daily rank check
scavio.search({ platform: 'youtube', query: published_title })
.organic_results.findIndex(v => v.id === my_video_id);Python Example
import os
from scavio import Scavio
scavio = Scavio(api_key=os.environ['SCAVIO_API_KEY'])
def trend_scout(niche: str):
videos = scavio.search(platform='youtube', query=niche, sort='recent')
return sorted(videos['organic_results'], key=lambda v: v.get('views', 0) / max(v.get('hours_old', 1), 1), reverse=True)[:10]
def competitor_transcript(video_id: str):
return scavio.youtube_transcript(video_id=video_id)JavaScript Example
import { Scavio } from 'scavio';
const scavio = new Scavio({ apiKey: process.env.SCAVIO_API_KEY });
export async function trendScout(niche) {
const r = await scavio.search({ platform: 'youtube', query: niche, sort: 'recent' });
return r.organic_results
.sort((a, b) => (b.views / (b.hours_old || 1)) - (a.views / (a.hours_old || 1)))
.slice(0, 10);
}Expected Output
A 30-agent swarm publishes 2 videos per day at ~600 credits per video, staying within the $30/mo Scavio tier for a full month of content.