ScavioScavio
ProductoPreciosDocumentación
Iniciar sesionComenzar
  1. Inicio
  2. Tutoriales
  3. Cómo verificar los datos de vídeos de YouTube con una API
Tutorial

Cómo verificar los datos de vídeos de YouTube con una API

Obtén los metadatos de un vídeo de YouTube, extrae afirmaciones y compruébalas con resultados reales de Google usando la API de Scavio.

Obtener clave API gratisDocumentacion API

Para verificar los datos de un vídeo de YouTube con una API, obtén los metadatos del vídeo con el endpoint de metadatos de YouTube de Scavio, extrae afirmaciones candidatas del título y la descripción con un LLM y, después, consulta en Google cada afirmación para ver si los resultados de fuentes fiables la respaldan o la contradicen. Scavio devuelve metadatos, no una transcripción, así que la extracción de afirmaciones se hace sobre el texto disponible o sobre una transcripción de tu propia fuente. La salida es un veredicto por afirmación (respaldada, sin respaldo o mixta) con las URL de las fuentes. Esto marca las afirmaciones para revisión humana; no es un oráculo de la verdad. El valor está en el anclaje: en lugar de confiar en la memoria de un modelo, anclas cada juicio a resultados reales de Google que una persona puede abrir y leer.

Requisitos previos

  • Una clave de API de Scavio (sk_live_...) desde tu panel; las cuentas nuevas reciben 50 créditos gratis.
  • Python 3.9+ con requests, o Node.js 18+ para la versión en JavaScript.
  • Un LLM al que puedas llamar para extraer afirmaciones y juzgar el respaldo (Claude o similar).
  • Una URL o un ID de vídeo de YouTube que quieras comprobar.

Guia paso a paso

Paso 1: Obtén los metadatos del vídeo

Envía la URL o el ID del vídeo al endpoint de metadatos de YouTube. Recibes el título, la descripción, el canal y estadísticas como visualizaciones, me gusta y número de comentarios. Recuerda que son solo metadatos; la respuesta no incluye transcripción. La descripción es el campo más rico, porque los creadores suelen llenarla de afirmaciones concretas, fechas y enlaces que puedes comprobar. Guarda también las estadísticas, ya que una afirmación que contradice un vídeo con millones de visualizaciones merece destacarse.

Python
import requests

resp = requests.post(
    "https://api.scavio.dev/api/v1/youtube/metadata",
    headers={
        "Authorization": "Bearer sk_live_...",
        "Content-Type": "application/json",
    },
    json={"query": "https://www.youtube.com/watch?v=VIDEO_ID"},
)
data = resp.json()
print(data["title"], data["channel"], data["stats"]["views"])

Paso 2: Extrae las afirmaciones candidatas

Pasa el título y la descripción a un LLM y pídele una lista corta de afirmaciones comprobables. Si tienes una transcripción de tu propia fuente, añádela aquí para más cobertura; la API no te dará ninguna. Cada afirmación debe ser una aseveración concreta que puedas buscar, como un número, una fecha o una causa y efecto con nombre. Descarta las opiniones y lo vago, porque no se pueden contrastar con resultados de búsqueda. Aquí el LLM hace trabajo real, así que revisa su salida antes de fiarte del resto.

Python
# Scavio returns metadata, not a transcript.
# An LLM turns the title + description into checkable claims.
metadata_text = f"{data['title']}\n\n{data['description']}"

claims = extract_claims_with_llm(metadata_text)
# -> ["The battery lasts 40 hours", "It ships in March 2026", ...]
for c in claims:
    print("CLAIM:", c)

Paso 3: Comprueba cada afirmación en los resultados de Google

Para cada afirmación, consulta el endpoint de Google con light_request en false para obtener resultados orgánicos, el grafo de conocimiento y noticias. Con ese ajuste cuesta 2 créditos por consulta; el valor por defecto de light_request es true y cuesta 1, pero devuelve menos. Formula la consulta como la propia afirmación, o como la afirmación convertida en una pregunta neutral, para no sesgar los resultados. Leer resultados orgánicos y noticias ayuda a detectar afirmaciones que fueron ciertas pero ya se corrigieron.

Python
import requests

def ground_claim(claim):
    resp = requests.post(
        "https://api.scavio.dev/api/v1/google",
        headers={
            "Authorization": "Bearer sk_live_...",
            "Content-Type": "application/json",
        },
        json={"query": claim, "light_request": False},
    )
    g = resp.json()
    return g["organic"], g.get("knowledge_graph"), g.get("news_results")

Paso 4: Puntúa la afirmación y adjunta las fuentes

Devuelve los mejores resultados al LLM y pídele que juzgue si respaldan, contradicen o coinciden en parte con la afirmación. Registra el veredicto, un valor de confianza y las URL de las fuentes para que una persona pueda verificarlo. Sé prudente: cuando los resultados son escasos o contradictorios, marca la afirmación como mixta en vez de forzar un sí o un no. La confianza y los enlaces hacen la salida revisable, lo cual importa porque el modelo que juzga también puede equivocarse.

Python
def score_claim(claim, organic):
    # Feed the top results back to the LLM to judge support.
    sources = [{"title": r["title"], "url": r["link"], "snippet": r["snippet"]}
               for r in organic[:5]]
    verdict = judge_with_llm(claim, sources)  # supported | unsupported | mixed
    return {
        "claim": claim,
        "verdict": verdict["label"],
        "confidence": verdict["confidence"],
        "sources": [s["url"] for s in sources],
    }

Ejemplo en Python

Python
import requests

API_KEY = "sk_live_..."
HEADERS = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json",
}
BASE = "https://api.scavio.dev/api/v1"


def get_metadata(video_url):
    resp = requests.post(
        f"{BASE}/youtube/metadata",
        headers=HEADERS,
        json={"query": video_url},
    )
    resp.raise_for_status()
    return resp.json()


def ground_claim(claim):
    resp = requests.post(
        f"{BASE}/google",
        headers=HEADERS,
        json={"query": claim, "light_request": False},
    )
    resp.raise_for_status()
    return resp.json()


def extract_claims_with_llm(text):
    # Replace with a real LLM call (Claude, etc.).
    # Return a list of short, checkable factual statements.
    raise NotImplementedError


def judge_with_llm(claim, sources):
    # Replace with a real LLM call.
    # Return {"label": "supported|unsupported|mixed", "confidence": 0.0-1.0}
    raise NotImplementedError


def fact_check(video_url):
    meta = get_metadata(video_url)
    print(f"Video: {meta['title']} ({meta['stats']['views']} views)")

    text = f"{meta['title']}\n\n{meta['description']}"
    claims = extract_claims_with_llm(text)

    report = []
    for claim in claims:
        g = ground_claim(claim)
        organic = g.get("organic", [])
        sources = [{"title": r["title"], "url": r["link"],
                    "snippet": r["snippet"]} for r in organic[:5]]
        verdict = judge_with_llm(claim, sources)
        report.append({
            "claim": claim,
            "verdict": verdict["label"],
            "confidence": verdict["confidence"],
            "sources": [s["url"] for s in sources],
        })
    return report


if __name__ == "__main__":
    results = fact_check("https://www.youtube.com/watch?v=VIDEO_ID")
    for row in results:
        print(f"[{row['verdict']}] {row['claim']}")
        for url in row["sources"]:
            print(f"    {url}")

Ejemplo en JavaScript

JavaScript
const API_KEY = "sk_live_...";
const HEADERS = {
  Authorization: `Bearer ${API_KEY}`,
  "Content-Type": "application/json",
};
const BASE = "https://api.scavio.dev/api/v1";

async function getMetadata(videoUrl) {
  const resp = await fetch(`${BASE}/youtube/metadata`, {
    method: "POST",
    headers: HEADERS,
    body: JSON.stringify({ query: videoUrl }),
  });
  if (!resp.ok) throw new Error(`metadata ${resp.status}`);
  return resp.json();
}

async function groundClaim(claim) {
  const resp = await fetch(`${BASE}/google`, {
    method: "POST",
    headers: HEADERS,
    body: JSON.stringify({ query: claim, light_request: false }),
  });
  if (!resp.ok) throw new Error(`google ${resp.status}`);
  return resp.json();
}

// Replace these two with real LLM calls (Claude, etc.).
async function extractClaimsWithLLM(text) {
  throw new Error("not implemented");
}
async function judgeWithLLM(claim, sources) {
  throw new Error("not implemented");
}

async function factCheck(videoUrl) {
  const meta = await getMetadata(videoUrl);
  console.log(`Video: ${meta.title} (${meta.stats.views} views)`);

  const text = `${meta.title}\n\n${meta.description}`;
  const claims = await extractClaimsWithLLM(text);

  const report = [];
  for (const claim of claims) {
    const g = await groundClaim(claim);
    const organic = g.organic || [];
    const sources = organic.slice(0, 5).map((r) => ({
      title: r.title,
      url: r.link,
      snippet: r.snippet,
    }));
    const verdict = await judgeWithLLM(claim, sources);
    report.push({
      claim,
      verdict: verdict.label,
      confidence: verdict.confidence,
      sources: sources.map((s) => s.url),
    });
  }
  return report;
}

factCheck("https://www.youtube.com/watch?v=VIDEO_ID").then((results) => {
  for (const row of results) {
    console.log(`[${row.verdict}] ${row.claim}`);
    for (const url of row.sources) console.log(`    ${url}`);
  }
});

Salida esperada

JSON
Video: The Truth About Solid-State Batteries (842113 views)
[supported] Solid-state cells reach higher energy density
    https://en.wikipedia.org/wiki/Solid-state_battery
    https://www.nature.com/articles/...
[unsupported] These batteries ship to consumers in 2026
    https://www.reuters.com/...
[mixed] Charge time drops to under five minutes
    https://ieeexplore.ieee.org/...

Tutoriales relacionados

  • Crea un verificador de datos en tiempo real que ancla un LLM en busqueda en vivo

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.

Una clave de API de Scavio (sk_live_...) desde tu panel; las cuentas nuevas reciben 50 créditos gratis.. Python 3.9+ con requests, o Node.js 18+ para la versión en JavaScript.. Un LLM al que puedas llamar para extraer afirmaciones y juzgar el respaldo (Claude o similar).. Una URL o un ID de vídeo de YouTube que quieras comprobar.. 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

Las mejores API de datos comerciales de Google Maps (mayo de 2026)

Read more
Best Of

La mejor API de búsqueda de Google en 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

Costo de la API de Google Maps Places

Read more
Use Case

API de búsqueda de YouTube para investigación de SEO de vídeos

Read more

Empieza a construir

Obtén los metadatos de un vídeo de YouTube, extrae afirmaciones y compruébalas con resultados reales de Google usando la API de Scavio.

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