YouTube Scraper AIO | Videos, Shorts, Comments, Views/Hour
Pricing
from $0.70 / 1,000 videos
YouTube Scraper AIO | Videos, Shorts, Comments, Views/Hour
YouTube scraper AIO: channel videos, YouTube Shorts, live, playlists & search with YouTube filters, plus comments. One call per video URL from n8n, Make, Zapier, API or AI agents (MCP). Views, views/hour, outlier score, likes, Most Replayed. Transcripts from Dec. No API key. $1 per 1,000 videos.
Pricing
from $0.70 / 1,000 videos
Rating
0.0
(0)
Developer
Mr Zack
Maintained by CommunityActor stats
0
Bookmarked
36
Total users
21
Monthly active users
6 hours ago
Last modified
Categories
Share
YouTube Scraper AIO — Videos, Shorts, Comments, Channels
One Actor for YouTube data. Give it video URLs, channels (@handles), playlists or search keywords and get clean JSON rows back:
Row type | What you get | Price |
|---|---|---|
video | title, views, likes, comment count, exact publish date, duration, description and its links, hashtags, chapters, "Most replayed" moments, channel + subscribers, views per hour and an outlier score (views ÷ the channel's usual) | $0.001 (card) · $0.002 (details) |
transcript | the spoken text of the video: full text, timestamped segments, language, auto-generated or not | $0.006 — coming early December 2026 |
comment | top or newest comments: text, author, likes, replies, link | $0.0005 |
channel | channels of a niche from a keyword (subscribers, uploads per week, median views, About links) | $0.002 — live from 5 Nov 2026 |
channel-summary | free profile of every scraped channel: median views per format, upload frequency, age, country, links | free |
Channels cover the Videos, Shorts and Live tabs; searches use YouTube's full filter set (upload date, sort, length, 4K / subtitles / Creative Commons, country). No API key, no quota, no browser. Unavailable videos and videos without captions are never charged.
Use it in your automation (n8n, Make, Zapier, API, AI agents)
One video in, everything about it out — one run, a few seconds:
{ "videoUrls": ["https://www.youtube.com/watch?v=kJQP7kiw5Fk"], "maxCommentsPerVideo": 20 }
You get back one detailed video row (details are always on for video URLs) and up to 20 comment rows, all carrying the same videoId. Filter on type in your workflow. That call costs $0.002 + 20 × $0.0005 = $0.012 plus the $0.001 start. From early December 2026 add "includeTranscript": true and the same run also returns the video's transcript row (+$0.006).
- Any HTTP client:
POST https://api.apify.com/v2/acts/tactful_anvil~youtube-channel-shorts-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>with the input above as the JSON body answers with the rows themselves (Apify API; this endpoint waits up to 300 s — for big channel or search runs start the run asynchronously instead). - n8n, Make, Zapier: use Apify's own integration (n8n, Make, Zapier), action "Run an Actor" →
tactful_anvil/youtube-channel-shorts-scraper, then read the dataset items. - AI agents (Claude, Cursor, ChatGPT…): add Apify's MCP server with this Actor as a tool —
https://mcp.apify.com?tools=tactful_anvil/youtube-channel-shorts-scraper(Apify MCP). - Whole channel or a search instead of one URL:
{ "channels": ["@veritasium"], "contentType": "videos", "maxVideos": 20, "includeDetails": true }— exact details of the latest 20 videos (from December,"includeTranscript": trueadds each one's transcript).
Transcripts: human captions are preferred over auto-generated ones; set transcriptLanguages (e.g. ["es", "en"]) for other languages — a video without them returns its own language. Transcripts in this Actor are coming in early December 2026, when their price can go live; until then the option is switched off (runs still deliver your videos, without transcripts and without charging for them). Need transcripts today? Our YouTube Transcript Scraper has them now at the same $0.006 per transcript.
Who uses this
- Automation & AI builders — feed a video URL, get its details and comments in one call (recipe above) — and from early December 2026 its transcript too, to summarise, translate, search or repurpose in the next step.
- Clippers & short-form editors — rank a brand's recent videos by
viewsPerHour, then open themostReplayedlinks to land on the moments viewers rewatch (recipes below). - Creators & channel managers — find competitors' outliers: every channel row has
outlierScore(views ÷ that channel's median for the same format) and the free summary liststopOutliers. - Niche & topic researchers — search a topic with
"sortResultsBy": "outlierScore": every result is scored against its own channel, so a 10,000-subscriber channel whose video got 50× its usual views comes first (recipe below). - Agencies monitoring channels — schedule
onlyNewruns; each run returns only the uploads since the last one, already ranked if you setsortResultsBy. - Influencer outreach & lead lists —
"searchType": "channels"withminSubscribers/maxSubscriberslists the channels of a niche (e.g. 10K–200K subscribers) with how often they upload, how many views they really get and the links in their About panel (recipe below). - Sponsors & influencer marketers — vet a channel before a deal from one free summary row: subscribers, median views for long videos vs Shorts, videos and Shorts per week, days since the last upload, channel age, country, and the links in its About panel.
- Brand & product researchers — pull the newest comments (
commentsSort: "newest"), each with a directcommentUrl; detailed rows list the links in each description (descriptionLinks— sponsors, affiliate links, socials). - Stream clippers —
contentType: "live"lists a channel's past streams with views and length, what is live now (with viewers) and what is scheduled. - Data teams — export everything;
publishedAtEstimatedtells you which dates are exact and which come from "3 weeks ago".
For clippers (Whop Content Rewards and other clipping campaigns)
Campaigns pay per view of clips cut from a brand's own videos. Two recipes that turn this Actor into a "what do I clip first" list:
Recipe 1 — the brand's fastest-growing videos of the last 30 days, with the moments to cut.
{ "channels": ["@BOXABL"], "contentType": "videos", "oldestPostDate": "30 days", "sortResultsBy": "viewsPerHour", "maxVideos": 10, "includeDetails": true }
Row 1 (rank: 1) is the video gaining views fastest. With details, mostReplayed gives up to three segments viewers rewatch (startSec–endSec, with a &t= link that opens the video right there) and chapters gives the creator's (or YouTube's automatic) chapter list. YouTube only shows the "Most replayed" graph on videos with enough views, so the list can be empty; the opening seconds are never reported (every viewer starts at 0:00). If the campaign hands out a playlist of approved videos, put it in playlistUrls instead of channels.
Recipe 2 — Shorts about the brand from this week, ranked by what is working right now.
{ "searchQueries": ["boxabl"], "contentType": "shorts", "uploadedWithin": "week", "sortResultsBy": "viewsPerHour", "maxVideos": 20 }
These are other people's Shorts about the same brand: the titles show which hooks get views, channelName and channelSubscribers show who is posting them. Use "sortResultsBy": "views" for the biggest ones of the week instead.
Recipe 3 — long podcasts and streams to clip from.
{ "channels": ["@lexfridman"], "minDurationSec": 3600, "oldestPostDate": "90 days", "sortResultsBy": "viewsPerHour", "maxVideos": 5, "includeDetails": true }
Only videos of an hour or more (the Shorts tab is skipped automatically), fastest-growing first, each with its mostReplayed segments. Add "includeHeatmap": true for YouTube's whole "Most replayed" graph (about 100 points per video).
Schedule recipe 1 daily with "onlyNew": true to get only the brand's new uploads. Looking for campaigns to join? See our Whop Content Rewards Scraper. Need the words spoken in a video? Add "includeTranscript": true (from early December 2026) — or use our YouTube Transcript Scraper today.
Find breakout videos in a niche (outliers across channels)
{ "searchQueries": ["home espresso"], "contentType": "videos", "videoLength": "medium", "sortResultsBy": "outlierScore", "maxVideos": 15 }
Each search result is compared with its own channel: the Actor reads the first page of that channel's videos (or Shorts) tab, for free, and sets outlierScore = views ÷ that channel's median (channelMedianViews), plus channelSubscribers. In a real run on 21 Oct 2026 the top row was an 11,400-subscriber channel whose video had 1.07 M views against a usual 1,250 (score 858). Set "searchOutliers": true to get the scores but keep YouTube's order. One extra free request per channel (up to 100 channels per run); nothing extra is charged. The Console view Niche outliers shows these columns.
Find channels in a niche (channel search)
{ "searchQueries": ["home espresso"], "searchType": "channels", "maxChannels": 50, "minSubscribers": 10000, "maxSubscribers": 200000 }
Uses YouTube's own Channel search filter and returns one row per unique channel: name, handle, channelId, url, subscriberCount, verified, description, avatar — and, free, from the channel's first Videos (and Shorts) page and its About panel: videoCount, medianViewsVideos, medianViewsShorts, videosPerWeek, daysSinceLastUpload, lastUploadAt, topVideoTitle / topVideoViews / topVideoUrl, country, joinedDate, channelAgeDays, totalViews, links, hasBusinessEmail (whether a business email is listed — the address itself is behind YouTube's sign-in and is not collected). Rows keep YouTube's relevance order (position). Each delivered channel is one channel event ($0.002); repeats (YouTube repeats channels across result pages and queries), channels outside your subscriber range and — with onlyNew — channels delivered by an earlier run are skipped free. searchCountry works here too. Set "channelDetails": false for the search cards only (faster, same price). The Console view Channels found (channel search) shows these columns. Video filters (uploadedWithin, videoLength, minViews…) do not apply to channel search.
Input
| Field | Description |
|---|---|
channels | Channel URLs, @handles or UC… ids. |
searchQueries | YouTube searches. |
searchType | videos (default — video / Shorts rows, as always) or channels (one row per unique channel, see above). |
maxChannels | Channel search: unique channels per query (default 20, max 500). |
minSubscribers, maxSubscribers | Channel search: free subscriber range, applied before charging. Channels that hide their count are skipped when a limit is set. |
channelDetails | Channel search: free details per channel (default on; 2–3 requests per channel, up to 250 channels per run). |
videoUrls | Video URLs/IDs → details (and comments). |
playlistUrls | Playlist URLs or PL… ids. Each video is a normal Video row with its own channel. YouTube gives our client the first page of a playlist (up to 100 videos). |
contentType | both (default) / videos / shorts / live / all (videos + Shorts + live). For searches, live = streams live right now. |
maxVideos | Per channel tab, per search type and per playlist (max 1000). |
channelSort | latest / popular / oldest — YouTube's own order of each channel tab. |
uploadedWithin, sortBy | Search filters: hour/today/week/month/year × relevance/upload_date/view_count/rating. Every combination is now sent as asked (before 0.1.10, "this year" + upload date and any date + rating silently dropped the date). |
videoLength | any (default) / short (under 4 min) / medium (4–20 min) / long (over 20 min). Searches use YouTube's own length filter; channel tabs and playlists are filtered here, free, before charging. Medium/Long skip Shorts entirely. |
minDurationSec, maxDurationSec | Exact length bounds in seconds, every source, free (e.g. 3600 = only videos of an hour or more). |
searchFeatures | YouTube's search features, all must match: live, 4k, hd, subtitles, creative_commons, 360, vr180, 3d, hdr, location, purchased. |
searchCountry | Two-letter country searches run from (GB, DE, IN…), like YouTube's Location setting. Default US. |
minViews | Free pre-filter. |
oldestPostDate | Only videos published on or after this day (UTC). 2026-09-01 or relative 30 days / 2 weeks / 3 months (best for schedules). Free filter before charging; latest-first channel tabs stop paging at the date. |
maxScan | How many cards may be scanned to find maxVideos matches with minViews / oldestPostDate (default 10 × maxVideos, 50–2000). With sortResultsBy, setting it ranks the best maxVideos out of this many. |
sortResultsBy | none (YouTube order, default) / viewsPerHour / views / newest / outlierScore. Ranked here, for free, before maxVideos and before charging, across the whole run; rows get rank. outlierScore works for searches and playlists too (see above). |
searchOutliers | Outlier score for search and playlist results without re-ranking (1 free request per channel, up to 100 per run). |
includeDetails | Exact views/likes/comments/date/description (with its links), chapters and "Most replayed" per video. |
includeHeatmap | With details: the full "Most replayed" heatmap per video. Same price. |
shortsDateLookups | Free date lookups per run (default 400): Shorts dates, and exact dates for videos close to oldestPostDate. |
maxCommentsPerVideo | Comments per video (requires details). |
commentsSort | top (default) or newest. |
includeChannelSummary | Free channel-summary row per channel (default on). |
onlyNew | Monitor mode: only videos (or, with channel search, channels) not delivered by an earlier run in your account. |
{ "searchQueries": ["air fryer recipe"], "contentType": "shorts", "uploadedWithin": "week", "sortBy": "view_count", "maxVideos": 100, "includeDetails": true, "maxCommentsPerVideo": 20 }
Output
video (channel card):
{ "type": "video", "position": 1, "videoId": "gTKS8SAwUzE", "title": "We Survived The Most Extreme Places On Earth", "url": "https://www.youtube.com/watch?v=gTKS8SAwUzE","viewCount": 49000000, "publishedText": "1 day ago", "publishedAt": "2026-09-06T10:59:05Z", "durationSec": 1408, "isShort": false,"channelName": "MrBeast", "channelId": "UCX6OQ3DkcsbYNE6H8uQQuVA", "channelHandle": "@MrBeast", "channelSubscribers": 516000000,"hoursSincePublished": 24, "viewsPerHour": 2041666.7, "viewsPerDay": 49000000, "source": "channel" }
video with includeDetails adds: likeCount, commentCount, exact publishedAt (publishedDateText), description, descriptionLinks, hashtags, channelSubscribers, channelVerified, likeRatePct, commentsPer1kViews, isPremiere, wasLive, chapters, mostReplayed, collaborators (and heatmap with includeHeatmap).
New fields in 0.1.10 (all free, added to rows you already get; default runs are unchanged):
| Field | Row | Meaning |
|---|---|---|
outlierScore, channelMedianViews | search / playlist video (with searchOutliers or sortResultsBy: outlierScore) | Views ÷ the median views of the video's own channel (first page of its Videos or Shorts tab, ≥ 5 videos needed, else null). |
channelSubscribers | search / playlist video (same option) | Filled from the same free channel page when the search card lacks it. |
descriptionLinks | detailed video | [{ text, url, domain }] — every external link in the description (the real target, not YouTube's redirect), once each. Sponsors, affiliate links, merch, socials. |
channelVerified | detailed video | The channel has YouTube's verified (or official artist) badge. |
heatmap | detailed video (with includeHeatmap) | YouTube's whole "Most replayed" graph: [{ startSec, endSec, intensity }], intensity 0–1 (1 = the most replayed moment). [] when YouTube shows no graph. |
New fields in 0.1.9 (all free, added to rows you already get):
| Field | Row | Meaning |
|---|---|---|
outlierScore | channel videos | Views ÷ median views of the same channel and format (videos / Shorts / live) among the cards scanned in this run. Needs ≥ 5 videos to compare, else null. 10 = ten times the channel's usual. With channelSort: popular the baseline is the channel's top videos, so scores read lower. |
rank | video (with sortResultsBy) | 1 = best by your chosen metric across the whole run; the dataset is written in this order. |
channelTab | channel videos | videos, shorts or live. |
publishedAtEstimated | video | true = estimated from "3 weeks ago" text, false = exact day from the video page, null = unknown. |
isLive, isUpcoming, wasLive, liveViewers, scheduledStartText | video | Live state. A live-now stream has viewCount: null on channel tabs and liveViewers = people watching; search results keep YouTube's number in viewCount and add liveViewers. |
playlistId, playlistTitle | playlist videos | Where the row came from. |
mostReplayed | detailed video | Up to 3 { startSec, endSec, intensity, url } from YouTube's "Most replayed" graph, strongest first (intensity 1 = the peak). Empty when YouTube shows no graph. |
chapters, chaptersSource | detailed video | [{ startSec, title }] from the chapter bar (creator or YouTube auto), or from timestamps in the description (description). |
collaborators | detailed video | [{ name, channelId, handle, subscribers }] on collaboration videos; the first one fills channelName/channelSubscribers. |
commentUrl | comment | Link straight to the comment. |
medianViewsVideos, medianViewsShorts, medianViewsLive | channel-summary | Median views per format of the cards scanned (the outlierScore baseline). medianViews keeps its old meaning (rows returned). |
topOutliers | channel-summary | Up to 5 { videoId, title, viewCount, outlierScore, isShort } with score ≥ 3. |
videosPerWeek, shortsPerWeek, lastUploadAt, daysSinceLastUpload | channel-summary | Upload frequency from the dated rows returned (≥ 3 needed for a rate). In detailed runs the summary is written after the details, from exact dates. |
joinedDate, channelAgeDays, totalViews, country, links, hasBusinessEmail | channel-summary | From the channel's About panel (1 extra free request per channel). hasBusinessEmail only says YouTube lists one — the address itself sits behind a sign-in and is not collected. |
comment:
{ "type": "comment", "videoId": "kJQP7kiw5Fk", "commentId": "Ugz…", "text": "who's here after 9 billion??", "author": "@YouTube", "authorChannelId": "UC…", "authorIsVerified": true,"likeCount": 78000, "replyCount": 973, "publishedText": "4 months ago", "publishedAt": "2026-05-10T…" }
transcript (with includeTranscript, $0.006, right after its video row):
{ "type": "transcript", "status": "ok", "videoId": "kJQP7kiw5Fk", "url": "https://www.youtube.com/watch?v=kJQP7kiw5Fk", "title": "Luis Fonsi - Despacito ft. Daddy Yankee","channelName": "Luis Fonsi", "channelId": "UCxoq-PAQeAdk_zyg8YS0JqA", "language": "en", "languageName": "English - en", "isAutoGenerated": false,"availableLanguages": ["en", "en-US", "ja", "es", "es-ES"], "transcript": "♪ ♪ ♪ AAAAY ♪ ♪ FONSI, ♪ ♪ D.Y. ♪ …", "wordCount": 653, "charCount": 2990, "segmentCount": 90,"segments": [{ "start": 0.433, "duration": 27.1, "text": "♪ ♪" }, "…"], "transcriptSource": "relay" }
Videos without captions (or whose captions YouTube refused) get a free row: "status": "no-captions" or "failed", "transcript": null, plus error and availableLanguages.
channel-summary (free): subscriberCount, videoCount, videosScanned, shortsScanned, medianViews, avgViews, topVideoId/Title/Views, medianViewsPerHour, outperformers[], plus the 0.1.9 profile fields above.
The Console has seven table views of the same dataset: Videos, Clip finder (ranked), Niche outliers (search & playlist), Channels (free summary), Channels found (channel search), Comments and Transcripts.
Unavailable videos / unresolvable channels are pushed as type: "failed" and are never charged.
Pricing (pay per event)
| Event | Price |
|---|---|
| Video card | $0.001 |
| Video (detailed) | $0.002 |
| Comment | $0.0005 |
| Channel found (channel search) | $0.002 |
| Transcript (coming early December 2026) | $0.006 |
| Actor start | $0.001 |
1,000 videos ≈ $1 · 1,000 detailed ≈ $2 · 1,000 comments ≈ $0.50 · 1,000 channels ≈ $2 (details included; repeats and filtered-out channels free) · 1,000 transcripts ≈ $6 on top of their detailed videos (videos without captions free).
Notes
- Card
viewCountis YouTube's rounded figure ("49M");includeDetailsgives the exact number. Shorts cards have no upload age (YouTube doesn't show it) — details add the exact date. publishedAton cards is estimated from "x days ago"; details give the real date.- Search honours YouTube's own filters; "Shorts" results are detected from the Shorts shelf and
/shorts/links. YouTube itself now treats the Upload date and Rating sorts only loosely (results come roughly, not strictly, newest first — checked 21 Oct 2026); for an exact order use"sortResultsBy": "newest". searchCountrychanges which videos YouTube ranks for that country; it does not unlock anything blocked where the Actor runs.oldestPostDateis checked by calendar day (UTC), inclusive. Cards that only say "1 month ago" are checked against the exact date on the video page (free, counts towardshortsDateLookups); Shorts that could not be dated are left out of a date window, and the status message says how many.- Playlists: YouTube answers our client with the first page only (up to 100 videos); the status message says when a playlist has more.
- Transcripts come from YouTube's own captions (human or auto-generated). A video without captions has no transcript — the row says so and is free; the Actor does not transcribe audio itself. Need TikTok/Amazon product data? See the other actors on this profile.
Schedule it (recommended)
The cheapest way to use this Actor is as a monitor: create a Schedule in Apify Console (e.g. every day at 08:00), set the input "onlyNew": true, and add an integration (email, Slack, Google Sheets, webhook). Every run then delivers only the videos that appeared since the previous run — you pay only for new rows, and you never miss one.
Changelog
-
0.2.0 (22 Oct 2026) — YouTube AIO: transcripts in the same run. New
includeTranscript: onetranscriptrow per video, right after its video row — full text, timestamped segments, language, auto-generated flag and the list of available languages — andtranscriptLanguagesto choose the language (human captions first; a video without your languages returns its own). $0.006 per transcript, charged only when the text exists; videos without captions get a free row. Turns on details. Transcripts switch on in early December 2026, when their price can go live; until then the option is off and runs are unchanged. New Console view Transcripts. Everything else — defaults, fields, prices — is unchanged. -
0.1.11 (21 Oct 2026) — Channel search: find the channels of a niche. New
searchType: "channels"— your search queries use YouTube's Channel filter and return one row per unique channel (name, @handle, channel ID, URL, subscribers, verified, description, avatar) with free details from the channel's first Videos/Shorts page and About panel (video count, median views per format, videos per week, days since the last upload, top video, country, joined date, total views, links). NewmaxChannels(default 20, max 500), freeminSubscribers/maxSubscribersfilter before charging,channelDetails(default on). Repeats across pages and queries are written and charged once;onlyNewworks for channels too. New paid event Channel found ($0.002), charged only for channel rows actually written and within your run's cost limit. New Console view Channels found (channel search). Nothing changes for existing inputs: the defaultsearchTypeisvideos, every video price, field and default is unchanged. -
0.1.10 (21 Oct 2026) — YouTube's full search filters, length filter everywhere, niche-wide outliers. New
videoLength(short / medium / long) — YouTube's own filter for searches and a free filter before charging for channel tabs and playlists — plus exactminDurationSec/maxDurationSec; Medium/Long skip Shorts without requesting them. NewsearchFeatures(4K, HD, subtitles, Creative Commons, live, 360°, VR180, 3D, HDR, location, purchased) andsearchCountry. Search and playlist results can now carry anoutlierScoreagainst their own channel (searchOutliers, on automatically withsortResultsBy: "outlierScore", which used to leave every search score empty) withchannelMedianViewsandchannelSubscribers; 1 free request per channel, up to 100 per run. Detailed rows gaindescriptionLinks,channelVerifiedand, on request, the fullheatmap. New Console view Niche outliers. Fixes: search filter combinations missing from our old preset table ("this year" + upload date, any date + rating) silently dropped the date — every combination is now sent as chosen; witholdestPostDate+ upload-date sort, newer search results behind an older one were cut (YouTube's order is only roughly newest-first); a collaboration card's "A and B" line could be read as the upload age ("Nurmagomedov" contains "ago"). Good to know: Shorts listings show no length, sominDurationSec/maxDurationSeckeep Shorts only when the range covers the whole 0–180 s Shorts range (otherwise they are skipped free and the status says so); scheduled searches usingoldestPostDate+ upload-date sort can now return a few more rows than before (the ones that used to be cut by mistake). No price change, no new paid event, no field removed or renamed, input defaults unchanged. -
0.1.9 (18 Oct 2026) — Recency, ranking and clip-ready data. New
oldestPostDate(a date or "30 days"): a free filter before charging; latest-first channel tabs stop paging at the date, and cards that only say "1 month ago" are checked against the exact date. NewsortResultsBy(views/hour, views, newest, outlier score): the ranking happens beforemaxVideosand before charging, across the whole run, and rows getrank. NewoutlierScoreon channel rows (views ÷ the channel's median for the same format). Detailed rows now carry YouTube's "Most replayed" segments with&t=links, chapters, and the list of collaborators. NewcontentTypevaluesliveandall(the channel Live tab; for searches, streams live now), newplaylistUrlsinput, newcommentsSort: newestand acommentUrlon every comment. The free channel summary gains medians per format, top outliers, uploads per week, days since the last upload, and the About panel (joined date, total views, country, links) — 1 extra free request per channel. Fixes: collaboration videos lost their channel name and subscribers in detailed rows; detailed rows were written in random order (now in order); a failed comment page no longer discards the comments already read. Status message ends with one line asking for a review when the run delivered rows. In detailed runs the channel-summary row now comes after the video rows (it is built from the exact numbers). No price change, no new paid event, no field removed or renamed, input defaults unchanged. -
0.1.9 review fixes (18 Oct 2026) — Billing and reliability. Your run's maximum cost ("Maximum cost per run") is now respected in every mode: paid rows are cut before they are written, best rank first, and the status says how many videos/comments were held back (before, with
sortResultsBy+ details, rows above the limit were written uncharged). A detail page that hangs near the run timeout no longer loses the rows behind it (or, withsortResultsBy+ details, the whole result): the Actor wraps up and writes what is ready before the timeout. A failed dataset write no longer crashes the run. An empty result is no longer marked FAILED because the optional About panel or free date lookups were rate-limited.oldestPostDateon a popular/oldest-sorted tab no longer stops after page 1 with too few videos. WithonlyNew, only videos actually delivered are remembered. A video found by several inputs (channel + search + playlist) is now one row, charged once, with the other sources in a newalsoFoundInfield. No price change. -
0.1.8 (18 Oct 2026) — Shorts search with a date window or sort now returns real results. YouTube ignores date/sort filters for Shorts and used to answer with 0 Shorts (the run still SUCCEEDED). The Actor now fetches plain Shorts, reads each publish date for free, keeps only the ones inside your window and sorts them itself — before anything is charged. Shorts found by search now carry the channel name, handle and subscribers.
channelSort(popular/oldest) now also applies to a channel's Shorts tab. The example channel @MrBeast that the input form pre-fills is no longer scraped or charged when you also give search queries or video URLs. No price change. -
0.1.7 (24 Sep 2026) — Reliability: A mistyped or non-existent channel, handle or video now ends the run successfully with a clear "not found — check the @handle" message instead of a false "YouTube blocked us" failure, and short YouTube blocks get a patient retry. Long runs now stop just before the timeout and keep every video collected so far. No price or field change.
-
0.1.6 (24 Sep 2026) — The run's status bar now summarises the result and suggests scheduling:
viewsPerHouracross runs is how you catch a video going viral. No price or field change. -
0.1.6 (26 Sep 2026) — Detailed runs no longer fail when YouTube walls the detail pages. On 26 Sep a detailed run found all 100 videos but YouTube refused every detail page from the Apify servers; the run ended FAILED after 11 minutes and returned only error rows. Now a blocked detail page is fetched again through a residential connection, and if that is also unavailable you still get the video card (title, views, upload age, views/hour…) marked
detailed: falsewith adetailErrornote — charged at the basic Video price, not the detailed one. After 4 blocked pages in a row the Actor stops hammering the blocked route, so these runs finish in seconds instead of minutes. No price change, no field removed, defaults unchanged. -
0.1.5 (23 Sep 2026) — Shorts now carry
durationSec(and a description) inincludeDetailsruns. YouTube publishes no video length for Shorts in the listing, so every Shorts row used to show an emptySeccolumn even on detailed runs. The length and description now come from the video player metadata, fetched through a residential connection, up to 300 Shorts per run and at no extra charge; rows filled this way are markeddurationSource: "player". If that connection is unavailable the run behaves exactly as before — the field simply stays empty, nothing fails. No price change, no field removed, defaults unchanged. -
0.1.4 (19 Sep 2026) — Typo guard on input. Apify accepts input fields an Actor does not know without complaining, so a misspelled option used to produce a successful run with that setting silently inactive. The run log now warns for every unknown field and suggests the closest real one.
-
0.1.3 (18 Sep 2026) — New
onlyNew(monitor mode). Set it to true and schedule the Actor: the first run returns the full result and remembers every video (videoId) in a key-value store in your account; every later run returns only videos that are new since the last run, and skipped rows are never charged. Nothing else changed — defaults, fields and prices are identical. -
0.1.2 (18 Sep 2026) — Fix:
minViewswith a smallmaxVideosreturned far fewer rows than asked. Paging used to stop oncemaxVideoscards were fetched and only then applied the filter, sominViews: 400000000, maxVideos: 8on a big channel gave 2–3 rows. Paging now continues untilmaxVideosmatching videos are found (new optionalmaxScan, default 10 × maxVideos, max 2000; scanned-but-dropped cards stay free). Verified: 8/8 rows ≥ 400 M views over 90 scanned cards. No other change. -
0.1.1 (16 Sep 2026) — Shorts rows now have
publishedAt,hoursSincePublished,viewsPerHour,viewsPerDay(they were null for every Short because YouTube's Shorts shelf carries no date). Filled from the video page at no extra charge, up toshortsDateLookupsper run (default 400). Channel-summary medians now include Shorts. Existing fields, prices and defaults unchanged. -
0.0.6 (10 Sep 2026) — Maintenance: billing safety (
chargeSafely— a failed charge can no longer kill a run that already has data), test suite wiring, README. -
0.0.1 (7 Sep 2026) — Launch.
Found this useful? A review helps more than you'd think
If this Actor saved you time, a short review on the Reviews tab of this Store page takes 30 seconds and is the only signal other buyers have before they spend anything. If something is broken instead, open a ticket on the Issues tab — parser bugs and field requests get fixed.
Related Actors from the same account