YouTube Scraper — Channel Videos, Shorts & Playlists
Pricing
from $0.40 / 1,000 youtube videos
YouTube Scraper — Channel Videos, Shorts & Playlists
Export public YouTube videos from channels, Shorts tabs, searches, playlists, and direct URLs with available views, likes, comment totals, and metadata. Bounded feed pagination and run-wide video deduplication.
Pricing
from $0.40 / 1,000 youtube videos
Rating
0.0
(0)
Developer
Coor Yu
Maintained by CommunityActor stats
0
Bookmarked
6
Total users
3
Monthly active users
12 hours ago
Last modified
Categories
Share
Collect public YouTube video metadata from channel feeds, Shorts tabs, keyword searches, playlists, and direct video URLs with this YouTube Scraper. Export available titles, channel information, views, likes, comment totals, thumbnails, and publication data for video research and playlist analysis.
Requests use direct HTTP and YouTube's public page data and continuation endpoints, not a browser or a configured proxy. You do not supply a YouTube login or YouTube Data API key. Running through the Apify API still requires an Apify token and incurs the charges below.
Supported collection modes
- Channel videos: a channel URL, ID, or handle normally selects its Videos tab. Explicit
/shortsand/streamstabs are supported. - Shorts: use a Shorts tab URL, or set
includeShorts: trueto add a separate Shorts feed for each non-Shorts channel input. - Search: video-only results for each keyword in
searchQueries. - Playlists: public playlist URLs or playlist IDs.
- Direct videos: watch, youtu.be, Shorts, embed, or live URLs, or 11-character video IDs; at most one row per video input.
This is a metadata scraper, not a video downloader or comment-text exporter.
Quick start
In Apify Console, supply at least one input type. Start with a small request:
{"channelUrls": ["@OpenAI"],"includeShorts": true,"includeVideoStats": true,"resultsPerInput": 5}
Alternatively, use searchQueries, playlistUrls, or videoUrls; they can be combined. For an authenticated API run, save the input as input.json and use:
curl -X POST \'https://api.apify.com/v2/acts/funny_ground~youtube-scraper/run-sync-get-dataset-items' \-H "Authorization: Bearer $APIFY_TOKEN" \-H 'Content-Type: application/json' \--data-binary @input.json
This command starts a billable run. The examples are illustrative inputs, not claims of a newly verified live result.
Input fields and bounds
| Field | Default | Behavior |
|---|---|---|
channelUrls | [] | Up to 50 channel URLs, @handles, bare handles, or channel IDs. |
includeShorts | false | Add a Shorts tab alongside each non-Shorts channel tab. |
searchQueries | [] | Up to 50 video-search queries. |
playlistUrls | [] | Up to 50 playlist URLs or IDs. |
videoUrls | [] | Up to 100 direct URLs or video IDs. |
resultsPerInput | 50 | 1–1000 caps each channel tab, search, or playlist separately. 0 traverses the feed subject to a 10,000-video safety cap per feed. |
includeVideoStats | true | Attempt additional public statistics requests for each result. Disable for feed-only collection with fewer requests. |
maxConcurrency | 4 | Concurrent input/direct-video processing; range 1–12. |
maxRequestRetries | 2 | Temporary HTTP-error retries; range 0–4. |
requestTimeoutSecs | 30 | Per-request timeout; range 10–120 seconds. |
The result bound applies separately to Videos and Shorts, not globally. Feed traversal also stops at 500 pages, repeated tokens, or two pages adding no new videos. Deduplication, unavailable counters, request failures, and billing limits can make saved counts lower than requested.
Apify Free-plan preview: the developer limits output to 50 saved dataset rows per run across all inputs and caps each input's requested feed size at 50. Direct-video inputs are also limited to the first 50 on this plan. Paid plans remove this developer-set preview cap, not the documented input, page, and safety bounds. Free-plan result events are still paid events.
Output and billable unit
The default dataset contains one saved video row. Video IDs are deduplicated across overlapping inputs within a run; the first saved occurrence supplies its source attribution rather than a merged list of all matching sources.
Available fields include:
videoId, canonicalurl,title,description,thumbnailUrl;viewCountand its numeric aliasplayCount,likeCount,commentCount,commentCountText;durationSeconds,publishedAt,publishedTimeText,isShort,isLive;channelId,channelName,channelUrl,channelHandle;playlistId,playlistTitle,position,category,keywords;sourceType,sourceInput, and ISO collection timestampscrapedAt.
Fields depend on the response type and may be null. publishedAt is YouTube's supplied publish/upload date when available, not necessarily a precise timestamp. List pages may provide only relative text such as “2 days ago.” Duration is in seconds; position is the scraper's collection sequence, not a guaranteed original playlist index.
Counters are snapshots, not guaranteed exact totals. Abbreviated views, likes, or comments are converted to numbers and can be approximate. commentCountText preserves the displayed comment-total text. A live response may expose “watching now,” which is not the same as lifetime plays. Statistics enrichment is best effort and can retain list/player values when an endpoint withholds data. With enrichment disabled, list rows generally lack likes and comment totals; direct-player fields can differ.
A row without a finite public playback counter is skipped, not saved or result-billed. Discovered rows and HTTP requests are not the result billing unit; the configured event is apify-default-dataset-item for saved valid rows. Overlapping saved video IDs do not create extra result rows.
Current pricing
| Apify plan | Per saved video event | Per 1,000 events |
|---|---|---|
| FREE | $0.00225 | $2.25 |
| BRONZE | $0.00045 | $0.45 |
| SILVER, GOLD, PLATINUM, DIAMOND | $0.00040 | $0.40 |
The apify-actor-start event costs $0.0005 per GB of allocated memory, minimum one event per run. It is not necessarily one fixed fee for every memory setting. The running user also pays Apify compute, storage, and transfer separately. Startup and platform usage may still apply to failed or empty runs. No downstream Actor or separate per-request charge event is configured.
Check the Pricing tab for your effective plan price. A maximum event-charge budget can stop output; it is not a guarantee of complete collection or an all-inclusive platform-cost ceiling.
Reliability and responsible use
YouTube can rate-limit direct data-center requests, change page layouts, return consent pages, or withhold statistics. A failed later continuation can leave a partial dataset from earlier pages. An entire run with zero valid emitted videos is marked FAILED; this does not waive startup or platform charges. Validate saved rows and logs before relying on a requested count.
Private, deleted, restricted, and unavailable videos may produce no output. This Actor does not bypass authentication or access controls and cannot promise full channel history. Use public data consistently with YouTube's terms, copyright, privacy requirements, and applicable law.
FAQs
Does “no YouTube API key” mean no authentication or cost? No. No user-provided YouTube credential is required, but Apify API calls require an Apify token. Event and platform costs still apply.
Does resultsPerInput: 0 export an entire channel? Not necessarily. It enables bounded feed traversal, with row/page safety limits, a separate Free-plan cap, and possible source or budget interruptions.
Does this scrape comments? It may retrieve a public comment total, not comment text or reply threads.
Complementary Actors
- YouTube Influencer Finder — creator discovery rather than video-feed export.
- Social Video Profile Resolver — resolve supported public video links to creator profiles.