ScavioScavio
ProductoPreciosDocumentación
Iniciar sesionComenzar
  1. Inicio
  2. Flujos de trabajo
  3. YouTube Growth Agent Pipeline
Flujo de trabajo

YouTube Growth Agent Pipeline

Automatizado YouTube research pipeline ese encuentra trending topics, analiza competidores, y genera optimizado contenido briefs for crecimiento teams.

Comenzar gratisDocumentacion API

Resumen

Este flujo de trabajo automatiza el YouTube crecimiento research cycle. It identifies trending topics in your nicho, analiza top-performing competidor videos, extrae patrones in titles y thumbnails, y genera optimizado contenido briefs. El salida da crecimiento teams un data-driven contenido calendar instead of guesswork.

Desencadenador

Cron programar (cada Monday at 7 AM UTC)

Programación

Ejecuta cada Monday at 7 AM UTC

Pasos del flujo de trabajo

1

Cargar nicho palabras clave y competidor canales

Leer palabras clave objetivo y competidor canal names de configuracion.

2

Research trending topics

Search YouTube for nicho palabras clave y identificar videos gaining rapid traction.

3

Analizar top performers

Extraer patrones de highest-view videos: titulo structures, lengths, y topic angles.

4

Verificar competidor reciente sube

Search for reciente videos de competidor canales y rastrear their rendimiento.

5

Generar contenido briefs

Combine trending topics y analisis de competidores en actionable contenido briefs.

6

Priorizar by oportunidad

Clasificar briefs by estimated oportunidad tamano basado on view velocity y competition density.

Implementacion en Python

Python
import requests
import json
from pathlib import Path
from datetime import datetime

API_KEY = "your_scavio_api_key"

NICHE_KEYWORDS = ["ai coding tools", "developer productivity", "vscode extensions 2026"]
COMPETITOR_CHANNELS = ["Fireship", "Theo", "Web Dev Simplified"]

def search_youtube(query: str) -> list[dict]:
    res = requests.post(
        "https://api.scavio.dev/api/v1/search",
        headers={"x-api-key": API_KEY},
        json={"platform": "youtube", "query": query},
        timeout=15,
    )
    res.raise_for_status()
    return res.json().get("organic", [])

def analyze_topic(keyword: str) -> dict:
    videos = search_youtube(keyword)
    if not videos:
        return {"keyword": keyword, "opportunity": "low", "videos": []}

    total_views = sum(v.get("views", 0) for v in videos[:10])
    avg_views = total_views // max(len(videos[:10]), 1)

    top_videos = [{
        "title": v.get("title", ""),
        "views": v.get("views", 0),
        "channel": v.get("channel", ""),
        "link": v.get("link", ""),
    } for v in sorted(videos, key=lambda x: x.get("views", 0), reverse=True)[:5]]

    return {
        "keyword": keyword,
        "avg_views_top_10": avg_views,
        "total_views_top_10": total_views,
        "opportunity": "high" if avg_views > 100000 else "medium" if avg_views > 20000 else "low",
        "top_videos": top_videos,
    }

def check_competitors() -> list[dict]:
    competitor_data = []
    for channel in COMPETITOR_CHANNELS:
        videos = search_youtube(channel)
        recent = [{
            "title": v.get("title", ""),
            "views": v.get("views", 0),
            "channel": v.get("channel", ""),
        } for v in videos[:5]]
        competitor_data.append({"channel": channel, "recent_videos": recent})
    return competitor_data

def generate_briefs(topics: list[dict], competitors: list[dict]) -> list[dict]:
    briefs = []
    for topic in sorted(topics, key=lambda t: t["avg_views_top_10"], reverse=True):
        if topic["opportunity"] in ("high", "medium"):
            brief = {
                "topic": topic["keyword"],
                "opportunity_level": topic["opportunity"],
                "avg_views": topic["avg_views_top_10"],
                "title_inspiration": [v["title"] for v in topic["top_videos"][:3]],
                "suggested_angle": f"Create a comprehensive guide on {topic['keyword']} targeting the same audience as top performers",
            }
            briefs.append(brief)
    return briefs[:10]

def run():
    topics = [analyze_topic(kw) for kw in NICHE_KEYWORDS]
    competitors = check_competitors()
    briefs = generate_briefs(topics, competitors)

    date = datetime.utcnow().strftime("%Y-%m-%d")
    report = {
        "date": date,
        "topics_analyzed": len(topics),
        "content_briefs": briefs,
        "competitor_activity": competitors,
    }

    Path(f"yt_growth_{date}.json").write_text(json.dumps(report, indent=2))
    print(f"Generated {len(briefs)} content briefs")
    for brief in briefs:
        print(f"  [{brief['opportunity_level']}] {brief['topic']} ({brief['avg_views']:,} avg views)")

if __name__ == "__main__":
    run()

Implementacion en JavaScript

JavaScript
const API_KEY = "your_scavio_api_key";

const NICHE_KEYWORDS = ["ai coding tools", "developer productivity", "vscode extensions 2026"];
const COMPETITOR_CHANNELS = ["Fireship", "Theo", "Web Dev Simplified"];

async function searchYouTube(query) {
  const res = await fetch("https://api.scavio.dev/api/v1/search", {
    method: "POST",
    headers: { "x-api-key": API_KEY, "content-type": "application/json" },
    body: JSON.stringify({ platform: "youtube", query }),
  });
  if (!res.ok) throw new Error(`scavio ${res.status}`);
  return (await res.json()).organic ?? [];
}

async function analyzeTopic(keyword) {
  const videos = await searchYouTube(keyword);
  if (!videos.length) return { keyword, opportunity: "low", videos: [] };
  const top10 = videos.slice(0, 10);
  const totalViews = top10.reduce((s, v) => s + (v.views ?? 0), 0);
  const avgViews = Math.floor(totalViews / top10.length);
  const topVideos = [...videos].sort((a, b) => (b.views ?? 0) - (a.views ?? 0)).slice(0, 5)
    .map((v) => ({ title: v.title ?? "", views: v.views ?? 0, channel: v.channel ?? "", link: v.link ?? "" }));
  return { keyword, avgViewsTop10: avgViews, totalViewsTop10: totalViews, opportunity: avgViews > 100000 ? "high" : avgViews > 20000 ? "medium" : "low", topVideos };
}

async function run() {
  const fs = await import("fs/promises");
  const topics = [];
  for (const kw of NICHE_KEYWORDS) topics.push(await analyzeTopic(kw));

  const competitors = [];
  for (const channel of COMPETITOR_CHANNELS) {
    const videos = await searchYouTube(channel);
    competitors.push({ channel, recentVideos: videos.slice(0, 5).map((v) => ({ title: v.title ?? "", views: v.views ?? 0, channel: v.channel ?? "" })) });
  }

  const briefs = topics
    .filter((t) => t.opportunity !== "low")
    .sort((a, b) => (b.avgViewsTop10 ?? 0) - (a.avgViewsTop10 ?? 0))
    .slice(0, 10)
    .map((t) => ({
      topic: t.keyword,
      opportunityLevel: t.opportunity,
      avgViews: t.avgViewsTop10,
      titleInspiration: (t.topVideos ?? []).slice(0, 3).map((v) => v.title),
      suggestedAngle: `Create a comprehensive guide on ${t.keyword} targeting the same audience as top performers`,
    }));

  const date = new Date().toISOString().slice(0, 10);
  const report = { date, topicsAnalyzed: topics.length, contentBriefs: briefs, competitorActivity: competitors };
  await fs.writeFile(`yt_growth_${date}.json`, JSON.stringify(report, null, 2));
  console.log(`Generated ${briefs.length} content briefs`);
  for (const b of briefs) console.log(`  [${b.opportunityLevel}] ${b.topic} (${b.avgViews.toLocaleString()} avg views)`);
}

run();

Plataformas utilizadas

YouTube

Búsqueda de videos con transcripciones y metadatos

Preguntas frecuentes

Este flujo de trabajo automatiza el YouTube crecimiento research cycle. It identifies trending topics in your nicho, analiza top-performing competidor videos, extrae patrones in titles y thumbnails, y genera optimizado contenido briefs. El salida da crecimiento teams un data-driven contenido calendar instead of guesswork.

Este flujo de trabajo usa un cron programar (cada monday at 7 am utc). Ejecuta cada Monday at 7 AM UTC.

Este flujo de trabajo usa las siguientes plataformas de Scavio: youtube. Cada plataforma se llama a traves del mismo endpoint de API unificado.

Si. El plan gratuito de Scavio incluye 50 creditos al registrarte sin tarjeta de credito. Es suficiente para probar y validar este flujo de trabajo antes de escalarlo.

YouTube Growth Agent Pipeline

Automatizado YouTube research pipeline ese encuentra trending topics, analiza competidores, y genera optimizado contenido briefs for crecimiento teams.

Obtener tu clave APILeer la documentacion
ScavioScavio

API de busqueda en tiempo real para agentes de IA. Busca en todas las plataformas, no solo en Google.

Producto

  • Funciones
  • Precios
  • Panel
  • Afiliados

Desarrolladores

  • Documentacion
  • Referencia de API
  • Inicio rapido
  • Integracion MCP
  • Python SDK

Alternativas

  • Alternativa a Tavily
  • Alternativa a SerpAPI
  • Alternativa a Firecrawl
  • Alternativa a Exa

Herramientas

  • Formateador JSON
  • cURL a codigo
  • Contador de tokens
  • Todas las herramientas

© 2026 Scavio. Todos los derechos reservados.

Featured on TAAFT
Terminos de servicioPolitica de privacidad