Advanced Youtube Scraper avatar

Advanced Youtube Scraper

Pricing

$29.00/month + usage

Go to Apify Store
Advanced Youtube Scraper

Advanced Youtube Scraper

Please follow all inquiries at: tnot2652@gmail.com. Search YouTube for keywords, channels or individual video data blazingly fast. Internal YouTube API. No key needed. Customizable sorting, including their views, comments, channel info, number of subscribers, publication date, and title data etc.

Pricing

$29.00/month + usage

Rating

0.0

(0)

Developer

Steafanie Braid

Steafanie Braid

Maintained by Community

Actor stats

16

Bookmarked

955

Total users

5

Monthly active users

22 days ago

Last modified

Share

Contact

For any inquiries or issues, please contact tnot2652@gmail.com.

YouTube Advanced Scraper

This actor scrapes regular YouTube video data from:

  • text search queries
  • direct watch URLs and youtu.be links
  • channel URLs such as https://www.youtube.com/@Google, youtube.com/@Google, or @Google

It returns one dataset item per video with:

  • title
  • views
  • url
  • publication_date
  • subscribers
  • channel_link
  • channel_name
  • comments
  • related_videos
  • data_date

Current Behavior

  • The default no-input run uses a stable single video URL so Apify health checks pass.
  • Channel root URLs are normalized to the channel's /videos tab automatically.
  • Search and channel pagination use YouTube continuation endpoints, so higher max_results values work.
  • Search and channel scraping now builds base dataset items from list renderers first. Watch pages are opened only for direct video inputs or when comment / related-video enrichment is requested.
  • Search results now do lightweight subscriber enrichment with one channel-page request per unique channel, using a bounded in-memory cache to avoid unbounded growth on large runs.
  • Duplicate input entries are deduplicated before scraping.
  • Unsupported YouTube URLs such as playlist pages are skipped with a warning instead of breaking the run.

Input

The actor accepts a JSON object with these fields:

  • queries: Required. A mix of search queries, direct video URLs, or channel URLs. Bare handles such as @Google and scheme-less channel URLs such as youtube.com/@Google are accepted.
  • sort_by: Optional. Search sorting for text queries only. One of relevance, view, date, rating. Default is relevance.
  • max_results: Optional. Maximum number of videos to collect per search query or channel URL. Default is 10.
  • num_comments: Optional. Requested comment count per video. Default is 0.
  • related_videos: Optional. Whether to try collecting related video links from watch pages. Default is false.

Legacy note: The old clean input is still accepted for backwards compatibility, but it is ignored by the current actor version.

Proxy Setup

Do not place proxy credentials in actor input.

Configure the proxy through actor environment variables instead:

  • YOUTUBE_PROXY_URL
  • or the split form: YOUTUBE_PROXY_HOST, YOUTUBE_PROXY_PORT, YOUTUBE_PROXY_USERNAME, YOUTUBE_PROXY_PASSWORD, and optional YOUTUBE_PROXY_SCHEME

Example:

YOUTUBE_PROXY_URL=http://USERNAME:PASSWORD@HOST:PORT/

The actor redacts credentials in its own logs and only logs the proxy host and port.

Output

Example dataset item:

{
"title": "Me at the zoo",
"views": 355000000,
"url": "https://www.youtube.com/watch?v=jNQXAC9IVRw",
"publication_date": "2005-04-24",
"subscribers": 3210000,
"channel_link": "https://www.youtube.com/@jawed",
"channel_name": "jawed",
"comments": [],
"related_videos": [
"https://www.youtube.com/watch?v=QH2-TGUlwu4",
"https://www.youtube.com/watch?v=oHg5SJYRHA0"
],
"data_date": "2026-04-18T00:00:00+00:00"
}

Output Schema

The actor always returns these keys for every dataset item:

{
"type": "object",
"properties": {
"title": { "type": "string" },
"views": { "type": "integer" },
"url": { "type": "string" },
"publication_date": { "type": ["string", "null"] },
"subscribers": { "type": ["integer", "null"] },
"channel_link": { "type": ["string", "null"] },
"channel_name": { "type": ["string", "null"] },
"comments": {
"type": "array",
"items": { "type": "string" }
},
"related_videos": {
"type": "array",
"items": { "type": "string" }
},
"data_date": { "type": "string" }
},
"required": [
"title",
"views",
"url",
"publication_date",
"subscribers",
"channel_link",
"channel_name",
"comments",
"related_videos",
"data_date"
]
}

Notes

  • comments are best effort. The actor now attempts to collect top-level comments through YouTube's watch-page continuation flow. Some videos can still return an empty array when comments are disabled or YouTube blocks the continuation requests.
  • related_videos are best effort. Some watch pages block continuation requests and return an empty array.
  • Search and channel items can now survive blocked watch pages. In those cases, the actor logs the watch-page problem and keeps the list-page fallback item.
  • subscribers are now hydrated from direct watch pages, channel headers, or one lightweight channel-page request per unique channel when available. They can still be null if YouTube does not expose the count.
  • sort_by does not affect direct video URLs or channel URLs.

Machine Specs

256 MB is enough for smaller runs, but larger query lists and high max_results values benefit from more memory and time.