Free YouTube Scraper: Videos, Shorts, Channels & Search
Pricing
Pay per usage
Free YouTube Scraper: Videos, Shorts, Channels & Search
Free YouTube scraper: videos, Shorts and streams from searches (all filters), channels, playlists and hashtags. Views, likes, comments count, exact publish time, duration, description, tags, plus channel subscribers, total views and country. Same input and output as the popular YouTube Scraper.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Wulfcare Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
21 hours ago
Last modified
Categories
Share
Free YouTube Scraper
Scrape YouTube for free: there's no charge per video, so a run costs only the few cents of Apify platform usage. You can get:
- Search results for any search term, with all of YouTube's search filters (upload date, type, duration, sort order, HD, 4K, subtitles, Creative Commons, live...).
- Channels: their Videos, Shorts and Live tabs, sorted newest, popular or oldest, and stopping at a date if you set one.
- Playlists, hashtag pages and search result URLs.
- Single videos and Shorts from any link (watch, youtu.be, Shorts, live, embed) or a bare video id.
Every video comes with views, likes, comment count, exact publish time, duration, the full description with its links, hashtags, category, tags, and the channel's subscribers, total views, video count, country, joined date, links, avatar and banner.
Already using another YouTube scraper? The inputs (searchQueries, startUrls, maxResults, maxResultsShorts, maxResultStreams, sortingOrder, dateFilter, oldestPostDate, sortVideosBy...) and the output fields (title, id, url, viewCount, likes, commentsCount, date, duration, text, channelName, numberOfSubscribers...) have the same names as the most used YouTube scraper in the Apify Store. Swap the Actor ID and your integration keeps working.
What people use it for
- Market and competitor research: what's being published on a topic, by whom, and how well it does.
- Influencer discovery: channels in a niche with their subscribers, views, country and links (no emails or personal data).
- Channel monitoring: a daily schedule with
oldestPostDate: "1 day"gives each channel's new uploads with views, likes and comments. - Trend and content analysis: titles, tags, hashtags, categories and engagement of the top videos for any search.
- Datasets for AI and analytics: clean, structured video metadata ready for a spreadsheet, a database or an LLM.
Need what's said in the videos? The YouTube Transcript Scraper gets transcripts (text, timed segments or SRT) for the same videos, channels, playlists and searches.
How to use it
- Add search terms and/or YouTube URLs (videos, channels, playlists, hashtags, search pages), in any mix.
- Set Maximum videos per search term / channel / playlist (default 10). For Shorts and live streams set Maximum Shorts and Maximum live streams too (default 0 = none).
- Optionally add search filters, a date limit (
oldestPostDate) or the channel order. - Run it, then download JSON, CSV or Excel, or use the API.
What you get: one row per video
{"title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)","id": "dQw4w9WgXcQ","url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","type": "video","thumbnailUrl": "https://i.ytimg.com/vi/dQw4w9WgXcQ/hqdefault.jpg","viewCount": 1821960823,"likes": 19440936,"commentsCount": 2457966,"date": "2009-10-25T06:57:33Z","dateText": "Oct 24, 2009","duration": "00:03:33","durationSeconds": 213,"text": "The official video for “Never Gonna Give You Up” by Rick Astley. ...","descriptionLinks": [{ "url": "https://linktr.ee/rickastleynever", "text": "https://linktr.ee/rickastleynever" }],"hashtags": ["#RickAstley", "#NeverGonnaGiveYouUp", "#OfficialMusicVideo"],"location": null,"category": "Music","keywords": ["rick astley", "Never Gonna Give You Up", "nggyu", "rick roll"],"isLive": false,"commentsTurnedOff": false,"isMembersOnly": false,"isAgeRestricted": false,"isUnlisted": false,"collaborators": null,"channelName": "Rick Astley","channelId": "UCuAXFkgsw1L7xaCfnd5JJOw","channelUrl": "https://www.youtube.com/@RickAstleyYT","channelUsername": "RickAstleyYT","numberOfSubscribers": 4550000,"isChannelVerified": true,"channelAvatarUrl": "https://yt3.googleusercontent.com/...","channelBannerUrl": "https://yt3.googleusercontent.com/...","channelDescription": "Rick Astley’s Swinging Christmas 2026 🎄 ...","channelDescriptionLinks": [{ "text": "Website", "url": "https://www.rickastley.co.uk/" }],"channelLocation": "United Kingdom","channelJoinedDate": "2015-02-01","channelTotalVideos": 437,"channelTotalViews": 2570271276,"input": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","fromYTUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","order": 1,"error": null}
typeisvideo,shortsorstream(live, past or upcoming streams and premieres).dateis the exact publish time in UTC.dateTextis the date as YouTube shows it ("3 days ago" with Open every video off).textis the full description as the creator wrote it: YouTube's shortened links and video "chips" are turned back into the real URLs, which are also listed indescriptionLinks.hashtagsare the ones above the title and in the description.keywordsare the creator's tags (hidden on YouTube's page).commentsCountis the exact count. It'snullwhen comments are turned off (commentsTurnedOff: true) and for streams that are live now.collaboratorslists every channel of a video made by several channels together, each with name, id, URL, handle, subscribers and verified badge. Thechannel...fields describe the first one, the channel the video is on.numberOfSubscribersis rounded the way YouTube shows it (4.55M = 4,550,000).channelTotalViewsandchannelTotalVideosare exact.orderis the video's position in its search, channel tab or playlist.inputis what you entered andfromYTUrlis the YouTube page the video was listed on.
Small differences from other scrapers: dates are ISO (2015-02-01), channelTotalViews is a number, and thumbnailUrl is the 480x360 thumbnail every video has. Subtitles, translations, isMonetized and isPaidContent aren't part of this Actor (the fields are there, always null). For subtitles, use the YouTube Transcript Scraper.
When something goes wrong
A bad URL, a deleted or private video, or a missing channel never crashes the run. It gets a row with error set, and everything else carries on:
{ "id": "aaaaaaaaaaa", "url": "https://www.youtube.com/watch?v=aaaaaaaaaaa", "input": "https://www.youtube.com/watch?v=aaaaaaaaaaa", "error": "Video unavailable" }
Other errors: Channel not found, The playlist does not exist., This channel has no Shorts tab (for a channel tab URL), No videos found for this search, Not a YouTube video, channel, playlist, search or hashtag URL.
Pricing
Free. There's no fee per video or per run. You only pay Apify's platform usage, which is tiny. In tests:
- 341 videos with every detail used $0.002;
- 4 channels' videos, Shorts and streams (170 videos) used $0.0016.
Apify's free plan includes $5 of usage every month, enough for hundreds of thousands of videos.
Input examples
The top 50 videos for a search, this month's uploads over 20 minutes, most viewed first
{ "searchQueries": ["python tutorial"], "maxResults": 50, "dateFilter": "month", "lengthFilter": "plus20", "sortingOrder": "views" }
Search videos and Shorts
{ "searchQueries": ["iphone 17 review", "pixel 10 review"], "maxResults": 30, "maxResultsShorts": 30 }
Everything a channel posted in the last 30 days (videos, Shorts and streams)
{ "startUrls": [{ "url": "https://www.youtube.com/@mkbhd" }], "maxResults": 1000, "maxResultsShorts": 1000, "maxResultStreams": 1000, "oldestPostDate": "30 days" }
A channel's 100 most popular videos
{ "startUrls": [{ "url": "https://www.youtube.com/@veritasium" }], "maxResults": 100, "sortVideosBy": "POPULAR" }
A whole playlist, quickly (only what the list shows: title, views, duration)
{ "startUrls": [{ "url": "https://www.youtube.com/playlist?list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi" }], "maxResults": 5000, "includeVideoDetails": false }
Details of specific videos
{ "startUrls": [{ "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" }, { "url": "https://www.youtube.com/shorts/CEJXqm2eiJ0" }] }
Good to know
- Speed: about 6 videos a second with every detail (341 videos in under a minute), and much faster with Open every video off. Videos at a time (default 10, up to 30) sets the pace.
- Proxy: Apify Proxy (datacenter) is on by default and is all it needs. YouTube refuses some Apify servers' own IP addresses, so without a proxy the run may stop with a clear message.
- Search filters work like YouTube's own: YouTube decides what matches, and it doesn't keep "Upload date" sort order strictly. A search goes about 500-600 results deep, as on YouTube.
oldestPostDatetakes a date (2026-01-31) or an age (7 days,2 weeks,3 months,1 year). It works for every source. On a channel listed newest first the run stops at the first older video, and elsewhere older videos are skipped.- Hashtag pages show only a few dozen videos, so for more the Actor continues with YouTube's search for that hashtag.
- Live search (
maxResultStreamswith a search term) finds streams that are live right now. A channel's Live tab has its past and upcoming streams too. - For a few videos (mostly some music videos) YouTube doesn't give out the category and tags; those rows have the rest.
- Public data only: everything comes from public YouTube pages as a logged-out visitor sees them. No Google account, no login, no emails or other personal contact data.
Other Actors by Wulfcare Data
- Google Hotels Prices Scraper: every booking site's price for any hotel and dates, and hotel searches
- YouTube Transcript Scraper: transcripts of videos, channels, playlists and searches as text, segments or SRT
- Google Trends Scraper: interest over time, rising queries and Trending Now
- ChatGPT Search Scraper & AI Brand Visibility Tracker: what ChatGPT answers and cites for any prompt
- Google Play Scraper and App Store Scraper: reviews, app details and charts
- Google Jobs Scraper and AI Training Jobs Scraper: job listings