Ultimate YouTube Scraper — Videos, Transcripts & Comments avatar

Ultimate YouTube Scraper — Videos, Transcripts & Comments

Pricing

from $2.00 / 1,000 video results

Go to Apify Store
Ultimate YouTube Scraper — Videos, Transcripts & Comments

Ultimate YouTube Scraper — Videos, Transcripts & Comments

Scrape YouTube without an API key or limits. Extract video details, channel data, search results, Shorts, comments & replies, transcripts/subtitles and playlists — all in one actor. Auto-extracts emails & social links from channels. Export to JSON, CSV & Excel. Fast, bulk, no quotas.

Pricing

from $2.00 / 1,000 video results

Rating

5.0

(1)

Developer

Raven

Raven

Maintained by Community

Actor stats

0

Bookmarked

18

Total users

14

Monthly active users

10 days ago

Last modified

Share

YouTube Scraper — Videos, Channels, Comments, Transcripts, Shorts & Playlists (no API key)

The all-in-one YouTube scraper and unofficial YouTube Data API — with no quotas, no OAuth and no daily limits. Extract video details, channel profiles, keyword search results, Shorts, comments & replies, transcripts/subtitles and playlists from a single actor. No login, no API key, no code and no proxies to configure — just pick a Search Type, paste your URLs or keywords, and download clean structured data as JSON, CSV, Excel, XML or HTML.

Pay only for the results you get: videos, channels, Shorts and playlists start at $5 per 1,000 on the free plan and drop to $2 per 1,000 on paid plans, comments from $0.90 per 1,000, and transcripts from $9 per 1,000. Empty and failed results are never charged.

This one actor replaces an entire toolbox of separate tools — a YouTube video scraper, channel scraper, comments scraper, transcript/subtitle scraper, Shorts scraper, search scraper and playlist scraper — combined into a single, reliable extractor.


What does this YouTube Scraper do?

Pick a Search Type, fill the matching section, and the actor returns clean records for that mode. It talks to YouTube's internal (InnerTube) endpoints directly, so there are no API quotas to hit — a practical alternative to the official YouTube Data API, whose free tier is capped at 10,000 units/day and requires a Google Cloud project and OAuth.

Search TypeWhat you provideWhat you get
🎥 Video detailsVideo URLsFull metadata per video: title, views, likes, comment count, duration, description, hashtags, tags/keywords, channel, publish date, captions, thumbnails
📺 ChannelChannel URLs or @handlesFull channel profile + its videos, Shorts, live streams and (optionally) playlists, with date filtering and sort options
🔎 SearchKeywordsYouTube keyword search with sort, upload-date, duration, type and feature filters (HD, 4K, CC, Live, 360°, HDR…)
ShortsChannel URLs or @handlesShorts from a channel — title, view count, thumbnail, video ID
💬 CommentsVideo URLsEvery comment and reply with likes, reply count, author, verified badge and channel-owner flag
📝 TranscriptVideo URLsFull timestamped transcript exported as SRT / WebVTT / XML / plain text, in any available language
🎶 PlaylistPlaylist URLsEvery video in a playlist, in order, with position, duration and channel

Automatic contact extraction — when you scrape channels, the actor pulls emails (including obfuscated name (at) domain (dot) com forms) and social links across 15 platforms (Instagram, TikTok, X/Twitter, Facebook, Discord, Telegram, Twitch, LinkedIn, Patreon, GitHub, Reddit, Spotify, Snapchat, WhatsApp, Pinterest) plus the channel's external links (with their real URLs), country, join date and total view count — straight from the channel description and About panel.


Why use this YouTube scraper?

  • 7 scrapers in one — videos, channels, search, Shorts, comments, transcripts and playlists from a single actor and a single input.
  • No API key, no quotas — skip the official YouTube Data API's 10,000-unit/day limit, Google Cloud setup and OAuth entirely.
  • 30+ fields per video and up to 18 fields per channel — far more than a title-and-URL scraper.
  • Comments and replies — with like counts, reply counts, verified badges, channel-owner and creator-heart flags.
  • Full transcripts & subtitles — SRT, WebVTT, XML or plain text, manual or auto-generated, in any available language.
  • Email & social extraction — public emails and 15 social platforms auto-pulled from channel descriptions for lead generation and influencer outreach.
  • Advanced search filters — sort, upload date, duration, result type and feature flags (HD, 4K, CC, Live, 360°, HDR, VR180, Creative Commons…).
  • Pay only per result — empty and failed results are never charged; a global Max items cap keeps every run within budget.
  • Export anywhere — JSON, CSV, Excel, XML, HTML, or via API and no-code integrations (Make, Zapier, n8n, Google Sheets, Slack).

This actor vs. the official API vs. single-purpose scrapers

Official YouTube Data APITypical single-purpose scraperThis YouTube Scraper
API key / OAuth / Google CloudRequiredNot requiredNot required
Daily quota10,000 units/dayUsually noneNone
ScopeOne endpoint at a timeUsually one thing (e.g. only transcripts)Videos, channels, search, Shorts, comments, transcripts & playlists in one
Comments + repliesLimited & quota-heavySometimesYes — with replies, hearts & owner flags
Transcripts / subtitlesNot availableSeparate actorBuilt in — SRT / VTT / XML / text
Email & social extractionNoRarelyYes — emails + 15 social platforms
PricingFree but quota-limitedVariesPay per result; empty results free
Export formatsJSON onlyVariesJSON, CSV, Excel, XML, HTML

Competitor columns are generalized — individual scrapers vary.


What data can you extract?

🎥 Video (30+ fields)

type · id · url · title · description · viewCount · likes · likesText · commentsCount · duration · durationSeconds · publishDate · uploadDate · date · category · channelId · channelName · channelUrl · numberOfSubscribers · keywords (tags) · hashtags · isLive · isLiveNow · isPrivate · isFamilySafe · isUnlisted · allowRatings · thumbnailUrl · availableCaptions · hasCaptions · descriptionContacts (emails/socials found in the description). With Download subtitles on, videos also get subtitles, transcriptText and subtitlesLanguage.

📺 Channel (up to 18 fields)

type · channelId · channelName · channelHandle · channelUrl · channelDescription · numberOfSubscribers · channelTotalVideos · channelTotalViews · channelLocation · channelJoinedDate · isChannelVerified · isFamilySafe · channelKeywords · channelAvatarUrl · channelBannerUrl · channelLinks (external links with real URLs) · channelContacts (emails + socials + other links).

💬 Comment / reply (16 fields)

type (comment or reply) · cid · comment · publishedTimeText · voteCount · voteCountText · replyCount · author · authorChannelId · authorChannelUrl · authorThumbnail · authorIsVerified · authorIsChannelOwner · hasCreatorHeart · replyToCid · videoId.

📝 Transcript (13 fields)

type · videoId · videoUrl · title · channelName · channelId · language · isAutoGenerated · availableCaptions · transcript (array of {start, dur, text}) · transcriptText (full plain text) · subtitlesFormat · subtitles (rendered SRT/VTT/XML/text).

⚡ Short / 🎶 Playlist

Shorts return type · id · url · title · viewCount · thumbnailUrl. Playlist videos return id · url · title · index (position) · duration · durationSeconds · channelName · channelId · channelUrl · thumbnailUrl · playlistId · playlistTitle.


How to scrape YouTube step by step

  1. Choose a Search Type from the dropdown (Video, Channel, Search, Shorts, Comments, Transcript or Playlist).
  2. Fill the matching section:
    • Video / Comments / Transcript → paste video URLs into YouTube URLs.
    • Channel / Shorts → paste channel URLs or @handles.
    • Search → type keywords into Search queries.
    • Playlist → paste playlist URLs.
  3. Set your limits (Max items, Max videos per channel, Max comments, etc.) and click Start.
  4. Download your data from the Output tab as JSON, CSV, Excel, XML or HTML, or fetch it via the Apify API.

💡 Every new Apify account includes $5 in free monthly credits — enough for roughly 1,000 videos, 2,500 comments or 330 transcripts per month at free-plan prices, with no card required.

💡 Tip: enable "Download subtitles with videos" in any video-producing mode (Video / Search / Channel) to attach a transcript to every scraped video automatically.


How do limits work? (Max items vs. per-channel caps)

There are two kinds of limits and they do different things:

SettingScopeWhat it controls
Max items (total output)🌍 GlobalHard cap on the total number of records the run outputs, across every type. The run stops as soon as it's reached. 0 = no global limit.
Max videos / Shorts / streams per channel📺 Per typeHow many of each content type are fetched per channel in Channel/Shorts mode. Set Max videos to 0 for channel info only.

Key behaviors (worth knowing before your first run):

  • Channel mode always emits the channel-info record first, then the videos/Shorts/streams. The channel record doesn't count against the per-type caps, but it does count toward Max items.
  • Example: Max videos per channel = 5, Max items = 06 records (1 channel + 5 videos).
  • Example: Max items = 3, Max videos per channel = 1003 records (1 channel + 2 videos), because the global cap stops the run early.
  • In Search mode, Max items caps total results (defaults to 100 when left at 0).
  • In Playlist mode, Max videos per channel also caps the playlist (default 30) — set it to 0 to pull the entire playlist.
  • In Comments mode, Max comments per video defaults to 100 — set it to 0 for all comments.

How to get a channel's contact emails & socials

Run Channel mode on any channel URL or @handle. The actor reads the channel's description and About panel and returns a channelContacts object with:

  • emails — including obfuscated forms like name (at) gmail (dot) com.
  • socials — grouped by platform across Instagram, TikTok, X/Twitter, Facebook, Discord, Telegram, Twitch, LinkedIn, Patreon, GitHub, Reddit, Spotify, Snapchat, WhatsApp and Pinterest.
  • links — any other external links, with the real destination URL unwrapped from YouTube's redirect.

To collect contacts for many creators at once, paste all their handles into Channel handles and set Max videos / Shorts / streams per channel = 0 so you only pay for the channel profiles.


How to download YouTube transcripts & subtitles

Use Transcript mode (paste video URLs) to get a dedicated transcript record, or toggle Download subtitles with videos in Video/Search/Channel modes to attach a transcript to every video.

  • Formats: SRT, WebVTT, XML or plain text (Subtitle format).
  • Language: set Subtitle language (e.g. en, es, ru) — the closest available caption track is picked.
  • Auto vs. manual: turn on Prefer auto-generated to favor ASR captions; otherwise human/manual captions win.
  • Save files: enable Save subtitle files to key-value store to persist each .srt/.vtt as a downloadable file.

Transcripts are only available for videos that have captions; videos without them return an NO_TRANSCRIPT_AVAILABLE note and are not charged.


Input parameters

FieldKeyTypeDefaultNotes
Search TypesearchTypeselectvideovideo · channel · search · shorts · comments · transcript · playlist
YouTube URLsstartUrlsarray[]Video / channel / playlist / Shorts URLs (per Search Type)
Search queriessearchQueriesarray[]Keywords (Search mode)
Channel handlesyoutubeHandlesarray[]@handles or names (Channel / Shorts)
Max items (total output)maxItemsinteger0Global cap across all types; 0 = no limit
Sort bysortselectrelevancerelevance · date · views · rating (Search)
Upload dateuploadDateselectallall · hour · today · week · month · year (Search)
DurationvideoDurationselectallall · short (<4m) · medium (4–20m) · long (>20m)
Result typevideoTypeselectallall · video · channel · playlist · movie (Search)
Feature filtersfeaturesarray[]hd · 4k · subtitles · cc · live · 3d · 360 · hdr · vr180 · location · purchased · creativeCommons
Max videos per channelmaxResultsinteger300 = channel info only (also caps playlists)
Max Shorts per channelmaxResultsShortsinteger0Channel & Shorts modes
Max live streams per channelmaxResultStreamsinteger0Past/active streams per channel
Include channel playlistsincludePlaylistsbooleanfalseAlso scrape the channel's playlists tab
Oldest post dateoldestPostDatestring""Absolute (2024-01-01) or relative (100 days, 3 weeks)
Max comments per videomaxCommentsinteger1000 = all comments (incl. replies)
Comments sortcommentsSortselecttoptop · newest
Include repliesincludeRepliesbooleantrueFetch replies to top-level comments
Download subtitles with videosdownloadSubtitlesbooleanfalseAttach a transcript to each video
Subtitle languagesubtitlesLanguagestringenCaption language code
Subtitle formatsubtitlesFormatselectsrtsrt · vtt · xml · plaintext
Prefer auto-generatedpreferAutoGeneratedSubtitlesbooleanfalsePrefer ASR captions
Save subtitle files to KVSsaveSubsToKVSbooleanfalsePersist each subtitle file
Country (gl)glstringUSGeo/country code
Language (hl)hlstringenUI/result language code
Proxy configurationproxyConfigurationproxyResidential USResidential recommended
Custom proxy URLcustomProxyUrlstring""Optional; falls back to Apify proxy on failure
Max retriesmaxRetriesinteger5Retries per request on connection errors (1–15)

Ready-to-paste input recipes

1. Every video from a channel

{ "searchType": "channel", "startUrls": ["https://www.youtube.com/@MrBeast"], "maxResults": 100 }

2. Channel profiles + emails only (lead generation)

{
"searchType": "channel",
"youtubeHandles": ["@MrBeast", "@mkbhd", "@veritasium"],
"maxResults": 0,
"maxResultsShorts": 0,
"maxResultStreams": 0
}

3. This week's newest videos for a keyword

{
"searchType": "search",
"searchQueries": ["ai tools"],
"sort": "date",
"uploadDate": "week",
"videoType": "video",
"maxItems": 100
}

4. All comments + replies from a video (sentiment analysis)

{
"searchType": "comments",
"startUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],
"maxComments": 0,
"commentsSort": "top",
"includeReplies": true
}

5. Transcript in Spanish as plain text

{
"searchType": "transcript",
"startUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],
"subtitlesLanguage": "es",
"subtitlesFormat": "plaintext"
}

6. HD + 4K long videos with subtitles

{
"searchType": "search",
"searchQueries": ["nature documentary"],
"features": ["4k", "subtitles"],
"videoDuration": "long",
"maxItems": 50
}

7. Build a video dataset with transcripts attached

{
"searchType": "channel",
"startUrls": ["https://www.youtube.com/@veritasium"],
"maxResults": 25,
"downloadSubtitles": true,
"subtitlesLanguage": "en",
"subtitlesFormat": "srt"
}

Output examples

Video

{
"type": "video",
"id": "dQw4w9WgXcQ",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
"viewCount": 1780016266,
"likes": 19140845,
"commentsCount": 2400000,
"durationSeconds": 213,
"publishDate": "2009-10-25",
"channelName": "Rick Astley",
"channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",
"numberOfSubscribers": 4500000,
"hashtags": ["#RickAstley", "#NeverGonnaGiveYouUp"],
"keywords": ["rick astley", "never gonna give you up"],
"availableCaptions": ["en", "de-DE", "ja", "pt-BR", "es-419"],
"thumbnailUrl": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg"
}

Channel (with extracted contacts)

{
"type": "channel",
"channelName": "Example Creator",
"channelId": "UCqwybFKBA73V31-RhI2Tvlg",
"channelHandle": "@examplecreator",
"numberOfSubscribers": 72000,
"channelTotalVideos": 1477,
"channelTotalViews": 67591140,
"channelLocation": "United States",
"channelJoinedDate": "Joined Nov 22, 2013",
"isChannelVerified": false,
"channelLinks": [
{ "title": "Instagram", "url": "https://instagram.com/examplecreator" },
{ "title": "Business", "url": "https://example.com/contact" }
],
"channelContacts": {
"emails": ["booking@example.com"],
"socials": { "instagram": ["https://instagram.com/examplecreator"] }
}
}

Comment

{
"type": "comment",
"cid": "Ugzge340dBgB75hWBm54AaABAg",
"comment": "can confirm: he never gave us up",
"voteCount": 250000,
"replyCount": 961,
"author": "@YouTube",
"authorIsVerified": true,
"authorIsChannelOwner": false,
"hasCreatorHeart": true,
"videoId": "dQw4w9WgXcQ"
}

Transcript

{
"type": "transcript",
"videoId": "dQw4w9WgXcQ",
"title": "Rick Astley - Never Gonna Give You Up",
"language": "en",
"isAutoGenerated": false,
"transcript": [
{ "start": 18.64, "dur": 3.24, "text": "We're no strangers to love" }
],
"subtitles": "1\n00:00:18,640 --> 00:00:21,880\nWe're no strangers to love\n..."
}

How much does it cost to scrape YouTube?

This actor uses pay-per-event pricing — you're billed per result, and each result type is priced separately. Empty and failed results are never charged, and a global Max items cap lets you control spend per run.

Result typeEventFree planPaid plans (from)
🎥 Video · ⚡ Short · 📡 Live streamvideo / short / stream$5.00 / 1,000$2.00 / 1,000
📺 Channel profilechannel$5.00 / 1,000$2.00 / 1,000
🎶 Playlistplaylist$5.00 / 1,000$2.00 / 1,000
💬 Comment / replycomment$2.00 / 1,000$0.90 / 1,000
📝 Transcripttranscript$15.00 / 1,000$9.00 / 1,000
Actor startapify-actor-start$0.00005 / GB$0.00005 / GB

Paid-plan prices are the lowest tier and scale down automatically as your Apify subscription tier increases.

Worked examples (free-plan prices):

JobResultsCost
Scrape 1,000 videos1,000 videos$5.00
One channel + its 200 latest videos1 channel + 200 videos~$1.01
All comments on a busy video10,000 comments$20.00
Transcribe a course playlist500 transcripts$7.50

Free plan translation: the $5 in monthly Apify credits ≈ 1,000 videos, 2,500 comments or 330 transcripts per month — free, no card required. Pricing is all-inclusive: there are no separate platform-usage or proxy add-ons.


Integrations

Connect this scraper to the rest of your stack — no glue code required:

  • Make, Zapier and n8n — trigger runs and route results into thousands of apps.
  • Google Sheets, Slack and email — push new videos, comments or contacts wherever your team works.
  • Webhooks — fire an event when a run finishes.
  • Apify API & client libraries (JavaScript/TypeScript & Python) — start runs and fetch the dataset programmatically.
  • Schedules — run daily/weekly to keep a dataset fresh.

Datasets export to JSON, CSV, Excel, XML or HTML, with dedicated table views for videos & channels, comments and transcripts.


Use it with AI agents (MCP)

This actor is available through the Apify MCP server, so AI assistants like Claude and ChatGPT (and any MCP-compatible framework such as LangChain or CrewAI) can run it as a tool and read the results directly. A natural-language prompt like:

"Scrape the 50 latest videos from @veritasium, then pull all comments on the most-viewed one and summarize the sentiment."

…becomes a chain of runs your agent can execute and reason over — great for research assistants, monitoring bots and content-analysis pipelines.


  • Creators & marketers — track video performance, analyze competitors, mine tags and hashtags for SEO.
  • Influencer marketing & lead gen — pull creator emails and social links at scale for outreach.
  • Sentiment & audience research — export comments + replies for NLP, moderation and brand monitoring.
  • AI / LLM datasets — build transcript corpora for training, summarization and RAG.
  • Trend discovery — keyword search with upload-date and feature filters to spot what's rising.
  • Media monitoring & academic research — collect structured, reproducible YouTube datasets.

Yes — scraping publicly available YouTube data (video metadata, public channel info, public comments, transcripts) is generally legal. This actor only collects data that is already public and does not log into any account. You are responsible for using the data in line with YouTube's Terms of Service and applicable laws such as GDPR and CCPA — in particular, don't collect or process personal data without a lawful basis.

For a deeper overview, see Apify's guide: Is web scraping legal?


FAQ

Does YouTube have a public API, and why use this scraper instead?

YouTube offers the official YouTube Data API, but it requires a Google Cloud project and OAuth, and its free tier is capped at 10,000 units/day — a single search costs 100 units. This actor has no quotas, no key and no OAuth, and returns transcripts, emails and full comment threads the official API doesn't easily provide.

Do I need an API key or a Google account?

No. There's nothing to set up — pick a Search Type and run.

Do I need proxies to scrape YouTube?

No. Proxy rotation and anti-bot handling are built in (Apify Residential is used by default). You can optionally supply your own proxy via Custom proxy URL; it falls back to the Apify proxy automatically on failure.

Can I scrape YouTube comments and replies?

Yes. Choose Comments mode to get every comment and reply with like counts, reply counts, author handle, verified badge, channel-owner flag and creator-heart flag. Sort by top or newest, and set Max comments per video = 0 for all of them.

Can I download YouTube transcripts and subtitles?

Yes. Transcript mode returns timestamped transcripts as SRT, WebVTT, XML or plain text, in any available language (manual or auto-generated). You can also toggle Download subtitles with videos to attach one to each video record.

Yes. In Channel mode the actor auto-extracts public emails (including obfuscated ones) and links across 15 social platforms into channelContacts, plus the channel's external links into channelLinks — when the creator has shared them publicly.

Can I export to CSV, Excel or Google Sheets?

Yes. Every dataset exports to JSON, CSV, Excel, XML or HTML from the Output tab, via the API, or straight into Google Sheets through the Make/Zapier integrations.

Will I be charged for URLs that return nothing?

No. Empty results, unavailable videos and failed items are not charged — you only pay for records actually returned.

Why did I get fewer results than expected?

Check your caps: Max comments per video defaults to 100, Max videos per channel defaults to 30 (which also caps playlists), and a non-zero Max items stops the whole run early. Set the relevant limit to 0 to remove the cap.

Why are some fields empty (null)?

YouTube doesn't expose every field for every item — e.g. hidden like counts, channels with no About links, or videos without captions. Fields that aren't available are simply omitted from the record.

A run returned zero results — what happened?

Usually the input didn't match the Search Type (e.g. a channel URL pasted while in Video mode), the video/channel is private or region-blocked, or the video has no comments/transcript. Confirm the Search Type matches your URLs and try a different Country (gl).

How many videos, channels or comments can I scrape?

There's no hard cap — pagination is automatic. Use Max items and the per-type caps to control volume and spend.

Can I scrape by @handle instead of a URL?

Yes — for Channel and Shorts modes you can paste @handles (or channel names) into Channel handles.

Can I filter search results by date, duration or quality?

Yes — Search mode supports Sort by, Upload date, Duration, Result type and Feature filters (HD, 4K, CC, Live, 360°, HDR, VR180, Creative Commons and more).

Can I localize results to a country or language?

Yes — set Country (gl) and Language (hl) (e.g. gb/en, de/de) to localize search results and titles.


Feedback & support

Found a bug or want a new feature? Open an issue on the actor's Issues tab — include your input configuration and, if possible, the run ID or a shared run link so we can reproduce it quickly. Feature requests are welcome.


More scrapers by this developer


Tags: youtube scraper, youtube data api, youtube api without key, youtube video scraper, youtube channel scraper, youtube comments scraper, youtube transcript scraper, youtube subtitles scraper, youtube shorts scraper, youtube playlist scraper, youtube search scraper, youtube keyword scraper, scrape youtube videos, scrape youtube comments, download youtube transcript, youtube captions, srt vtt subtitles, youtube channel data, youtube subscriber count, youtube views scraper, youtube metadata, youtube hashtags, youtube tags extractor, youtube email extractor, youtube contact scraper, youtube social media links, influencer marketing, lead generation, content research, competitor analysis, seo tools, keyword research, sentiment analysis, video data, bulk youtube scraper, no quota youtube, youtube crawler, json csv excel export, make zapier n8n integration, ai training dataset, media monitoring, youtube analytics