ScavioScavio
ProductoPreciosDocumentación
Iniciar sesionComenzar
  1. Inicio
  2. Tutoriales
  3. Cómo crear una base de conocimientos de YouTube con MongoDB
Tutorial

Cómo crear una base de conocimientos de YouTube con MongoDB

Cree una base de conocimientos de YouTube con capacidad de búsqueda en MongoDB indexando metadatos de vídeo y transcripciones de los resultados de búsqueda de YouTube. Tutorial de Python.

Obtener clave API gratisDocumentacion API

Cree una base de conocimiento de YouTube en MongoDB buscando videos relevantes para el tema a través de la API de Scavio, extrayendo metadatos y datos de transcripción, almacenándolos como documentos indexados por texto y consultando la base de conocimiento con búsqueda de texto completo. YouTube contiene conocimientos expertos en todos los dominios, pero está encerrado en el formato de vídeo. Una base de conocimiento con capacidad de búsqueda convierte ese contenido de video en texto consultable, haciéndolo accesible para agentes de investigación, chatbots y herramientas internas.

Requisitos previos

  • Python 3.8+ instalado
  • biblioteca pymongo instalada
  • MongoDB ejecutándose localmente o cadena de conexión Atlas
  • Una clave API de Scavio de scavio.dev

Guia paso a paso

Paso 1: Buscar temas de YouTube

Consulta YouTube a través de Scavio para encontrar videos relevantes sobre tus temas objetivo.

Python
import os, requests
from pymongo import MongoClient
from datetime import datetime

API_KEY = os.environ['SCAVIO_API_KEY']
MONGO_URI = os.environ.get('MONGO_URI', 'mongodb://localhost:27017')

client = MongoClient(MONGO_URI)
db = client['youtube_kb']
collection = db['videos']

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

results = search_youtube('python async programming tutorial')
print(f'Found {len(results)} videos')

Paso 2: Extraer metadatos de vídeo

Analice los resultados de la búsqueda para extraer el título, el canal, la descripción, las vistas y la duración de cada video.

Python
def extract_metadata(results: list, topic: str) -> list:
    docs = []
    for r in results:
        doc = {
            'title': r.get('title', ''),
            'url': r.get('link', ''),
            'channel': r.get('channel', r.get('author', '')),
            'description': r.get('snippet', r.get('description', '')),
            'views': r.get('views', ''),
            'duration': r.get('duration', ''),
            'topic': topic,
            'indexed_at': datetime.utcnow(),
            'searchable_text': f"{r.get('title', '')} {r.get('snippet', '')} {r.get('channel', '')}",
        }
        docs.append(doc)
    return docs

docs = extract_metadata(results, 'python async')
print(f'Extracted {len(docs)} video documents')
if docs:
    print(f'Sample: {docs[0]["title"][:60]}')

Paso 3: Crear índice de texto MongoDB

Almacene los documentos en MongoDB y cree un índice de texto en los campos de búsqueda para consultas de texto completo.

Python
def index_videos(docs: list) -> int:
    if not docs:
        return 0
    # Upsert to avoid duplicates
    inserted = 0
    for doc in docs:
        result = collection.update_one(
            {'url': doc['url']},
            {'$set': doc},
            upsert=True
        )
        if result.upserted_id:
            inserted += 1
    return inserted

# Create text index
collection.create_index([
    ('searchable_text', 'text'),
    ('title', 'text'),
    ('description', 'text'),
])

count = index_videos(docs)
print(f'Indexed {count} new videos (total: {collection.count_documents({})})')

Paso 4: Buscar en la base de conocimientos

Consulta tu base de conocimientos de MongoDB mediante la búsqueda de texto completo para encontrar vídeos relevantes por contenido.

Python
def search_kb(query: str, limit: int = 5) -> list:
    cursor = collection.find(
        {'$text': {'$search': query}},
        {'score': {'$meta': 'textScore'}}
    ).sort([('score', {'$meta': 'textScore'})]).limit(limit)
    results = []
    for doc in cursor:
        results.append({
            'title': doc['title'],
            'url': doc['url'],
            'channel': doc.get('channel', ''),
            'score': doc.get('score', 0),
        })
    return results

results = search_kb('async await python')
for r in results:
    print(f"{r['score']:.1f} | {r['title'][:50]} | {r['channel']}")

Paso 5: Automatizar la indexación diaria

Cree un trabajo diario que busque nuevos temas y agregue videos nuevos a la base de conocimientos.

Python
DAILY_TOPICS = [
    'python best practices 2026',
    'machine learning tutorial',
    'system design interview',
    'cloud architecture patterns',
]

def daily_index() -> dict:
    total_new = 0
    for topic in DAILY_TOPICS:
        results = search_youtube(topic)
        docs = extract_metadata(results, topic)
        new = index_videos(docs)
        total_new += new
        print(f'{topic}: {new} new videos indexed')
    total = collection.count_documents({})
    print(f'Daily index complete: {total_new} new, {total} total')
    return {'new': total_new, 'total': total}

# Run daily via cron: python -c 'from kb import daily_index; daily_index()'
daily_index()

Ejemplo en Python

Python
import requests, os
from pymongo import MongoClient
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
client = MongoClient('mongodb://localhost:27017')
db = client['youtube_kb']

def index_topic(topic):
    data = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
        json={'platform': 'youtube', 'query': topic}).json()
    for r in data.get('organic_results', []):
        db.videos.update_one({'url': r.get('link')}, {'$set': {
            'title': r.get('title', ''), 'url': r.get('link', ''),
            'text': f"{r.get('title', '')} {r.get('snippet', '')}"
        }}, upsert=True)

index_topic('python async tutorial')
print(f'{db.videos.count_documents({})} videos in KB')

Ejemplo en JavaScript

JavaScript
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
async function searchYouTube(topic) {
  const r = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST', headers: H, body: JSON.stringify({platform: 'youtube', query: topic})
  });
  return (await r.json()).organic_results || [];
}
searchYouTube('python async tutorial').then(r => console.log(r.length + ' videos found'));

Salida esperada

JSON
A MongoDB-backed knowledge base populated with YouTube video metadata from search results, queryable via full-text search and updated daily.

Tutoriales relacionados

  • Cómo crear un agente de investigación de YouTube
  • Cómo extraer notas de vídeos de YouTube a Obsidian

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.8+ instalado. biblioteca pymongo instalada. MongoDB ejecutándose localmente o cadena de conexión Atlas. Una clave API de Scavio de scavio.dev. 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
Glossary

Panorama de proveedores de API de búsqueda (2026)

Read more
Comparison

Scavio vs Apify (YouTube actors)

Read more
Comparison

TubeMine vs YouTube Data API (via Scavio)

Read more

Empieza a construir

Cree una base de conocimientos de YouTube con capacidad de búsqueda en MongoDB indexando metadatos de vídeo y transcripciones de los resultados de búsqueda de YouTube. Tutorial de Python.

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