Cheap Youtube Scraper
Under maintenancePricing
from $1.30 / 1,000 video results
Cheap Youtube Scraper
Under maintenanceThe cheapest actor to scrape YouTube videos, Shorts, live streams, channels, playlists, comments, replies, and subtitles. no API key required
Pricing
from $1.30 / 1,000 video results
Rating
5.0
(1)
Developer
API Geek
Maintained by CommunityActor stats
2
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Scrape YouTube videos, Shorts, live streams, channels, playlists, comments, replies, and subtitles at a low cost. Cheap YouTube Scraper accepts URLs and search queries, uses lightweight YouTube web APIs, and requires no YouTube API key.
Quick start
Provide startUrls, searchQueries, or both. Sources are additive and duplicate videos are emitted only once.
Scrape a video with comments
{"startUrls": [{ "url": "https://www.youtube.com/watch?v=jNQXAC9IVRw" }],"maxCommentsPerVideo": 20,"maxRepliesPerComment": 3,"commentSort": "TOP"}
Search with filters
{"searchQueries": ["apify tutorial", "web scraping"],"maxResultsPerSource": 50,"searchSort": "uploadDate","searchUploadDate": "month","searchHdOnly": true}
maxResultsPerSource applies separately to each query, playlist, hashtag, or selected channel feed. A direct video URL always produces at most one video result.
Scrape channel videos, Shorts, and streams
{"startUrls": [{ "url": "https://www.youtube.com/@Google" }],"channelContentTypes": ["videos", "shorts", "streams"],"maxResultsPerSource": 20}
For a generic channel URL, every selected feed can produce up to the configured limit. A URL ending in /shorts or /streams targets only that feed.
Download subtitles
{"startUrls": [{ "url": "https://www.youtube.com/watch?v=jNQXAC9IVRw" }],"downloadSubtitles": true,"subtitleLanguage": "en","subtitleFormat": "srt"}
Subtitle content is stored in the run's default Key-Value Store. The video item contains subtitle.storageKey. If the requested language is unavailable, the video is still returned with its available subtitleTracks and an error record is written.
searchHasSubtitles only filters search results. It does not download subtitles; use downloadSubtitles for that.
Input reference
| Input | Default | Purpose |
|---|---|---|
startUrls | [] | Video, Short, channel, playlist, search, or hashtag URLs |
searchQueries | [] | YouTube search keywords or phrases |
maxResultsPerSource | 20 | Result limit for each query, playlist, hashtag, or channel feed |
channelContentTypes | ["videos"] | Channel feeds: videos, shorts, and/or streams |
searchSort | relevance | relevance, uploadDate, viewCount, or rating |
searchUploadDate | — | hour, today, week, month, or year |
searchDuration | — | short, medium, or long |
searchPublishedAfter | — | Filter out videos older than an ISO date |
searchHdOnly, search4KOnly, searchLiveOnly | false | Additional YouTube search filters |
searchHasSubtitles | false | Search only for captioned videos |
maxCommentsPerVideo | 0 | Top-level comments; 0 disables comments |
maxRepliesPerComment | 0 | Replies collected for each emitted top-level comment |
commentSort | TOP | TOP or NEWEST |
downloadSubtitles | false | Download one matching caption track per video |
subtitleLanguage | en | Caption language code, for example en-US or id |
subtitleFormat | text | text, json, srt, or vtt |
proxyConfiguration | — | Optional Apify Proxy configuration used by YouTube requests |
At least one non-empty URL or query is required. Invalid and retired fields fail before requests or charges with an actionable validation message.
Output
The default dataset contains VIDEO, SHORT, LIVE, and COMMENT items. Comments and replies use the same COMMENT type and are distinguished by isReply and parentCommentId.
Each item includes sourceInput, identifying the URL or query that first produced it. Search results also include searchQuery and searchPosition; playlist results include playlist identity and position.
Additional output is available from the Actor run page:
CHANNEL_METADATA: metadata for resolved channels.PLAYLIST_METADATA: metadata for resolved playlists.- Subtitle files: records named
SUBTITLE_<videoId>_<language>_<format>. ERRORSdataset: source-level and item-level failures that did not necessarily fail the whole run.
A run can succeed with partial errors when at least one source produced results. Validation errors and fatal failures are reported as failed Actor runs. A valid source with no matching results completes normally as SOURCE_EXHAUSTED.
Billing
This Actor uses Apify pay-per-event billing. See the Actor's live Pricing tab for current unit prices; the store configuration is the source of truth.
apify-actor-start: once per run, when configured by the platform.video-result: after a video, Short, or live-stream item is saved successfully.comment-result: after a comment or reply is saved successfully.subtitle-result: after a requested subtitle is downloaded and stored successfully.
No result event is charged before its corresponding output is persisted. The approximate run cost is the start event plus each successful event count multiplied by its live unit price.
Local development
npm cinpm run buildnpm test
npm run test:live deliberately contacts live YouTube services. npm run benchmark runs the compiled benchmark suite after a build.