Un usuario de r/Slack necesitaba datos de YouTube para un robot de resumen. La API oficial tiene cuotas. yt-dlp se bloquea en las IP de la nube. Los puntos finales de YouTube de Scavio devuelven metadatos + transcripciones sin descargar bytes de vídeo.
Requisitos previos
- Clave API de Scavio
- Python 3.8+
Guia paso a paso
Paso 1: Buscar vídeos de YouTube
Encuentra vídeos por palabra clave.
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
def search_youtube(query):
return requests.post('https://api.scavio.dev/api/v1/search',
headers=H,
json={'platform': 'youtube', 'query': query}).json()Paso 2: Obtener metadatos de vídeo
Título, canal, duración, vistas, etiquetas: sin descarga de vídeo.
def get_metadata(video_url):
return requests.post('https://api.scavio.dev/api/v1/search',
headers=H,
json={'platform': 'youtube', 'query': video_url, 'type': 'metadata'}).json()Paso 3: Extraer transcripción
Obtenga el texto de la transcripción completa sin procesar el video.
def get_transcript(video_url):
return requests.post('https://api.scavio.dev/api/v1/search',
headers=H,
json={'platform': 'youtube', 'query': video_url, 'type': 'transcript'}).json()Paso 4: Manejar transcripciones faltantes
Recurra a los metadatos cuando las transcripciones no estén disponibles.
def get_best_data(video_url):
transcript = get_transcript(video_url)
if transcript.get('transcript'):
return {'type': 'transcript', 'data': transcript}
metadata = get_metadata(video_url)
return {'type': 'metadata', 'data': metadata}Ejemplo en Python
# No video bytes downloaded. No quota limits.
# Metadata: title, channel, duration, views, tags, description
# Transcript: full text with timestamps
# Cost: $0.005 per callEjemplo en JavaScript
const meta = 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: videoUrl, type: 'metadata'})
});Salida esperada
YouTube metadata + transcripts via API. No video downloads, no quota limits, no IP blocking. Fallback to metadata when transcripts unavailable.