YouTube Scraper
Pricing
from $0.94 / 1,000 video scrapeds
YouTube Scraper
Search videos, get playlists, single videos with comments and all in any language
Pricing
from $0.94 / 1,000 video scrapeds
Rating
0.0
(0)
Developer
Monster Leads
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
YouTube Scraper — any language
Search videos, get playlists, single videos with comments — and all in any language.
Scrape YouTube channels, playlists, search results and individual videos without the official YouTube Data API and without a headless browser. Every request goes through a rotating proxy, handled for you — there is nothing to configure.
Any language
Set language and YouTube returns that locale's version of the data — titles,
descriptions, view counts, dates and subscriber counts:
{ "mode": "channel", "channel": "@MrBeast", "language": "es" }
language | Title returned |
|---|---|
en | I Survived The Most Extreme Places On Earth |
es | Sobrevivimos a los Lugares más Extremos del Mundo |
de | Wir haben an den extremsten Orten überlebt |
pt-BR | Nós Sobrevivemos aos Lugares Mais Extremos do Mundo |
Want the same video in several languages? Run the actor once per language and
join the results on videoId, which is stable across every locale. That gives you one
row per language for the same video — useful for building localised catalogues,
comparing how a channel positions itself per market, or filling a multi-language
database from a single source.
Because the language is sent explicitly, results stay consistent no matter which country the rotating proxy exits from. Without it YouTube guesses from the exit IP and a single run can come back with mixed languages.
What it does
| Mode | Input | Returns |
|---|---|---|
channel | channel id, @username or channel URL | videos, shorts or streams from that channel |
playlist | playlist id (PL..., UU...) | every video in the playlist |
search | a search term | videos, channels, playlists or movies |
video | a list of video ids or URLs | full metadata per video, optionally with top comments |
Input
Pick a mode, then fill in only that mode's fields. Everything else is ignored.
| Mode | Required field | Optional fields for that mode |
|---|---|---|
channel | channel | contentType, sortBy |
playlist | playlistId | — |
search | searchQuery | resultsType, searchSortBy |
video | videoIds | commentsPerVideo |
maxItems and language apply to every mode.
Minimal channel run:
{"mode": "channel","channel": "@LinusTechTips","maxItems": 100}
Playlist run:
{"mode": "playlist","playlistId": "PLZbbT5o_s2xrwRnXk_yCPtnqqo4_u2YGL"}
Search run:
{"mode": "search","searchQuery": "python tutorial","resultsType": "video","searchSortBy": "view_count","maxItems": 50}
Single video run, with the top 20 comments:
{"mode": "video","videoIds": ["dQw4w9WgXcQ","https://www.youtube.com/watch?v=jNQXAC9IVRw","https://youtu.be/9bZkp7q19f0"],"commentsPerVideo": 20}
Field reference
Required, depending on mode
channel(Channel mode) — channel id (UC...),@username, or full channel URL.playlistId(Playlist mode) — the id afterlist=in a playlist URL.searchQuery(Search mode) — what to search for.videoIds(Single videos mode) — one entry per video. Bare ids, watch URLs,youtu.belinks and shorts URLs are all accepted.
Optional, mode-specific
contentType(Channel) —videos,shortsorstreams. Defaults tovideos.sortBy(Channel) —newest,popularoroldest. Defaults tonewest.resultsType(Search) —video,channel,playlistormovie. Defaults tovideo.searchSortBy(Search) —relevance,upload_date,view_countorrating. Defaults torelevance.commentsPerVideo(Single videos) — top comments per video.0skips them. Included in the per-video price, so 20 costs the same as 0.
Optional, every mode
maxItems— stop after this many results. Leave empty to scrape everything.language—Accept-Languagesent to YouTube, egen,de,es,pt-BR. Defaults toen. See Language below.
Proxy rotation, retries and request pacing are handled automatically — there is nothing to configure.
Output
Each dataset item for channel mode:
{"videoId": "sL6OWsT47zc","title": "Apple just Copied Microsoft's Worst Idea","is_live": false,"url": "https://www.youtube.com/watch?v=sL6OWsT47zc","thumbnail": "https://i.ytimg.com/vi/sL6OWsT47zc/hqdefault.jpg","source": "channel"}
playlist mode adds which playlist the video came from, on every item, so a dataset
holding several playlists stays groupable:
{"videoId": "0UG_SZpo750","title": "T1 vs GEN | 2026 LCK Road to MSI: Final Round","is_live": false,"url": "https://www.youtube.com/watch?v=0UG_SZpo750","thumbnail": "https://i.ytimg.com/vi/0UG_SZpo750/hqdefault.jpg","playlistId": "PLTL19WNP0Lgc","playlistTitle": "2026 Road to MSI FULL VOD","playlistUrl": "https://www.youtube.com/playlist?list=PLTL19WNP0Lgc","source": "playlist"}
Search mode adds duration, views, published and channel.
Each dataset item for video mode carries the full metadata:
{"videoId": "dQw4w9WgXcQ","url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)","description": "The official video for ...","viewCount": 1813981533,"likes": 19381188,"lengthSeconds": 213,"publishDate": "2009-10-24T23:57:33-07:00","channel": "Rick Astley","channelId": "UCuAXFkgsw1L7xaCfnd5JJOw","subscribers": "4.54M subscribers","category": "Music","keywords": ["rick astley", "nggyu"],"isLive": false,"commentsFetched": 20,"comments": [{"commentId": "Ugzge340dBgB75hWBm54AaABAg","text": "can confirm: he never gave us up","author": "@YouTube","authorChannelId": "UCBR8-60-B28hp2BmDPdntcQ","authorIsVerified": true,"likes": 313000,"likesText": "313K","replyCount": 963,"publishedText": "1 year ago"}]}
Comment like counts are abbreviated by YouTube, so likes is an expansion of
likesText ("313K" becomes 313000) and is approximate above 1,000. The video's
own likes and viewCount are exact.
Pricing
This actor uses pay per event:
| Event | Applies to | Price |
|---|---|---|
| Listing item scraped | channel, playlist, search | $0.001 per item ($1 per 1,000) |
| Video details scraped | video | $0.01 per video |
A video item costs more because it needs its own page request plus a comments
continuation, and returns full metadata (description, likes, duration, keywords,
category) together with the top comments. Comments are included in that $0.01 —
they are not billed separately, so 20 comments cost the same as 0.
You are charged only for items actually stored in the dataset, so a run that returns nothing costs nothing.
Notes and limits
What language does and does not translate
| What | Effect of language |
|---|---|
| View counts, dates, subscriber counts | Always localised — 1.8B views vs 1,8 Mrd. Aufrufe |
| Video titles and descriptions | Localised only where the creator supplied a translation |
A channel that publishes no translations returns its original titles in every
language, so language is not a machine translator — it returns what the creator
actually published for that locale.
Numeric viewCount and likes are parsed to plain integers, so they are safe to
compare and deduplicate across languages. shortViewCount, subscribers and
likesText keep YouTube's localised formatting.
If you need a title in its original language regardless of translations, fetch it
from the YouTube Data API using the returned videoId.
Other limits
popular/oldestsorting is only available on channel tabs that have enough videos for YouTube to render the filter chips. Small channels fall back to newest.- No download links. Results contain the canonical
watch?v=URL. Directgooglevideo.comstream URLs are deliberately not extracted: they expire within hours and are bound to the IP that fetched them, so they would be broken for most users by the time they were read.