YouTube Scraper · Transcripts & Comments · $0.5/1k avatar

YouTube Scraper · Transcripts & Comments · $0.5/1k

Pricing

from $0.35 / 1,000 rows

Go to Apify Store
YouTube Scraper · Transcripts & Comments · $0.5/1k

YouTube Scraper · Transcripts & Comments · $0.5/1k

Pricing

from $0.35 / 1,000 rows

Rating

0.0

(0)

Developer

Alfalfa

Alfalfa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

YouTube Scraper: videos, transcripts and comments without an API key

Get YouTube data as a table: the videos of a search, a channel, a playlist or a list of video URLs, each with title, views, likes, publish date, duration, description, tags, channel and subscriber count. Add the transcript (subtitles as timed segments and plain text) and the comments when you need them. No YouTube account, no Data API key, no quota. Export to Excel, CSV or JSON, or read it through the API.

$0.50 per 1,000 rows (videos or comments), transcripts $1 per 1,000 videos, no start fee, platform usage and proxies included.

What you get

One row per video:

FieldExample
id, url, titledQw4w9WgXcQ, https://www.youtube.com/watch?v=dQw4w9WgXcQ, Rick Astley - Never Gonna Give You Up
channelName, channelId, channelUrl, subscriberCountRick Astley, UCuAXFkgsw1L7xaCfnd5JJOw, …, 4540000
publishedAt, publishedText2009-10-24T23:57:33-07:00, 16 years ago
category, isUnlistedMusic, false
durationText, durationSeconds3:33, 213
viewCount, likeCount, commentCount1814324479, 19382909, 2400000
description, keywordsfull description, video tags
thumbnailUrl, isShort, isLive, isLiveContent, ageRestrictedisLive = live right now, isLiveContent = a stream, current or past
transcript, transcriptText, transcriptLanguage[{start: 18.64, duration: 3.24, text: "We're no strangers to love"}, …], the whole text, en English
searchQuery, inputUrlwhere the video came from

With Max comments per video above 0, comments come as extra rows with type = comment: id, text, author, authorChannelId, authorUrl, authorAvatar, publishedText, likeCount, replyCount, isVerified, isCreator, plus videoId, videoUrl and videoTitle of the video they belong to. Top comments or newest first. Max replies per comment adds the replies as rows too, right after their comment, with parentId and replyLevel = 1.

With Include channel records on, every channel gets one row with type = channel: id, handle, name, description, country, joinedAt, viewCount (all-time), videoCount, subscriberCount, links (Twitter, Instagram, website … as {title, url}), avatar, channelKeywords. Channel URLs get their own channel; searches and playlists get every channel that appears, once per run.

Likes, exact publish date and time, category, full description and tags need Include video details (on by default, one small request per video). Subscriber and comment counts need Include subscriber and comment counts (one larger request per video) and come automatically with comments; channel sources carry the subscriber count anyway. With details off you get the listing fields only (title, channel, views, relative date, duration), about twice as fast.

Sources

  • Search queries: one per line. Filter by upload date (last hour to this year) and order by relevance, upload date, views or rating.
  • Channel URLs: youtube.com/@handle, /channel/UC…, /c/name, /user/name. Add /videos, /shorts or /streams to pick the tab, or set Channel content. Newest first, as on the channel page.
  • Playlist URLs: youtube.com/playlist?list=…. A channel's uploads playlist (UU + channel ID) works too.
  • Video URLs: youtube.com/watch?v=…, youtu.be/…, /shorts/…, /live/….
  • Search result URLs copied from the browser.

Max videos per source caps each search, channel or playlist. A search page holds about 20 videos; channels and playlists page 30 at a time and can go into the thousands.

Use cases

  • Research and monitoring: every new video on a topic this week, with views and likes, into a sheet; a competitor's channel, every Monday.
  • Transcripts for AI: full subtitles of a channel or a search as plain text for summaries, RAG, translation or content repurposing. One run, one JSON.
  • Comment analysis: the top or newest comments of a launch video, an ad or a podcast episode, with likes and authors, for sentiment and feedback mining.
  • Lead generation and outreach: channels talking about your niche, their size, and the authors of the most liked comments.
  • Content planning: the most viewed videos for a keyword in the last month, their length, tags and titles.

Examples

Fifty most viewed Python tutorials of this month with transcripts:

{ "searchQueries": ["python tutorial"], "sortBy": "views", "uploadDate": "month", "maxVideos": 50, "transcript": true }

Latest 200 videos of a channel, listing fields only (fast):

{ "startUrls": [{ "url": "https://www.youtube.com/@mkbhd/videos" }], "maxVideos": 200, "scrapeDetails": false }

The newest 500 comments of one video, with up to 5 replies each:

{ "startUrls": [{ "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" }], "maxComments": 500, "maxReplies": 5, "commentsSort": "newest" }

Channel record plus the latest 50 videos of three channels:

{ "startUrls": [{ "url": "https://www.youtube.com/@mkbhd" }, { "url": "https://www.youtube.com/@NASA" }, { "url": "https://www.youtube.com/@veritasium" }], "maxVideos": 50, "channelDetails": true }

Output row (video, shortened):

{
"type": "video",
"id": "dQw4w9WgXcQ",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
"channelName": "Rick Astley",
"channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",
"subscriberCount": 4540000,
"publishedAt": "2009-10-24T23:57:33-07:00",
"category": "Music",
"publishedText": "16 years ago",
"durationText": "3:33",
"durationSeconds": 213,
"viewCount": 1814324479,
"likeCount": 19382909,
"commentCount": 2400000,
"keywords": ["rick astley", "Never Gonna Give You Up", "nggyu"],
"transcriptLanguage": "en English",
"transcriptText": "We're no strangers to love. You know the rules and so do I …"
}

Use it from code, n8n, Make, Zapier or an AI agent

  • API: POST https://api.apify.com/v2/acts/alfalfa~youtube-scraper/run-sync-get-dataset-items?token=… with the JSON input above returns the rows directly (runs up to 5 minutes). Longer jobs: start the run, poll, read the dataset. Any Apify client library works.
  • n8n, Make, Zapier: add the Apify node, pick alfalfa/youtube-scraper, paste the same JSON input and read the run's dataset in the next step. See the Apify integrations docs.
  • AI agents and MCP (Claude, Cursor, VS Code, ChatGPT): connect the Apify MCP server with this Actor as a tool, https://mcp.apify.com/?tools=alfalfa/youtube-scraper, and the agent can pull videos, transcripts and comments by describing what it wants. See Apify MCP docs.

Pricing

EventPrice
Video row$0.50 per 1,000 ($0.45 / $0.40 / $0.35 on Starter / Scale / Business plans)
Comment or reply rowsame as a video row
Transcript$1.00 per 1,000 videos with a transcript, nothing for videos without captions
Channel record$1.50 per 1,000 channels on top of the row, i.e. $2 per 1,000 channels in total on the free plan
Start fee, platform usage, proxiesnone, included

A run's Maximum total charge is honoured: the Actor stops before the budget, so the bill never exceeds it.

Limits and honesty

  • Public videos only. Private, deleted and members-only videos are reported as unavailable, not charged. Age-restricted videos return the listing fields and the details with ageRestricted: true; their comments and transcripts are not readable without a login.
  • YouTube shows rounded counts in some places (21.2M subscribers, 2.4M comments); the rounded value is what you get. Views and likes are exact.
  • Transcripts exist only where the uploader or YouTube's auto-captioning provided them. Live streams have none while live.
  • Search returns what YouTube's search shows a visitor in the US with English settings: about 20 videos per page and rarely more than 500-600 results per query. Split by upload date for more.
  • Comment replies come with Max replies per comment; they count towards the per-video comment limit.

FAQ

Do I need a YouTube API key? No. The Data API's free quota is 10,000 units a day (a few hundred searches); this Actor has no quota and no key.

Does it work for Shorts? Yes: Shorts URLs, a channel's Shorts tab, and Shorts in search results. isShort marks them.

Can I get subtitles in another language? Set Transcript language to a language code. Manual captions in that language are preferred, then auto-generated ones in it, then a manual track in any language, then the first track available. transcriptLanguage records what was used.

Is this legal? The Actor reads public pages the way a visitor without an account does and stores nothing but the results in your dataset. Respect YouTube's terms and copyright when you reuse the content, and personal data laws for comment authors.

How fast is it? About 100 videos with details in 20-30 seconds; listing only, several hundred a minute. Comments add one request per 20 comments, a transcript two requests per video.

ActorWhat it doesPrice
LinkedIn Jobs Scraperpublic LinkedIn job postings by keyword, location, date, company or URL, with full description, salary, applicants, seniority and poster$0.50 per 1,000 jobs
Facebook Ads Library Scraperads from the Meta Ad Library by keyword, advertiser page or URL, with creatives, dates, platforms and EU reach$0.50 per 1,000 ads
Facebook Posts Scraperposts of any public page or profile with reactions, comment counts, media, optional video transcripts$2 per 1,000 posts
Facebook Comments Scrapercomments and replies of any public post$0.50 per 1,000 comments
Facebook Pages Scraperpage details with email, phone, address, followers, rating, About textfrom $3.50 per 1,000 pages
Facebook Events Scraperevents by search, page or URL with dates, venue, tickets and organizer email$5 per 1,000 events

Not affiliated with, endorsed by or connected to YouTube, Google LLC or Apify.