YouTube Scraper: Videos, Channels, Shorts & Comments
Pricing
from $1.00 / 1,000 videos
YouTube Scraper: Videos, Channels, Shorts & Comments
Scrape YouTube videos, Shorts, channels, playlists and comments by search, channel, playlist or video link. Views, likes, tags, publish dates, exact limits, pay per row. No login, no API key.
Pricing
from $1.00 / 1,000 videos
Rating
0.0
(0)
Developer
API Samurai
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Get YouTube videos, Shorts, live streams and comments as clean rows: from search results, channel tabs, playlists or single video links. Every video row has the title, channel, subscribers, views, duration, publish date, Short and live flags, description, hashtags and thumbnail. Turn on details for exact likes, comment count, tags, category, full description and the exact publish time. Turn on comments for comment text, author, likes, replies, pinned and hearted flags.
No login, no YouTube API key and no third-party services: the Actor reads YouTube's own web API the way a logged-out visitor's browser does.
Use cases
- Content research: what ranks for a keyword, sorted by date or views, filtered by upload date and length.
- Competitor and creator tracking: the latest videos, Shorts or streams of any channel, with a "published after" cutoff for scheduled runs.
- Influencer discovery: channels and subscriber counts behind the videos that rank for your niche.
- Audience and sentiment analysis: top or newest comments with replies, likes and creator hearts.
- Datasets for AI and analytics: stable field names, numbers as numbers, dates as ISO strings, unknown values as
null.
Fair billing
- You pay only for real rows in your dataset: one event per video, one per comment, one extra per video whose details loaded.
- Limits are exact. Ask for 10 videos per source and you get 10, never 20 because a page had 20.
- Duplicates are free and left out: a video found by two sources is saved and charged once per run, same for comments.
- No start fee. A run that finds nothing costs nothing.
- If details fail to load for a video, you still get the row and the details event is not charged.
- When your run reaches the maximum cost you set, it stops cleanly and keeps what it saved.
Input
| Field | What it does | Default |
|---|---|---|
searchQueries | Search terms, one per line. Each is its own source. | |
searchType | videos, shorts, channels or playlists. Channels and playlists are opened in search order and their videos are saved. | videos |
uploadDate | any, hour, today, week, month, year | any |
sortBy | relevance, date, views, rating | relevance |
duration | any, short (under 4 min), medium (4 to 20 min), long (over 20 min) | any |
channels | Handles (@mkbhd), channel links or IDs (UC...) | |
channelTabs | videos, shorts, streams. Each channel tab is its own source. | videos |
playlists | Playlist links or IDs | |
videoUrls | Watch, youtu.be or Shorts links, or video IDs | |
maxResultsPerSource | Exact number of videos per search term, channel tab or playlist | 50 |
publishedAfter | Channel tabs: stop at videos older than this date (2026-01-31) or age (7 days) | |
includeDetails | Open each video for exact likes, comment count, tags, category, full description, exact publish time | false |
includeComments | Save comments as rows with type: "comment" | false |
maxCommentsPerVideo | Exact number of comment rows per video, replies included | 100 |
commentsSort | top or newest | top |
includeReplies | Also save replies, right after their comment | false |
proxyConfiguration | Apify Proxy by default; switches to residential by itself if YouTube refuses the IPs | Apify Proxy |
Output
Example from a test run (one video with details and comments, shortened):
{"type": "video","id": "ESABTN4VtrA","url": "https://www.youtube.com/watch?v=ESABTN4VtrA","title": "iPhone Duo Review: First Generation Fun!","channelId": "UCBJycsmduvYEL83R_U4JriQ","channelName": "Marques Brownlee","channelHandle": "@mkbhd","channelUrl": "https://www.youtube.com/@mkbhd","channelSubscribers": 21400000,"viewCount": 12768259,"likeCount": 201158,"commentCount": 15000,"durationSeconds": 1744,"isShort": false,"isLive": false,"publishedAt": "2026-10-21T12:00:52.000Z","publishedAtIsApproximate": false,"description": "What it's actually like to use the first folding iPhone - Duo ...","tags": ["iPhone Duo", "iPhone duo review"],"category": "Science & Technology","hashtags": [],"thumbnailUrl": "https://i.ytimg.com/vi/ESABTN4VtrA/maxresdefault.jpg","source": "video","input": "https://www.youtube.com/watch?v=ESABTN4VtrA","scrapedAt": "2026-10-28T06:13:20.430Z"}
{"type": "comment","id": "UgxT_OQYl-63j1AxErV4AaABAg","videoId": "ESABTN4VtrA","videoUrl": "https://www.youtube.com/watch?v=ESABTN4VtrA","text": "I work in an apple store. ...","author": "@thathandheldguy","authorChannelId": "UCsA3bY1G_77C_XToiBAC7-g","likeCount": 36000,"replyCount": 736,"isReply": false,"parentId": null,"publishedAt": "2026-10-22T00:00:00.000Z","publishedAtIsApproximate": true,"isPinned": false,"isHearted": false,"scrapedAt": "2026-10-28T06:13:20.757Z"}
Without details, list pages show rounded numbers ("12M views") and ages ("6 days ago"). The Actor turns ages into a date and sets publishedAtIsApproximate: true. Comment likes and the video comment count are rounded by YouTube too ("36K", "15K"). likeCount, commentCount, tags and category are null unless details are on.
The SUMMARY record in the key-value store lists every source with its delivered videos, comments and the reason it stopped (limit reached, no more results, reached publishedAfter, three empty pages, repeated continuation token, cost limit reached, or the error).
Pricing
$1 per 1,000 videos; $1 per 1,000 videos with details turned on (on top of the video price); $0.50 per 1,000 comments. Same price on every Apify plan. No start fee: a run that finds nothing costs nothing. Set a maximum cost per run and the Actor stops cleanly when it is reached.
FAQ
Do I need a YouTube API key or account? No. The Actor uses YouTube's public web API as a logged-out visitor. There is no Google quota to manage.
How do the limits work?
maxResultsPerSource counts saved videos per search term, channel tab or playlist, and the last page is trimmed to it. maxCommentsPerVideo counts comment rows per video, replies included. There are no hidden caps on top of your limits.
Why did I get fewer results than my limit?
The source ran out: the search, channel tab or playlist had no more videos, the publishedAfter date was reached, or the videos were already saved by another source in the same run (duplicates are left out). The SUMMARY record shows the stop reason per source. Removed or private videos are skipped and not charged.
Can I run it on a schedule?
Yes. Create a task with your channels and publishedAfter set to a relative age such as 7 days, then schedule it weekly in Apify Console. Each run only pages until it reaches older videos.
Is scraping YouTube legal? The Actor collects only public data that any logged-out visitor can see. How you store and use it, especially personal data such as commenter names, is your responsibility under laws like the GDPR and YouTube's terms. This is not legal advice; ask a lawyer for your case.
What happens if YouTube blocks the proxy? Requests are retried with backoff on network errors and server errors. If YouTube answers with rate limits, a consent or bot check page, or empty data twice, the run moves to residential proxies by itself. One failing source never stops the others, and the run fails only if every source failed.
Integrations
- Apify API: start runs and read the dataset over HTTP, in JSON, CSV or Excel.
- Python and JavaScript clients:
apify-clientfor Python and Node.js. - Make, Zapier and n8n: run the Actor and pass rows to Google Sheets, Airtable, Slack or your CRM.
- MCP: use the Actor from AI agents through the Apify MCP server.
- Webhooks: get notified when a run finishes.