ScavioScavio
ProductoPreciosDocumentación
Iniciar sesionComenzar
  1. Inicio
  2. Tutoriales
  3. Cómo extraer comentarios de YouTube como JSON estructurado a través de la API de búsqueda de Scavio
Tutorial

Cómo extraer comentarios de YouTube como JSON estructurado a través de la API de búsqueda de Scavio

Extraiga los comentarios de vídeos de YouTube como JSON estructurado utilizando la API de búsqueda de Scavio. Analice hilos de comentarios, opiniones y datos de participación para canales de análisis.

Obtener clave API gratisDocumentacion API

Los comentarios de YouTube contienen comentarios sobre productos, opiniones de la audiencia e ideas de contenido que la mayoría de las herramientas ignoran. Este tutorial utiliza la API de búsqueda de Scavio para buscar páginas de videos de YouTube, extraer datos de comentarios y devolver JSON limpio y estructurado, listo para canalizaciones de análisis, puntuación de sentimientos o consumo de agentes.

Requisitos previos

  • Python 3.11+ o Node.js 20+
  • Una clave API de Scavio de https://scavio.dev
  • Familiaridad básica con el análisis JSON
  • Opcional: pandas para análisis de datos

Guia paso a paso

Paso 1: Buscar páginas de vídeos de YouTube

Utilice la API de búsqueda de Scavio con una consulta de ámbito de sitio para encontrar URL de vídeos de YouTube que coincidan con su tema. La API devuelve metadatos de página y fragmentos de contenido.

Python
import httpx

SCAVIO_API_KEY = "your-api-key"

async def search_youtube_videos(topic: str, max_results: int = 5) -> list[dict]:
    async with httpx.AsyncClient(timeout=15) as client:
        resp = await client.post(
            "https://api.scavio.dev/api/v1/search",
            headers={"x-api-key": SCAVIO_API_KEY},
            json={
                "query": f"site:youtube.com {topic}",
                "num_results": max_results
            }
        )
        resp.raise_for_status()
        results = resp.json().get("results", [])
        videos = []
        for r in results:
            url = r.get("url", "")
            if "youtube.com/watch" in url or "youtu.be/" in url:
                videos.append({
                    "url": url,
                    "title": r.get("title", ""),
                    "snippet": r.get("description", ""),
                    "video_id": extract_video_id(url)
                })
        return videos

def extract_video_id(url: str) -> str:
    if "v=" in url:
        return url.split("v=")[1].split("&")[0]
    if "youtu.be/" in url:
        return url.split("youtu.be/")[1].split("?")[0]
    return ""

Paso 2: Obtener y analizar datos de comentarios de páginas de videos

Busque discusiones e hilos de comentarios relacionados con cada video. La API de Scavio captura el contenido de la página que incluye texto de comentarios visible de las páginas indexadas.

Python
async def fetch_video_comments(
    client: httpx.AsyncClient,
    video_id: str,
    video_title: str
) -> list[dict]:
    resp = await client.post(
        "https://api.scavio.dev/api/v1/search",
        headers={"x-api-key": SCAVIO_API_KEY},
        json={
            "query": f"youtube comments "{video_title}"",
            "num_results": 10
        }
    )
    resp.raise_for_status()
    results = resp.json().get("results", [])
    comments = []
    for r in results:
        content = r.get("description", "")
        if len(content) > 20:
            comments.append({
                "video_id": video_id,
                "source_url": r.get("url", ""),
                "text": content,
                "source_title": r.get("title", "")
            })
    return comments

Paso 3: Estructurar la salida como JSON limpio

Combine metadatos de vídeo y datos de comentarios en una única salida JSON estructurada. Agregue marcas de tiempo y deduplicación para mantener los datos limpios.

Python
from datetime import datetime

async def extract_youtube_comments(topic: str) -> dict:
    videos = await search_youtube_videos(topic)
    all_data = []
    seen_texts = set()

    async with httpx.AsyncClient(timeout=15) as client:
        for video in videos:
            comments = await fetch_video_comments(
                client, video["video_id"], video["title"]
            )
            unique_comments = []
            for c in comments:
                text_key = c["text"][:100].lower()
                if text_key not in seen_texts:
                    seen_texts.add(text_key)
                    unique_comments.append(c)
            all_data.append({
                "video": video,
                "comments": unique_comments,
                "comment_count": len(unique_comments)
            })

    return {
        "topic": topic,
        "extracted_at": datetime.now().isoformat(),
        "total_videos": len(videos),
        "total_comments": sum(v["comment_count"] for v in all_data),
        "videos": all_data
    }

Ejemplo en Python

Python
import asyncio
import json
import httpx
from datetime import datetime

SCAVIO_API_KEY = "your-api-key"

def extract_video_id(url: str) -> str:
    if "v=" in url:
        return url.split("v=")[1].split("&")[0]
    if "youtu.be/" in url:
        return url.split("youtu.be/")[1].split("?")[0]
    return ""

async def main():
    topic = "AI agent frameworks 2026"
    async with httpx.AsyncClient(timeout=15) as client:
        # Find videos
        resp = await client.post(
            "https://api.scavio.dev/api/v1/search",
            headers={"x-api-key": SCAVIO_API_KEY},
            json={"query": f"site:youtube.com {topic}", "num_results": 5}
        )
        videos = [
            {"url": r["url"], "title": r.get("title", ""), "video_id": extract_video_id(r["url"])}
            for r in resp.json().get("results", [])
            if "youtube.com/watch" in r.get("url", "")
        ]

        # Fetch comment discussions
        all_comments = []
        for v in videos:
            resp = await client.post(
                "https://api.scavio.dev/api/v1/search",
                headers={"x-api-key": SCAVIO_API_KEY},
                json={"query": f"youtube comments \"{v['title']}\"", "num_results": 5}
            )
            for r in resp.json().get("results", []):
                if len(r.get("description", "")) > 20:
                    all_comments.append({"video": v["title"], "text": r["description"][:200]})

    output = {
        "topic": topic,
        "extracted_at": datetime.now().isoformat(),
        "videos_found": len(videos),
        "comments_extracted": len(all_comments),
        "data": all_comments
    }
    print(json.dumps(output, indent=2))

asyncio.run(main())

Ejemplo en JavaScript

JavaScript
const SCAVIO_API_KEY = "your-api-key";

function extractVideoId(url) {
  if (url.includes("v=")) return url.split("v=")[1].split("&")[0];
  if (url.includes("youtu.be/")) return url.split("youtu.be/")[1].split("?")[0];
  return "";
}

async function searchScavio(query, numResults = 5) {
  const resp = await fetch("https://api.scavio.dev/api/v1/search", {
    method: "POST",
    headers: { "x-api-key": SCAVIO_API_KEY, "Content-Type": "application/json" },
    body: JSON.stringify({ query, num_results: numResults })
  });
  return resp.json();
}

async function main() {
  const topic = "AI agent frameworks 2026";
  const videoData = await searchScavio("site:youtube.com " + topic);
  const videos = (videoData.results || [])
    .filter(r => (r.url || "").includes("youtube.com/watch"))
    .map(r => ({ url: r.url, title: r.title, videoId: extractVideoId(r.url) }));

  const allComments = [];
  for (const v of videos) {
    const commData = await searchScavio('youtube comments "' + v.title + '"', 5);
    for (const r of (commData.results || [])) {
      if ((r.description || "").length > 20) {
        allComments.push({ video: v.title, text: r.description.slice(0, 200) });
      }
    }
  }

  console.log(JSON.stringify({
    topic,
    extractedAt: new Date().toISOString(),
    videosFound: videos.length,
    commentsExtracted: allComments.length,
    data: allComments
  }, null, 2));
}

main();

Salida esperada

JSON
{
  "topic": "AI agent frameworks 2026",
  "extracted_at": "2026-05-17T10:30:00",
  "videos_found": 4,
  "comments_extracted": 12,
  "data": [...]
}

Tutoriales relacionados

  • Cómo encontrar productos TikTok ganadores con la API Scavio TikTok
  • Cómo crear un agente de investigación de mercados con la API de búsqueda de Scavio
  • Cómo crear un rastreador de clasificación de presupuesto con la API de búsqueda de Scavio

Preguntas frecuentes

La mayoria de los desarrolladores completan este tutorial en 15 a 30 minutos. Necesitaras una clave API de Scavio (el plan gratuito funciona) y un entorno de Python o JavaScript.

Python 3.11+ o Node.js 20+. Una clave API de Scavio de https://scavio.dev. Familiaridad básica con el análisis JSON. Opcional: pandas para análisis de datos. Una clave API de Scavio te da 50 creditos gratuitos al registrarte.

Si. El plan gratuito incluye 50 creditos al registrarte, mas que suficiente para completar este tutorial y crear un prototipo funcional.

Scavio tiene un paquete nativo de LangChain (langchain-scavio), un servidor MCP y una API REST simple que funciona con cualquier cliente HTTP. Este tutorial usa the raw REST API, pero puedes adaptarlo al framework que prefieras.

Recursos relacionados

Best Of

La mejor API de datos de YouTube en 2026

Read more
Best Of

Las mejores API de datos de YouTube sin límites de cuota (2026)

Read more
Solution

Encuentre personas influyentes de YouTube a través de API en lugar de scraping

Read more
Workflow

YouTube Influencer SERP Research Workflow

Read more
Glossary

Extracción de comentarios de YouTube

Read more
Comparison

Scavio vs Apify (YouTube actors)

Read more

Empieza a construir

Extraiga los comentarios de vídeos de YouTube como JSON estructurado utilizando la API de búsqueda de Scavio. Analice hilos de comentarios, opiniones y datos de participación para canales de análisis.

Obtener clave API gratuitaLeer 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