YouTube Scraper avatar

YouTube Scraper

Pricing

from $0.80 / 1,000 record scrapeds

Go to Apify Store
YouTube Scraper

YouTube Scraper

Scrape YouTube videos, channels, and metadata without an API key. Search by keyword or scrape a full channel's video catalogue. Returns structured records with video ID, title, description, view count, like count, channel, duration, publish date, and thumbnail URLs.

Pricing

from $0.80 / 1,000 record scrapeds

Rating

0.0

(0)

Developer

BowTiedRaccoon

BowTiedRaccoon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

21 days ago

Last modified

Share

Scrape YouTube videos, channels, and metadata without an API key. Search by keyword or scrape a full channel's video catalogue. Returns structured records with video ID, title, view count, channel, duration, publish date, and thumbnail URLs.

What it does

The actor uses YouTube's InnerTube REST API — the same JSON API used by YouTube's own web client. No API key required, and it runs lean, keeping costs low.

Two scraping modes are available:

  • Search mode (mode: search) — submit one or more keyword queries and collect matching video results, paginated via InnerTube continuation tokens.
  • Channel mode (mode: channel) — supply a channel URL, handle, or bare channel ID and collect all videos from that channel's Videos tab.

Input

FieldTypeDescription
modestringsearch (default) or channel
queriesarrayKeywords to search for (search mode only)
channelUrlstringChannel URL, @handle, or UC... ID (channel mode only)
maxItemsintegerTotal videos to return, shared evenly across queries (0 = no limit)

Channel URL formats accepted:

  • https://www.youtube.com/@MrBeast
  • https://www.youtube.com/channel/UCX6OQ3DkcsbYNE6H8uQQuVA
  • Bare ID: UCX6OQ3DkcsbYNE6H8uQQuVA

Output

Each record contains:

FieldTypeDescription
videoIdstringYouTube video ID
videoUrlstringFull watch URL
titlestringVideo title
descriptionstringDescription snippet (if shown in search results)
channelIdstringYouTube channel ID (UC...)
channelNamestringChannel display name
channelUrlstringChannel canonical URL
viewCountintegerTotal view count
durationSecondsintegerDuration in seconds
publishedAtstringRelative publish date (e.g. "1 year ago")
thumbnailUrlstringHighest-resolution thumbnail URL
isLivebooleanWhether the video is a live stream
querystringThe search query or channel URL that produced this record
scrapedAtstringISO timestamp when the record was collected

Example: search mode

{
"mode": "search",
"queries": ["python tutorial", "javascript crash course"],
"maxItems": 50
}

Example: channel mode

{
"mode": "channel",
"channelUrl": "https://www.youtube.com/@MrBeast",
"maxItems": 100
}

Performance and cost

  • Memory: 256 MB
  • Approximate throughput: 20 videos per InnerTube page, ~200 ms delay between pages
  • Pricing: pay-per-result (DATA_RECORD events)

Notes

  • publishedAt returns YouTube's relative format ("3 days ago", "1 year ago") rather than an absolute ISO date — the InnerTube browse/search API does not expose absolute timestamps in these endpoints.
  • description is the excerpt YouTube shows in search results; it is null in channel mode.
  • Channel mode returns the channel's Videos tab (Shorts and live streams are listed under separate tabs on YouTube and are not included). viewCount there is rounded the way YouTube shows it (for example 86M).
  • A single search query returns up to roughly 150 videos, which is as deep as YouTube lets a search go.
  • A channel that cannot be found, an unknown mode, or an empty queries list stops the run with an error instead of returning nothing.
  • The actor handles YouTube's EU consent mechanism automatically via a session cookie header.