L'API YouTube vous arrête à 100 recherches par jour. Web Unlocker renvoie chaque page de recherche demandée, avec jusqu'à 20 vidéos chacune, pour $0.98 les 1 000. Sans clé API Google.
1 000 requêtes gratuites · Facturé en cas de succès · 195+ pays · Prêt pour Claude
Les pages YouTube mettent de 15 à 30 secondes à se charger. Le travail continue, inutile de cliquer à nouveau.
Prêt pour vos propres recherches ? Obtenez une clé API ou réservez une démo.
Parlez-nous un peu de votre équipe et recevez :
Web Unlocker facture une page de résultats de recherche YouTube comme une seule page, avec toutes ses vidéos, jusqu'à 20. Les scrapers YouTube d'Apify et de Bright Data facturent chacune de ces vidéos comme une ligne distincte.
L'API s'arrête à 100 recherches par jour.
Ici, 1 000 recherches coûtent $0.98.
Filtrez la recherche comme le fait YouTube, par date d'importation ou par nombre de vues : chaque filtre est une page de plus au même prix.
Ce que coûtent 1 000 recherches de 20 vidéos chacune
1 000 pages de recherche et 20 000 vidéos, aux prix publiés
SerpApi facture chaque recherche. Bright Data facture chaque vidéo comme un enregistrement, $1.50 pour 1 000. Le scraper YouTube le plus utilisé sur Apify facture chaque vidéo, de $2.40 à $4.00 pour 1 000.
L'API YouTube Data est gratuite jusqu'à l'épuisement de ses 100 recherches par jour, et les scrapers YouTube facturent chaque vidéo. Voici ce que demande chaque voie pour les mêmes 1 000 recherches.
| Ce que cela demande | YouTube Data API | Apify | SerpApi | |
|---|---|---|---|---|
| Recherches par jour | Sans plafond | 100 | Sans plafond | Selon le forfait |
| Vous payez | Une page | Gratuit dans le quota | Chaque vidéo | Chaque recherche |
| 1 000 recherches de 20 vidéos | $0.98 | 10 jours de quota | $48 à $80 | $25 |
| Transcriptions de n'importe quelle vidéo | Avec Cloud Browser | Vos vidéos uniquement | Oui | Non |
| Démarrer sans projet Google | Oui | Non | Oui | Oui |
| La page entière en HTML | Oui | Non | Non | Non |
Vous scrapez plus que YouTube ? Web Unlocker renvoie n'importe quelle page de la même façon, au même prix.
La playlist des importations d'une chaîne liste 100 vidéos sur sa première page, et chaque page suivante en apporte 78 de plus. Web Unlocker facture chaque page une fois : 10 pages, 802 vidéos, $0.0098.
Apify facture de $2.40 à $4.00 pour 1 000 vidéos.
Ici, 800 coûtent 1 centime.
YouTube garde chaque vidéo d'une page sous forme de JSON dans son HTML. Web Unlocker renvoie ce HTML, et quelques lignes de code en extraient les vidéos.
Remplissez le formulaire ci-dessus. La clé arrive par e-mail sous un jour ouvré.
Une recherche pour votre mot-clé, une vidéo pour ses chiffres, ou les importations d'une chaîne pour chacune de ses vidéos.
Chaque vidéo de la page porte son titre, ses vues, sa chaîne, sa date et sa durée.
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) ?? [],
});Prêt à l'appliquer à vos propres recherches ? Obtenez votre clé API et des requêtes gratuites.
Web Unlocker renvoie la page telle que YouTube l'envoie d'abord. Les commentaires ne se chargent qu'au défilement, et les transcriptions qu'au clic. Cloud Browser est le module qui défile et clique pour vous, à partir de $4.50 par mois pour 50 heures de navigateur.
100 commentaires de chacune de 1 000 vidéos reviennent à $6.95 : 8.3 heures de navigateur et 6.2 GB de trafic. Apify facture de $30 à $200 pour la même chose.
L'API YouTube ne donne que les transcriptions de vos propres vidéos, et les serveurs reçoivent un fichier vide. Cloud Browser ouvre la transcription comme le fait un spectateur, en 25 secondes.
Chaque session tourne sur une IP résidentielle du pays que vous choisissez. Le trafic au-delà de votre forfait coûte $1/GB.
Lancez-le depuis Playwright, Puppeteer ou Claude. Voir Cloud Browser.
Un compte, un réseau de proxys, un écosystème. Choisissez le produit dont la tâche a besoin.
Vous scrapez d'autres sites ? Voir les scrapers Reddit, Google Maps et Amazon, ou tous les outils de web scraping.
Oui. Web Unlocker est une API de scraper YouTube : envoyez-lui une recherche, une vidéo ou les importations d'une chaîne, et il charge la page dans un vrai navigateur et la renvoie avec les données que YouTube y garde : titres, vues, chaînes, dates et durées. $0.98 pour 1 000 pages, et le code ci-dessus les lit.
Oui. La page d'une vidéo YouTube apporte ses vues exactes, ses mentions J'aime, son nombre de commentaires, sa description, ses tags, sa date de publication et ses langues de sous-titres, plus 20 vidéos similaires, facturées comme une page. L'onglet Stats vidéo ci-dessus les lit.
Envoyez youtube.com/results avec votre mot-clé. Une page apporte jusqu'à 20 vidéos et jusqu'à 25 Shorts, chacun avec ses vues, sa chaîne, son ancienneté et sa durée, facturés comme une page. Ajoutez les filtres de YouTube, par date d'importation ou par nombre de vues, pour d'autres résultats.
100 appels de recherche par jour et par projet par défaut, chacun avec jusqu'à 50 résultats. Pour en avoir plus, il faut une demande de quota et un audit de Google. Web Unlocker n'a pas de plafond quotidien : vous payez à la page, $0.98 pour 1 000.
Oui, dans la limite de son quota : 10 000 unités par jour pour la plupart des appels, plus 100 recherches. Au-delà, Google n'augmente le quota qu'après un audit de votre projet.
Oui. Les pages de recherche, de vidéo et de chaîne sont publiques et se chargent sans connexion. Web Unlocker les renvoie comme les voit le navigateur d'un visiteur, sans projet Google et sans clé API.
Ouvrez la playlist des importations de la chaîne : la première page liste 100 vidéos avec leurs vues et leur ancienneté. Ouvrez ensuite sa dernière vidéo avec cette playlist : chaque page de ce type en liste 78 de plus. 10 pages apportent 802 vidéos, pour 1 centime.
YouTube charge les commentaires au fil du défilement, donc Web Unlocker ne les renvoie pas. Cloud Browser fait défiler la vidéo pour vous : 100 commentaires en 26 secondes, et 100 commentaires de chacune de 1 000 vidéos pour $6.95.
Oui, avec Cloud Browser. L'API YouTube ne donne que les transcriptions de vos propres vidéos, et les requêtes venant de serveurs reçoivent un fichier vide. Cloud Browser ouvre la transcription comme le fait un spectateur, en 25 secondes par vidéo.
Envoyez l'adresse de la recherche à Web Unlocker avec la bibliothèque requests et lisez les vidéos dans la page. L'onglet Python ci-dessus est un script complet, testé sur l'API en production.
Oui. Une page de recherche apporte jusqu'à 25 Shorts avec leurs titres et leurs vues, l'onglet Shorts d'une chaîne en liste 48, et la page d'un Short contient ses mentions J'aime, son nombre de commentaires et sa date.
Web Unlocker renvoie la page, pas un tableau, donc rien n'est coupé avant que vous le voyiez. La transformer en CSV demande quelques lignes de code, ou une seule consigne : donnez la page à Claude avec la compétence de scraping Gologin et demandez un CSV.
$0.98 pour 1 000 pages, le même prix pour chaque page. Une recherche avec jusqu'à 20 vidéos est une page, une vidéo avec ses chiffres est une page. Une page qui ne se charge pas ne coûte rien. Les forfaits démarrent à $49 par mois pour 50 000 requêtes.
Oui, pour commencer : Web Unlocker inclut 1 000 requêtes gratuites, de quoi couvrir 1 000 recherches ou 1 000 vidéos.
Cela dépend de votre besoin. L'API YouTube est gratuite pour 100 recherches par jour. Apify et Bright Data vendent des lignes prêtes à l'emploi et facturent chaque vidéo. Web Unlocker renvoie la page entière à un prix unique, donc 20 vidéos coûtent autant qu'une seule.
Les pages de recherche, de vidéo et de chaîne sont des pages publiques qui se chargent sans connexion. Web Unlocker les charge comme le fait le navigateur d'un visiteur et renvoie la page. Ce que vous collectez et l'usage que vous en faites relèvent de vous : vérifiez-le au regard des règles applicables à votre projet.
Parlez-nous un peu de votre équipe et recevez :