YouTube contiene datos valiosos -- video results, channel results, playlist results, transcripts, y mas. Hacer scraping de estos datos directamente implica lidiar con deteccion anti-bot, CAPTCHAs, rotacion de IP y selectores que se rompen constantemente. La API de Scavio maneja todo eso y devuelve JSON limpio y estructurado desde una sola solicitud POST.
Este tutorial te muestra como hacer scraping de YouTube usando Python y la API de Scavio. Al final, tendras un script funcional de Python que obtiene datos de YouTube en tiempo real y parsea los resultados.
Requisitos previos
- Python instalado en tu maquina
- Una clave API de Scavio (free tier incluye 50 creditos al registrarte -- sin tarjeta de credito)
Paso 1: Instalar dependencias
Instala requests para hacer solicitudes HTTP:
pip install requestsPaso 2: Haz tu primera busqueda en YouTube
Envia una solicitud POST al endpoint de la API de Scavio para YouTube con tu consulta. La API devuelve JSON estructurado con video results, channel results, playlist results, y mas.
import requests
API_KEY = "your_scavio_api_key"
response = requests.post(
"https://api.scavio.dev/api/v1/youtube/search",
headers={
"x-api-key": API_KEY,
"Content-Type": "application/json",
},
json={"query": query},
)
data = response.json()
for video in data.get("videos", [])[:5]:
print(f"{video['title']} — {video.get('views', 'N/A')} views")Paso 3: Respuesta de ejemplo
La API devuelve JSON estructurado. Aqui hay una respuesta de ejemplo para una busqueda en YouTube:
{
"search_metadata": { "status": "success" },
"videos": [
{
"position": 1,
"title": "Web Scraping with Python - Full Course",
"video_id": "XVv6mJpFOb0",
"channel": "freeCodeCamp.org",
"views": 3450000,
"duration": "1:12:45",
"published_date": "2 months ago",
"description": "Learn web scraping with Python..."
}
]
}Cada campo esta estructurado y tipado -- sin parseo de HTML, sin selectores CSS, sin extraccion con regex. Tu codigo de Python puede acceder a cualquier campo directamente.
Paso 4: Ejemplo completo funcional
Aqui hay un script completo y ejecutable de Python que busca en YouTube e imprime los resultados:
"""
Scrape YouTube search results using Scavio API.
Returns structured JSON with video results, channel results, playlist results, and more.
"""
import requests
import json
API_KEY = "your_scavio_api_key"
def search_youtube(query: str) -> dict:
response = requests.post(
"https://api.scavio.dev/api/v1/youtube/search",
headers={
"x-api-key": API_KEY,
"Content-Type": "application/json",
},
json={"query": query},
)
response.raise_for_status()
return response.json()
if __name__ == "__main__":
results = search_youtube("python web scraping tutorial")
print(json.dumps(results, indent=2))Por que usar Scavio en vez de hacer scraping de YouTube directamente?
- Sin gestion de proxies. El scraping directo requiere rotar proxies para evitar bloqueos de IP. Scavio maneja todo esto del lado del servidor.
- Sin resolucion de CAPTCHAs. YouTube bloquea agresivamente las solicitudes automatizadas. Scavio devuelve datos limpios cada vez.
- Salida JSON estructurada. Sin parseo de HTML ni mantenimiento de selectores CSS. Obtiene datos tipados y consistentes en cada solicitud.
- Multiplataforma en una API. Busca en Google, Amazon, YouTube y Walmart con la misma clave API y el mismo patron de autenticacion.
- Plan gratuito incluido. 50 creditos al registrarte sin tarjeta de credito. Cada busqueda cuesta 1 credito.