Youtube Scraper avatar

Youtube Scraper

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Youtube Scraper

Youtube Scraper

YouTube Scraper extracts bulk public data beyond official API limits. Grab video metadata, view counts, comments, and live like counters from channels, playlists, streams, and search results. Export to JSON, CSV, or Excel via API endpoints, webhooks, or our Python & Node.js SDKs.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

Felipe Lisboa

Felipe Lisboa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Turn YouTube into clean, analysis-ready data in minutes.

This Apify Actor extracts public data from YouTube videos, channels, playlists, and search results, with optional subtitle capture for deeper content analysis.

Features

  • Start fast: scrape by URL (video, channel, playlist, search page) or by search term
  • Stay in control: set independent limits for regular videos, Shorts, and live streams
  • Refine channel results: filter by date range and sort by Newest, Popular, or Oldest
  • Narrow search intent: apply sorting and upload-date filters to target the right content
  • Go deeper with subtitles: download tracks as SRT, WEBVTT, XML, or plain text, and optionally persist to key-value store
  • Debug with confidence: errors are pushed as explicit dataset items (via the error field), never hidden failures

Input

{
"startUrls": [
{ "url": "https://www.youtube.com/@LofiGirl" },
{ "url": "https://www.youtube.com/watch?v=CW7gfrTlr0Y" }
],
"searchQueries": ["lofi hip hop"],
"maxResults": 10,
"maxResultsShorts": 10,
"maxResultStreams": 10,
"sortingOrder": "relevance",
"dateFilter": "week",
"oldestPostDate": "2 months",
"sortVideosBy": "NEWEST",
"downloadSubtitles": false,
"saveSubsToKVS": false,
"subtitlesLanguage": "en",
"subtitlesFormat": "srt",
"preferAutoGeneratedSubtitles": false
}
FieldTypeDefaultDescription
startUrlsarrayYouTube URLs (video, channel, playlist or search page)
searchQueriesarraySearch keywords as typed in the YouTube search bar
maxResultsinteger10Max regular videos per URL/query (0 to exclude)
maxResultsShortsinteger10Max Shorts per search term (0 to exclude)
maxResultStreamsinteger10Max live streams per search term (0 to exclude)
sortingOrderstringrelevanceSearch result order: relevance, upload_date, view_count, rating
dateFilterstringLimit search to: hour, today, week, month, year
oldestPostDatestringChannel date range, e.g. 2024-01-31 or 2 weeks
sortVideosBystringNEWESTChannel tab sort: NEWEST, POPULAR, OLDEST
downloadSubtitlesbooleanfalseAttach subtitles to each video item
saveSubsToKVSbooleanfalseAlso save subtitle files to the key-value store
subtitlesLanguagestringanyPreferred language code (e.g. en, es, pt)
subtitlesFormatstringsrtsrt, vtt, xml, or plaintext
preferAutoGeneratedSubtitlesbooleanfalsePrefer auto-generated over user-created tracks

Output

Video item

{
"title": "Stromae - Santé (Live From The Tonight Show Starring Jimmy Fallon)",
"id": "CW7gfrTlr0Y",
"url": "https://www.youtube.com/watch?v=CW7gfrTlr0Y",
"thumbnailUrl": "https://i.ytimg.com/vi/CW7gfrTlr0Y/maxresdefault.jpg",
"viewCount": 35582192,
"date": "2021-12-21",
"likes": 512238,
"location": null,
"channelName": "StromaeVEVO",
"channelUrl": "https://www.youtube.com/@StromaeVEVO",
"numberOfSubscribers": 6930000,
"duration": "00:03:17",
"commentsCount": 14,
"text": "...",
"descriptionLinks": [],
"hashtags": [],
"subtitles": null,
"comments": null,
"isMonetized": true,
"commentsTurnedOff": false
}

Channel item

{
"id": "HV6OlMPn5sI",
"title": "Raimu - The Spirit Within 🍃 [lofi hip hop/relaxing beats]",
"duration": "29:54",
"channelName": "Lofi Girl",
"channelUrl": "https://www.youtube.com/channel/UCSJ4gkVC6NrvII8umztf0Ow",
"date": "10 months ago",
"url": "https://www.youtube.com/watch?v=HV6OlMPn5sI",
"viewCount": 410458,
"channelDescription": "...",
"numberOfSubscribers": 13100000,
"channelTotalVideos": 409,
"channelTotalViews": "1,710,167,563",
"channelJoinedDate": "Mar 18, 2015",
"channelLocation": "France",
"inputChannelUrl": "https://www.youtube.com/@LofiGirl/about"
}

Search / playlist item

{
"id": "CwRMBKk8St0",
"title": "LET'S ARGUE: Beyoncé Fails the Bechdel Test!",
"duration": "13:48",
"channelName": "fantano",
"channelUrl": "https://www.youtube.com/@fantano",
"date": "5 years ago",
"url": "https://www.youtube.com/watch?v=CwRMBKk8St0",
"viewCount": 635379,
"fromYTUrl": "https://www.youtube.com/results?search_query=bechdel+test"
}

Error item

{
"url": "https://www.youtube.com/@somechannel",
"input": "somechannel",
"error": "CHANNEL_DOES_NOT_EXIST",
"note": "Channel does not exist"
}

Error codes

CodeMeaning
CHANNEL_DOES_NOT_EXISTChannel URL points to a channel that does not exist
NOT_FOUNDPage was not found
VIDEO_UNAVAILABLEVideo is not available (deleted, region-blocked, etc.)
AGE_RESTRICTEDChannel is age-restricted and cannot be accessed without login
CHANNEL_HAS_NO_VIDEOSChannel exists but has no uploaded videos
CHANNEL_HAS_NO_LIVE_VIDEOSChannel exists but has no live videos
CHANNEL_HAS_NO_SHORTSChannel exists but has no Shorts
DATE_FILTER_TOO_STRICTVideos exist but none match the active date filter
NO_VIDEOSNo videos found on the page
NO_RESULTSNo results collected — check that video-type limits are set above 0
NO_VALID_START_URLSAll provided start URLs were invalid or malformed
INVALID_INPUTActor failed due to bad configuration
NO_COMMENTSNo comments found for the video