YouTube es una fuente enorme de tutoriales, reseñas de productos y comentarios de expertos que la búsqueda basada en texto a menudo pasa por alto. Este tutorial crea un agente de investigación que consulta el punto final de YouTube de Scavio para encontrar videos relevantes, extrae metadatos e incorpora los hallazgos de los videos en los resultados de la investigación. El agente puede encontrar tutoriales sobre temas técnicos, reseñas de productos para contenido comparativo y charlas de expertos para inteligencia de mercado.
Requisitos previos
- Python 3.8+ instalado
- solicita biblioteca instalada
- Una clave API de Scavio de scavio.dev
Guia paso a paso
Paso 1: Buscar un tema en YouTube
Consulta el punto final de YouTube de Scavio para ver vídeos relevantes.
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
def search_youtube(query: str) -> list:
resp = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
json={'platform': 'youtube', 'query': query}, timeout=10)
return resp.json().get('organic', [])Paso 2: Extraer metadatos de vídeo
Analice los resultados de la búsqueda en registros de vídeo estructurados.
def parse_videos(results: list) -> list:
videos = []
for r in results:
videos.append({
'title': r.get('title', ''),
'url': r.get('link', ''),
'channel': r.get('channel', ''),
'views': r.get('views', ''),
'published': r.get('date', ''),
'description': r.get('snippet', ''),
})
return videosPaso 3: Filtrar por relevancia y actualidad
Filtre videos para encontrar el contenido más relevante y reciente.
def filter_videos(videos: list, max_age_days: int = 90) -> list:
from datetime import datetime, timedelta
cutoff = datetime.now() - timedelta(days=max_age_days)
filtered = []
for v in videos:
# Keep videos with substantial titles (not shorts or clips)
if len(v['title']) > 20:
filtered.append(v)
return filtered[:10]Paso 4: Generar resumen de investigación
Recopile los hallazgos del video en un formato listo para la investigación.
def youtube_research(topic: str) -> dict:
results = search_youtube(topic)
videos = parse_videos(results)
filtered = filter_videos(videos)
return {
'topic': topic,
'total_found': len(results),
'top_videos': filtered,
'summary': f"Found {len(results)} videos on '{topic}'. Top channels: {', '.join(set(v['channel'] for v in filtered[:5] if v['channel']))}"
}
research = youtube_research('LangChain agents tutorial 2026')
print(research['summary'])
for v in research['top_videos'][:5]:
print(f" - {v['title']} ({v['channel']})")Ejemplo en Python
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
def yt_research(topic):
data = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
json={'platform': 'youtube', 'query': topic}, timeout=10).json()
return [{'title': r['title'], 'url': r.get('link', ''), 'channel': r.get('channel', '')}
for r in data.get('organic', [])[:10]]Ejemplo en JavaScript
async function ytResearch(topic) {
const data = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST', headers: {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'},
body: JSON.stringify({platform: 'youtube', query: topic})
}).then(r => r.json());
return (data.organic || []).slice(0, 10).map(r => ({title: r.title, url: r.link, channel: r.channel}));
}Salida esperada
A research agent that finds relevant YouTube videos and compiles findings into structured research summaries.