The fastest way to start scraping YouTube at scale. Our YouTube API returns structured JSON for videos, channels, playlists, comments, transcripts, search, trending, and Shorts — with no Data API key, anti-bot bypass, and region targeting built in.
No credit card required · PAYG credits never expire
# Get full detail for a YouTube video
import scrapebadger
client = scrapebadger.ScrapeBadger("sb_live_...")
video = client.youtube.video(
video_id="dQw4w9WgXcQ"
){
"video_id": "dQw4w9WgXcQ",
"title": "Rick Astley - Never Gonna Give You Up",
"view_count": 1623847291,
"like_count": 17800000,
"length_seconds": 213,
"channel_name": "Rick Astley",
"published_at": "2009-10-25T06:57:33Z"
}Structured JSON responses with normalized data models. No HTML parsing. No proxy management. No Data API quota.
/v1/youtube/search/v1/youtube/autocomplete/v1/youtube/videos/{video_id}/v1/youtube/videos/{video_id}/related/v1/youtube/videos/{video_id}/comments/v1/youtube/videos/{video_id}/comments/{comment_id}/replies/v1/youtube/videos/{video_id}/transcript/v1/youtube/videos/{video_id}/captions/v1/youtube/videos/{video_id}/streams/v1/youtube/videos/batch/v1/youtube/channels/{channel_id}/v1/youtube/channels/{channel_id}/videos/v1/youtube/channels/{channel_id}/shorts/v1/youtube/channels/{channel_id}/streams/v1/youtube/channels/{channel_id}/playlists/v1/youtube/channels/{channel_id}/community/v1/youtube/channels/{channel_id}/about/v1/youtube/channels/{channel_id}/subscriber_count/v1/youtube/channels/{channel_id}/search/v1/youtube/channels/resolve/v1/youtube/playlists/{playlist_id}/v1/youtube/playlists/{playlist_id}/items/v1/youtube/mixes/{mix_id}/v1/youtube/trending/v1/youtube/trending/shorts/v1/youtube/hashtags/{tag}/v1/youtube/home/v1/youtube/shorts/{video_id}/v1/youtube/shorts/by_sound/{sound_id}/v1/youtube/posts/{post_id}/v1/youtube/posts/{post_id}/comments/v1/youtube/music/search/v1/youtube/oembed/v1/youtube/categories/v1/youtube/languages/v1/youtube/regions/v1/youtube/marketsAll fields are normalized into typed JSON. Datetimes ship as both Unix timestamps and ISO-8601 strings. Thumbnails come as variant arrays with width and height.
video_idstring11-char video identifiertitlestringVideo titledescriptionstringFull video descriptionview_countintegerTotal viewslike_countintegerLike count (from /next toolbar)comment_countintegerTotal comments on the videolength_secondsintegerDuration in secondspublished_atstringPublish date (ISO + Unix)channel_idstringOwning channel UC… IDchannel_namestringChannel display namekeywordsarrayVideo tags / keywordschaptersarrayChapter markers with timestampsheatmaparrayMost-replayed intensity graphthumbnailsarrayThumbnail variants (url, w, h)channel_idstringCanonical UC… channel IDtitlestringChannel namechannel_usernamestring@handlenumber_of_subscribersintegerSubscriber countchannel_total_videosintegerTotal uploaded videoschannel_total_viewsintegerLifetime channel viewsdescriptionstringChannel descriptionjoined_datestringAccount creation datecountrystringChannel countryis_verifiedbooleanVerified badgeavatarstringChannel avatar URLbannerstringChannel banner URLexternal_linksarrayAbout-page linkslatest_videosarrayFirst page of uploadsNo proxy setup. No Data API key. No anti-bot configuration.
Call any YouTube endpoint with your API key and parameters — query, video ID, channel handle, playlist ID, or region (gl/hl). REST or SDK.
ScrapeBadger calls YouTube’s InnerTube JSON endpoints through a residential proxy with Chrome impersonation, picks the right client per endpoint, and detects blocks automatically.
Receive normalized JSON with typed fields, thumbnail variants, and dual-format timestamps — ready to store, analyse, or pipe into your application.
Scraping YouTube gives you real-time signals — trending videos and Shorts, channel growth, comment sentiment, and full transcripts for AI.
Pull trending feeds, hashtag feeds, and Shorts shelves by region to spot rising videos, sounds, and topics before they peak — across any country.
Track subscriber counts, view totals, upload cadence, and engagement across channels. Build creator dashboards and influencer-discovery tools on real data.
Export timed transcripts and captions in any available language to power summarization, semantic search, subtitling, and RAG pipelines.
Collect full comment threads with replies, sorted by top or newest, to analyze audience sentiment, feedback, and brand mentions at scale.
Collect structured video, channel, and transcript data — titles, descriptions, tags, chapters, and captions — for training recommendation and classification models.
Compare trending and search results across regions with gl (content region) and hl (UI language) to understand how content travels between markets.
You only pay for successful responses — failed requests are always free. PAYG credits never expire; volume subscription tiers reduce per-credit cost further.
| Endpoint | Credits / request | PAYG | Subscription |
|---|---|---|---|
Search /search | 5 credits | — | — |
Autocomplete /autocomplete | 1 credit | — | — |
Video Detail /videos/{video_id} | 10 credits | — | — |
Related Videos /videos/{video_id}/related | 5 credits | — | — |
Comments /videos/{video_id}/comments | 5 credits | — | — |
Comment Replies /videos/{video_id}/comments/{comment_id}/replies | 5 credits | — | — |
Transcript /videos/{video_id}/transcript | 5 credits | — | — |
Captions /videos/{video_id}/captions | 2 credits | — | — |
Streams /videos/{video_id}/streams | 15 credits | — | — |
Batch Videos /videos/batch | 10 credits | — | — |
Channel Detail /channels/{channel_id} | 5 credits | — | — |
Channel Videos /channels/{channel_id}/videos | 5 credits | — | — |
Channel Shorts /channels/{channel_id}/shorts | 5 credits | — | — |
Channel Streams /channels/{channel_id}/streams | 5 credits | — | — |
Channel Playlists /channels/{channel_id}/playlists | 5 credits | — | — |
Channel Community /channels/{channel_id}/community | 5 credits | — | — |
Channel About /channels/{channel_id}/about | 2 credits | — | — |
Subscriber Count /channels/{channel_id}/subscriber_count | 2 credits | — | — |
Channel Search /channels/{channel_id}/search | 5 credits | — | — |
Resolve Channel /channels/resolve | 2 credits | — | — |
Playlist Detail /playlists/{playlist_id} | 5 credits | — | — |
Playlist Items /playlists/{playlist_id}/items | 5 credits | — | — |
Mix Detail /mixes/{mix_id} | 5 credits | — | — |
Trending /trending | 5 credits | — | — |
Trending Shorts /trending/shorts | 5 credits | — | — |
Hashtag Feed /hashtags/{tag} | 5 credits | — | — |
Home Feed /home | 5 credits | — | — |
Shorts Detail /shorts/{video_id} | 5 credits | — | — |
Shorts by Sound /shorts/by_sound/{sound_id} | 5 credits | — | — |
Community Post /posts/{post_id} | 5 credits | — | — |
Post Comments /posts/{post_id}/comments | 5 credits | — | — |
Music Search /music/search | 5 credits | — | — |
oEmbed /oembed | 1 credit | — | — |
Categories /categories | Free | — | — |
Languages /languages | Free | — | — |
Regions /regions | Free | — | — |
Markets /markets | Free | — | — |
See the full plan comparison on the pricing page — subscription tiers step down per-credit cost beyond the cheapest column shown above.
ScrapeBadger's YouTube Scraper API handles everything YouTube throws at automated requests — so your pipeline keeps running.
We read YouTube’s own InnerTube JSON endpoints — no official Data API v3 key, no OAuth, and no daily quota units to ration. Just call the endpoint and get data.
YouTube fingerprints traffic and increasingly gates requests behind bot checks. ScrapeBadger handles Chrome impersonation, residential proxies, and block detection automatically — no CAPTCHA solving on your end.
Responses are normalized typed JSON — no HTML to parse, no fragile selectors that break when YouTube ships a frontend change. Datetimes ship as both Unix and ISO-8601.
A dedicated transcript endpoint returns timed segments with language and translation options — the data summarization, subtitling, and AI pipelines depend on.
Credits are only deducted for successful responses. If YouTube returns an error or the request times out, no credits are consumed. You only pay for data you actually receive.
Official typed SDKs for Python and Node.js/TypeScript. Or use the REST API directly with any language. Full documentation with working code examples for every endpoint.
Get started in minutes with Python, Node.js, or plain HTTP requests.
The scrapebadger Python library wraps the YouTube API with typed methods. Install with pip install scrapebadger, then start scraping YouTube in a few lines of code.
from scrapebadger import ScrapeBadger
client = ScrapeBadger("sb_live_...")
# Search videos, US region
results = client.youtube.search(
query="lo-fi beats",
gl="US",
)
# Get full details for the first result
for video in results.results[:3]:
detail = client.youtube.video(
video_id=video.video_id,
)
print(detail.title, detail.view_count)import ScrapeBadger from 'scrapebadger'
const client = new ScrapeBadger({
apiKey: 'sb_live_...'
})
// Get the timed transcript for a video
const transcript = await client.youtube.transcript({
videoId: 'dQw4w9WgXcQ',
})
for (const segment of transcript.segments) {
console.log(segment.start, segment.text)
}Common questions about scraping YouTube with the API — Python, Node.js, or REST.
Search returns videos, channels, and playlists with views, duration, channel, and thumbnails. Video detail returns the full merged player + next response — views, likes, comment count, description, keywords, chapters, heatmap, and channel info. Dedicated endpoints cover comments and replies, transcripts and captions, streaming data, related videos, channel sub-surfaces (videos, shorts, streams, playlists, community, about, subscriber count), playlists and mixes, trending and hashtag feeds, Shorts and shorts-by-sound, community posts, and YouTube Music search.
No. The ScrapeBadger YouTube API reads YouTube’s unauthenticated InnerTube JSON endpoints directly — there is no official Data API v3 key, no OAuth flow, and no quota units to manage. You also get data the Data API never exposes, such as transcripts, heatmaps, related videos, and live subscriber counts.
Yes. The /videos/{id}/transcript endpoint returns timed transcript segments with optional language and translation (tlang) parameters, and /videos/{id}/captions lists every available caption track and translation language. Transcripts are priced at just 5 credits — a deliberate undercut, since fetching them through InnerTube is cheap.
Every list endpoint accepts gl (content region, e.g. US, GB, DE) and hl (UI language, e.g. en, es, de). Combine them to get region-correct search, trending, and home feeds. The /regions, /languages, and /markets reference endpoints list every supported value and are free to call.
YouTube fingerprints TLS/HTTP traffic and increasingly gates InnerTube and streaming requests behind bot checks and PO-token requirements. ScrapeBadger uses Chrome impersonation over residential proxies, detects blocks, and selects the right InnerTube client per endpoint automatically. You never configure proxies, manage fingerprints, or solve CAPTCHAs.
Install with `pip install scrapebadger`, then initialise the client and call client.youtube.search(query="lo-fi beats"), client.youtube.video(video_id="dQw4w9WgXcQ"), client.youtube.transcript(video_id="dQw4w9WgXcQ"), or client.youtube.channel(channel_id="@mkbhd"). The SDK returns typed objects and exposes continuation tokens for paging through every list endpoint.
Per-request credit costs are listed above. For higher monthly volume, subscription tiers reduce the per-credit rate substantially. All YouTube endpoints — search, videos, channels, transcripts, comments, trending, and Shorts — included on every plan.
1,000 free credits. No credit card. Get your API key in under a minute.
PAYG credits never expire · Pay only for successful requests · No Data API key