La API de YouTube te frena en 100 búsquedas al día. Web Unlocker devuelve cada página de búsqueda que pidas, con hasta 20 videos en cada una, por $0.98 cada 1000. Sin clave de API de Google.
1000 solicitudes gratis · Solo pagas si funciona · 195+ países · Listo para Claude
Las páginas de YouTube tardan de 15 a 30 segundos en cargar. Sigue en proceso, no hace falta volver a hacer clic.
¿Listo para tus propias búsquedas? Obtén una clave de API o reserva una demo.
Cuéntanos un poco sobre tu equipo y recibe:
Web Unlocker cobra la página de resultados de una búsqueda de YouTube como una página, con todos sus videos, hasta 20. Los scrapers de YouTube en Apify y Bright Data cobran cada uno de esos videos como una fila aparte.
La API se detiene en 100 búsquedas al día.
Aquí 1000 búsquedas cuestan $0.98.
Filtra la búsqueda como lo hace YouTube, por fecha de subida o por visualizaciones: cada filtro es una página más al mismo precio.
Lo que cuestan 1000 búsquedas con 20 videos cada una
1000 páginas de búsqueda y 20 000 videos, a precios publicados
SerpApi cobra cada búsqueda. Bright Data cobra cada video como un registro, $1.50 por 1000. El scraper de YouTube más usado en Apify cobra cada video, de $2.40 a $4.00 por 1000.
La YouTube Data API es gratis hasta que se agotan sus 100 búsquedas al día, y los scrapers de YouTube cobran cada video. Esto es lo que exige cada vía para las mismas 1000 búsquedas.
| Lo que exige | YouTube Data API | Apify | SerpApi | |
|---|---|---|---|---|
| Búsquedas al día | Sin límite | 100 | Sin límite | Según el plan |
| Pagas por | Una página | Gratis dentro de la cuota | Cada video | Cada búsqueda |
| 1000 búsquedas con 20 videos | $0.98 | 10 días de cuota | De $48 a $80 | $25 |
| Transcripciones de cualquier video | Con Cloud Browser | Solo tus videos | Sí | No |
| Empezar sin un proyecto de Google | Sí | No | Sí | Sí |
| La página completa en HTML | Sí | No | No | No |
¿Haces scraping de algo más que YouTube? Web Unlocker devuelve cualquier página de la misma forma y al mismo precio.
La lista de subidas de un canal muestra 100 videos en su primera página, y cada página siguiente trae 78 más. Web Unlocker cobra cada página una vez: 10 páginas, 802 videos, $0.0098.
Apify cobra de $2.40 a $4.00 por 1000 videos.
Aquí 800 cuestan 1 centavo.
YouTube guarda cada video de una página como JSON dentro de su HTML. Web Unlocker devuelve ese HTML, y unas pocas líneas de código leen los videos.
Rellena el formulario de arriba. La clave llega por correo en un día laborable.
Una búsqueda con tu palabra clave, un video para sus cifras, o las subidas de un canal para todos los videos que tiene.
Cada video de la página lleva su título, visualizaciones, canal, fecha y duración.
pip install requestsGOLOGIN_SCRAPING_API_KEY=your_key python youtube_search.pyhttps://parsing.webunlocker.gologin.com/v1/scrapeimport json
import os
import time
from urllib.parse import quote_plus
import requests
search = "home espresso"
def scrape(url):
for attempt in range(3):
response = requests.get(
"https://parsing.webunlocker.gologin.com/v1/scrape",
params={"url": url, "geo": "us", "format": "json"},
headers={"apikey": os.environ["GOLOGIN_SCRAPING_API_KEY"]},
timeout=90,
)
page = response.json().get("data", {}).get("html", "") if response.ok else ""
if '"videoRenderer"' in page:
return page
time.sleep(5)
raise RuntimeError("No videos came back, try again later")
def find(node, key):
if isinstance(node, dict):
for name, value in node.items():
if name == key:
yield value
yield from find(value, key)
elif isinstance(node, list):
for item in node:
yield from find(item, key)
def text(field):
if not field:
return None
return field.get("simpleText") or "".join(run["text"] for run in field.get("runs", []))
page = scrape(f"https://www.youtube.com/results?search_query={quote_plus(search)}")
data = json.loads(page.split("var ytInitialData = ")[1].split(";</script>")[0])
videos = {}
for video in find(data, "videoRenderer"):
videos[video["videoId"]] = {
"title": text(video.get("title")),
"url": f"https://www.youtube.com/watch?v={video['videoId']}",
"channel": text(video.get("ownerText")),
"views": text(video.get("viewCountText")),
"published": text(video.get("publishedTimeText")),
"length": text(video.get("lengthText")),
}
print(json.dumps(list(videos.values()), indent=2, ensure_ascii=False))
print(f"{len(videos)} videos from one search page")GOLOGIN_SCRAPING_API_KEY=your_key node youtube-channel.mjshttps://parsing.webunlocker.gologin.com/v1/scrapeconst channelId = 'UCBJycsmduvYEL83R_U4JriQ';
const wanted = 800;
const uploads = `UU${channelId.slice(2)}`;
async function scrape(url) {
for (let attempt = 1; attempt <= 3; attempt++) {
const params = new URLSearchParams({ url, geo: 'us', format: 'json' });
const response = await fetch(`https://parsing.webunlocker.gologin.com/v1/scrape?${params}`, {
headers: { apikey: process.env.GOLOGIN_SCRAPING_API_KEY },
});
const page = response.ok ? (await response.json()).data?.html : '';
if (page?.includes('var ytInitialData = ')) return JSON.parse(page.split('var ytInitialData = ')[1].split(';</script>')[0]);
await new Promise((resolve) => setTimeout(resolve, 5000));
}
throw new Error('The page came back without videos, try again later');
}
function* find(node, key) {
if (Array.isArray(node)) for (const item of node) yield* find(item, key);
else if (node && typeof node === 'object') {
for (const [name, value] of Object.entries(node)) {
if (name === key) yield value;
yield* find(value, key);
}
}
}
const videos = new Map();
for (const item of find(await scrape(`https://www.youtube.com/playlist?list=${uploads}`), 'lockupViewModel')) {
if (item.contentType === 'LOCKUP_CONTENT_TYPE_VIDEO') videos.set(item.contentId, item.metadata.lockupMetadataViewModel.title.content);
}
let pages = 1;
while (videos.size < wanted) {
const last = [...videos.keys()].at(-1);
const before = videos.size;
for (const item of find(await scrape(`https://www.youtube.com/watch?v=${last}&list=${uploads}`), 'playlistPanelVideoRenderer')) {
videos.set(item.videoId, item.title.simpleText);
}
pages++;
if (videos.size === before) break;
}
console.table([...videos].slice(0, 5).map(([id, title]) => ({ title, url: `https://www.youtube.com/watch?v=${id}` })));
console.log(`${videos.size} videos in ${pages} pages: $${(pages * 0.00098).toFixed(4)} on the Growth plan`);GOLOGIN_SCRAPING_API_KEY=your_key node youtube-video.mjshttps://parsing.webunlocker.gologin.com/v1/scrapeconst video = 'https://www.youtube.com/watch?v=jNQXAC9IVRw';
async function scrape(url) {
for (let attempt = 1; attempt <= 3; attempt++) {
const params = new URLSearchParams({ url, geo: 'us', format: 'json' });
const response = await fetch(`https://parsing.webunlocker.gologin.com/v1/scrape?${params}`, {
headers: { apikey: process.env.GOLOGIN_SCRAPING_API_KEY },
});
const page = response.ok ? (await response.json()).data?.html : '';
if (page?.includes('var ytInitialPlayerResponse = ')) return page;
await new Promise((resolve) => setTimeout(resolve, 5000));
}
throw new Error('The video page came back empty, try again later');
}
const page = await scrape(video);
const player = JSON.parse(page.split('var ytInitialPlayerResponse = ')[1].split(';var meta')[0]);
const { videoDetails: details, microformat, captions } = player;
console.log({
title: details.title,
channel: details.author,
views: Number(details.viewCount),
likes: Number(page.match(/along with ([\d,]+) other/)?.[1].replaceAll(',', '')),
comments: page.match(/"contextualInfo":\{"runs":\[\{"text":"([^"]+)"/)?.[1],
published: microformat.playerMicroformatRenderer.publishDate,
seconds: Number(details.lengthSeconds),
tags: details.keywords ?? [],
captions: captions?.playerCaptionsTracklistRenderer.captionTracks.map((track) => track.languageCode) ?? [],
});¿Listo para ejecutarlo con tus propias búsquedas? Obtén tu clave de API y solicitudes gratis.
Web Unlocker devuelve la página tal como YouTube la envía primero. Los comentarios solo cargan al desplazarte, y las transcripciones solo al hacer clic. Cloud Browser es el complemento que se desplaza y hace clic por ti, desde $4.50 al mes por 50 horas de navegador.
100 comentarios de cada uno de 1000 videos salen por $6.95: 8.3 horas de navegador y 6.2 GB de tráfico. Apify cobra de $30 a $200 por lo mismo.
La API de YouTube da transcripciones solo de tus propios videos, y los servidores reciben un archivo vacío. Cloud Browser abre la transcripción como lo hace un espectador, en 25 segundos.
Cada sesión corre en una IP residencial del país que elijas. El tráfico que pase de tu plan cuesta $1/GB.
Ejecútalo desde Playwright, Puppeteer o Claude. Ver Cloud Browser.
Una cuenta, una red de proxies, un ecosistema. Elige el producto que necesita cada tarea.
¿Haces scraping de más sitios? Consulta los scrapers de Reddit, Google Maps y Amazon, o todas las herramientas de web scraping.
Sí. Web Unlocker es una API de scraping de YouTube: envíale una búsqueda, un video o las subidas de un canal, y carga la página en un navegador real y la devuelve con los datos que YouTube guarda dentro: títulos, visualizaciones, canales, fechas y duraciones. $0.98 por 1000 páginas, y el código de arriba la lee.
Sí. La página de un video de YouTube trae sus visualizaciones exactas, me gusta, número de comentarios, descripción, etiquetas, fecha de publicación e idiomas de los subtítulos, más 20 videos relacionados, cobrados como una página. La pestaña Datos de video de arriba los lee.
Envía youtube.com/results con tu palabra clave. Una página trae hasta 20 videos y hasta 25 Shorts, cada uno con sus visualizaciones, canal, antigüedad y duración, cobrados como una página. Añade los filtros propios de YouTube, por fecha de subida o por visualizaciones, para obtener otros resultados.
100 llamadas de búsqueda al día por proyecto por defecto, cada una con hasta 50 resultados. Para más hace falta pedir una cuota y pasar una auditoría de Google. Web Unlocker no tiene tope diario: pagas por página, $0.98 por 1000.
Sí, dentro de su cuota: 10 000 unidades al día para la mayoría de las llamadas, más 100 búsquedas. Pasado eso, Google sube la cuota solo tras una auditoría de tu proyecto.
Sí. Las páginas de búsqueda, de video y de canal son públicas y cargan sin iniciar sesión. Web Unlocker las devuelve como las ve el navegador de un visitante, sin proyecto de Google y sin clave de API.
Abre la lista de subidas del canal: la primera página muestra 100 videos con sus visualizaciones y antigüedad. Luego abre su último video dentro de esa lista: cada página así muestra 78 más. 10 páginas traen 802 videos, por 1 centavo.
YouTube carga los comentarios al desplazarte, así que Web Unlocker no los devuelve. Cloud Browser se desplaza por el video por ti: 100 comentarios en 26 segundos, y 100 comentarios de cada uno de 1000 videos por $6.95.
Sí, con Cloud Browser. La API de YouTube da transcripciones solo de tus propios videos, y las solicitudes desde servidores reciben un archivo vacío. Cloud Browser abre la transcripción como lo hace un espectador, en 25 segundos por video.
Envía la dirección de la búsqueda a Web Unlocker con la biblioteca requests y lee los videos de la página. La pestaña Python de arriba es un script completo, probado en la API real.
Sí. Una página de búsqueda trae hasta 25 Shorts con sus títulos y visualizaciones, la pestaña Shorts de un canal lista 48, y la página de un Short tiene sus me gusta, número de comentarios y fecha.
Web Unlocker devuelve la página, no una tabla, así que no se recorta nada antes de que la veas. Convertirla en un CSV son unas pocas líneas de código, o un solo prompt: pasa la página a Claude con la skill de scraping de Gologin y pide un CSV.
$0.98 por 1000 páginas, el mismo precio para cada página. Una búsqueda con hasta 20 videos es una página, y un video con sus cifras es una página. Una página que no carga no cuesta nada. Los planes empiezan en $49 al mes por 50 000 solicitudes.
Sí, para empezar: Web Unlocker incluye 1000 solicitudes gratis, suficientes para 1000 búsquedas o 1000 videos.
Depende de lo que necesites. La API de YouTube es gratis para 100 búsquedas al día. Apify y Bright Data venden filas ya hechas y cobran cada video. Web Unlocker devuelve la página completa a un solo precio, así que 20 videos cuestan lo mismo que uno.
Las páginas de búsqueda, de video y de canal son públicas y cargan sin iniciar sesión. Web Unlocker las carga como lo hace el navegador de un visitante y devuelve la página. Qué recoges y cómo lo usas es decisión tuya, así que compruébalo con las normas que se apliquen a tu proyecto.
Cuéntanos un poco sobre tu equipo y recibe: