YouTube API dừng ở 100 lượt tìm kiếm mỗi ngày. Web Unlocker trả về mọi trang tìm kiếm bạn yêu cầu, tối đa 20 video mỗi trang, với $0.98 cho 1.000 trang. Không cần Google API key.
1.000 yêu cầu miễn phí · Chỉ tính phí khi thành công · 195+ quốc gia · Sẵn sàng cho Claude
Trang YouTube mất 15 đến 30 giây để tải. Hệ thống vẫn đang xử lý, bạn không cần nhấp lại.
Sẵn sàng cho các lượt tìm kiếm của riêng bạn? Nhận API key hoặc đặt lịch demo.
Hãy cho chúng tôi biết đôi nét về đội ngũ của bạn để nhận:
Web Unlocker tính một trang kết quả tìm kiếm YouTube như một trang, kèm tất cả tối đa 20 video trên đó. Các scraper YouTube trên Apify và Bright Data tính phí mỗi video như một dòng riêng.
API dừng ở 100 lượt tìm kiếm mỗi ngày.
Ở đây 1.000 lượt tìm kiếm có giá $0.98.
Lọc tìm kiếm giống như YouTube, theo ngày đăng hoặc theo lượt xem: mỗi bộ lọc là thêm một trang với cùng mức giá.
Chi phí cho 1.000 lượt tìm kiếm, mỗi lượt 20 video
1.000 trang tìm kiếm và 20.000 video, theo giá công bố
SerpApi tính phí mỗi lượt tìm kiếm. Bright Data tính phí mỗi video như một bản ghi, $1.50 cho 1.000. Scraper YouTube được dùng nhiều nhất trên Apify tính phí mỗi video, $2.40 đến $4.00 cho 1.000.
YouTube Data API miễn phí cho đến khi hết 100 lượt tìm kiếm mỗi ngày, còn các scraper YouTube tính phí từng video. Đây là những gì mỗi hướng đòi hỏi cho cùng 1.000 lượt tìm kiếm.
| Bạn cần gì | YouTube Data API | Apify | SerpApi | |
|---|---|---|---|---|
| Lượt tìm kiếm mỗi ngày | Không có mức trần | 100 | Không có mức trần | Theo gói |
| Bạn trả tiền cho | Một trang | Miễn phí trong hạn mức | Mỗi video | Mỗi lượt tìm kiếm |
| 1.000 lượt tìm kiếm kèm 20 video | $0.98 | 10 ngày hạn mức | $48 đến $80 | $25 |
| Bản chép lời của mọi video | Với Cloud Browser | Chỉ video của chính bạn | Có | Không |
| Bắt đầu mà không cần dự án Google | Có | Không | Có | Có |
| Toàn bộ trang ở dạng HTML | Có | Không | Không | Không |
Cần thu thập nhiều hơn YouTube? Web Unlocker trả về bất kỳ trang nào theo cùng cách, với cùng mức giá.
Danh sách phát video đã tải lên của một kênh liệt kê 100 video ở trang đầu, và mỗi trang tiếp theo thêm 78 video. Web Unlocker tính mỗi trang một lần: 10 trang, 802 video, $0.0098.
Apify tính $2.40 đến $4.00 cho 1.000 video.
Ở đây 800 video có giá 1 cent.
YouTube giữ mọi video trên một trang dưới dạng JSON bên trong HTML của nó. Web Unlocker trả về HTML đó, và vài dòng code sẽ đọc các video ra từ đó.
Điền biểu mẫu ở trên. Key sẽ được gửi qua email trong vòng một ngày làm việc.
Một lượt tìm kiếm theo từ khóa của bạn, một video để lấy số liệu của nó, hoặc video đã tải lên của một kênh để lấy mọi video của kênh đó.
Mỗi video trên trang đều có tiêu đề, lượt xem, kênh, ngày đăng và thời lượng.
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) ?? [],
});Sẵn sàng chạy nó trên các lượt tìm kiếm của riêng bạn? Nhận API key và các yêu cầu miễn phí.
Web Unlocker trả về trang đúng như YouTube gửi lần đầu. Bình luận chỉ tải khi bạn cuộn, và bản chép lời chỉ khi bạn nhấp. Cloud Browser là tiện ích bổ sung cuộn và nhấp thay bạn, từ $4.50 mỗi tháng cho 50 giờ trình duyệt.
100 bình luận từ mỗi video trong 1.000 video có giá $6.95: 8.3 giờ trình duyệt và 6.2 GB lưu lượng. Apify tính $30 đến $200 cho cùng khối lượng đó.
YouTube API chỉ cung cấp bản chép lời của video của chính bạn, và các máy chủ nhận về một file trống. Cloud Browser mở bản chép lời giống như một người xem, trong 25 giây.
Mỗi phiên chạy trên một IP dân cư ở quốc gia bạn chọn. Lưu lượng vượt gói là $1/GB.
Chạy nó từ Playwright, Puppeteer hoặc Claude. Xem Cloud Browser.
Một tài khoản, một mạng proxy, một hệ sinh thái. Chọn sản phẩm phù hợp với công việc.
Thu thập thêm nhiều trang web khác? Xem các scraper Reddit, Google Maps và Amazon, hoặc mọi công cụ thu thập dữ liệu web.
Có. Web Unlocker là một API scraper YouTube: gửi cho nó một lượt tìm kiếm, một video hoặc video đã tải lên của một kênh, và nó tải trang trong một trình duyệt thật rồi trả về trang kèm dữ liệu mà YouTube giữ bên trong: tiêu đề, lượt xem, kênh, ngày đăng và thời lượng. $0.98 cho 1.000 trang, và đoạn code ở trên đọc được nó.
Có. Trang video YouTube cho biết chính xác lượt xem, lượt thích, số bình luận, mô tả, thẻ, ngày đăng và các ngôn ngữ phụ đề, cùng 20 video liên quan, tính phí như một trang. Tab Số liệu video ở trên đọc các thông tin này.
Gửi youtube.com/results kèm từ khóa của bạn. Một trang trả về tối đa 20 video và tối đa 25 Shorts, mỗi mục có lượt xem, kênh, thời gian đăng và thời lượng, tính phí như một trang. Thêm các bộ lọc của chính YouTube, theo ngày đăng hoặc theo lượt xem, để có kết quả khác.
Theo mặc định là 100 lệnh gọi tìm kiếm mỗi ngày cho mỗi dự án, mỗi lệnh tối đa 50 kết quả. Muốn nhiều hơn cần gửi yêu cầu nâng hạn mức và được Google kiểm duyệt. Web Unlocker không có mức trần hằng ngày: bạn trả theo trang, $0.98 cho 1.000 trang.
Có, trong hạn mức của nó: 10.000 đơn vị mỗi ngày cho hầu hết các lệnh gọi, cộng thêm 100 lượt tìm kiếm. Vượt mức đó, Google chỉ nâng hạn mức sau khi kiểm duyệt dự án của bạn.
Có. Trang tìm kiếm, video và kênh là các trang công khai, tải được mà không cần đăng nhập. Web Unlocker trả về chúng giống như trình duyệt của một người dùng nhìn thấy, không cần dự án Google và không cần API key.
Mở danh sách phát video đã tải lên của kênh: trang đầu liệt kê 100 video kèm lượt xem và thời gian đăng. Sau đó mở video cuối cùng của trang với danh sách phát đó: mỗi trang như vậy liệt kê thêm 78 video. 10 trang cho 802 video, với giá 1 cent.
YouTube tải bình luận khi bạn cuộn, nên Web Unlocker không trả về chúng. Cloud Browser cuộn video thay bạn: 100 bình luận trong 26 giây, và 100 bình luận từ mỗi video trong 1.000 video với $6.95.
Có, bằng Cloud Browser. YouTube API chỉ cung cấp bản chép lời của video của chính bạn, và các yêu cầu từ máy chủ nhận về một file trống. Cloud Browser mở bản chép lời giống như một người xem, trong 25 giây cho mỗi video.
Gửi địa chỉ tìm kiếm tới Web Unlocker bằng thư viện requests và đọc các video từ trang. Tab Python ở trên là một script hoàn chỉnh, đã được kiểm thử trên API thật.
Có. Một trang tìm kiếm trả về tối đa 25 Shorts kèm tiêu đề và lượt xem, tab Shorts của một kênh liệt kê 48 video, và trang riêng của một Short có lượt thích, số bình luận và ngày đăng.
Web Unlocker trả về trang chứ không phải một bảng, nên không có gì bị cắt trước khi bạn thấy. Chuyển nó thành CSV chỉ cần vài dòng code, hoặc một prompt: đưa trang cho Claude cùng Gologin scraping skill và yêu cầu một file CSV.
$0.98 cho 1.000 trang, cùng một mức giá cho mọi trang. Một lượt tìm kiếm với tối đa 20 video là một trang, một video kèm số liệu của nó là một trang. Trang tải không được thì không tốn phí. Các gói bắt đầu từ $49 mỗi tháng cho 50.000 yêu cầu.
Có, để bắt đầu: Web Unlocker đi kèm 1.000 yêu cầu miễn phí, đủ cho 1.000 lượt tìm kiếm hoặc 1.000 video.
Tùy vào nhu cầu của bạn. YouTube API miễn phí cho 100 lượt tìm kiếm mỗi ngày. Apify và Bright Data bán các dòng dữ liệu làm sẵn và tính phí mỗi video. Web Unlocker trả về toàn bộ trang với một mức giá, nên 20 video có giá bằng một video.
Trang tìm kiếm, video và kênh là các trang công khai, tải được mà không cần đăng nhập. Web Unlocker tải chúng giống như trình duyệt của một người dùng và trả về trang đó. Bạn thu thập gì và dùng ra sao là quyết định của bạn, vì vậy hãy đối chiếu với các quy định áp dụng cho dự án của bạn.
Hãy cho chúng tôi biết đôi nét về đội ngũ của bạn để nhận: