Youtube Scraper

  • streamers/youtube-scraper
  • Modified
  • Users 562
  • Runs 6.8k
  • Created by Author's avatarStreamers

YouTube crawler and video scraper. Alternative YouTube API with no limits or quotas. Extract and download channel name, likes, number of views, and number of subscribers.

Youtube Scraper

What does YouTube Scraper do?

YouTube Scraper is a data extraction tool created to go beyond the limitations of the YouTube Data API. It extracts public data from YouTube video platform without limitations such as quotas or units. This tool is perfect for you if you need to:

  • scrape YouTube channel videos, titles, description, metadata, etc.
  • scrape YouTube videos with view count, release date, number of likes, number of comments, etc.
  • scrape YouTube subtitles
  • scrape YouTube playlists and streams
  • scrape YouTube search results

What data can you scrape from YouTube?

📺 Channel name👍 Number of likes
📱 Social media links💬 Comments count
📝 Video title🔗 Video URL
🖍 Subtitles📍 Channel location
📼 Total videos🌐 Channel URL
👀 Number of views👁️ Video view count
🧿 Total views📈 Number of subscribers
⏱️ Duration📅 Release date

How many videos can you scrape with YouTube Scraper?

YouTube Scraper can extract up to 20,000 videos per URL. However, you have to keep in mind that scraping has many variables to it and may cause the results to fluctuate case by case. There’s no one-size-fits-all-use-cases number. The maximum number of results may vary depending on the complexity of the input, location, and other factors.

Therefore, while we regularly run scraper tests to keep the benchmarks in check, the results may also fluctuate without our knowing. The best way to know for sure for your particular use case is to do a test run yourself.

⬇️ Input example

For input, you can either use the fields in Console to set up your Actor or input it directly via JSON. You can also use this scraper locally — head over to the input schema tab for technical details.

🔗 How to scrape YouTube by URL or search term

There are two ways you can scrape YouTube: either by URL or by search term.

  1. Scraping by URL 🔗 will get you data from any video, channel, playlist, or search results. You can add as many URLs as you want.
  2. Scraping by search term 🔑 will get you data from YouTube search results. You can also add as many search terms as you want.
Scraping by URL

Paste a YouTube link to a YouTube video, channel, playlist, or search results page. You can also import a CSV file or Google Sheet with a prepared list of URLs. Then choose how many results you would like to extract and click Start.

Scraping using search termType in keywords as you would normally do it in the YouTube search bar. Then choose how many results you would like to extract and click Start.

⬆️ Output example

The scraped results will be shown as a dataset which you can find in the Storage tab. Note that the output is organized as a table for viewing convenience, but it doesn’t show all the fields:

You can preview all the fields and download the file with YouTube data in various formats (JSON, CSV, Excel, and more). Here’s a few JSON examples of different YouTube scraping cases:

💁‍♂️ Channel info

{ "id": "HV6OlMPn5sI", "title": "Raimu - The Spirit Within 🍃 [lofi hip hop/relaxing beats]", "duration": "29:54", "channelName": "Lofi Girl", "channelUrl": "", "date": "10 months ago", "url": "", "viewCount": 410458, "fromYTUrl": "", "channelDescription": "\"That girl studying by the window non-stop\"\n\n🎧 | Listen on Spotify, Apple music and more\n→\n\n💬 | Join the Lofi Girl community \n→\n→\n\n🌎 | Lofi Girl on all social media\n→", "channelJoinedDate": "Mar 18, 2015", "channelLocation": "France", "channelTotalVideos": 409, "channelTotalViews": "1,710,167,563", "numberOfSubscribers": 13100000, "inputChannelUrl": "" }

📹 A single video

{ "title": "Stromae - Santé (Live From The Tonight Show Starring Jimmy Fallon)", "id": "CW7gfrTlr0Y", "url": "", "thumbnailUrl": "", "viewCount": 35582192, "date": "2021-12-21", "likes": 512238, "location": null, "channelName": "StromaeVEVO", "channelUrl": "", "numberOfSubscribers": 6930000, "duration": "00:03:17", "commentsCount": 14, "text": "Stromae - Santé (Live From The Tonight Show Starring Jimmy Fallon on NBC)\nListen to \"La solassitude\" here:\nOrder my new album \"Multitude\" here:\n--\n\n\n\n\n\n / @stromae \n--\nMosaert\nPaul Van Haver (Stromae) : creative direction\nCoralie Barbier : creative direction and fashion design\nLuc Van Haver : creative direction\nGaëlle Birenbaum : communication & project manager\nEvence Guinet-Dannonay : executive assistant\nGaëlle Cools : content & community manager\nRoxane Hauzeur : textile product manager\nDiego Mitrugno : office manager\n\nPartizan\nProducer : Auguste Bas\nLine Producer : Zélie Deletrain \nProduction coordinator : Lou Bardou-Jacquet \nProduction assistant : Hugo Dao\nProduction assistant : Adrien Bossa\nProduction assistant : Basile Jan\n\nDirector : Julien Soulier \n1st assistant director : Mathieu Perez \n2nd assistant director : Leila Gentet \n\nDirector of Photography : Kaname Onoyama \n1st assistant operator : Micaela albanese\n2nd assistant operator : Florian Rey \nDoP Mantee : Zhaopeng Zhong\nMaking of : Adryen Barreyat\n\nHead Gaffer : Sophie Delorme \nElectrician : Sacha Brauman\nElectrician: Tom Devianne\nLighting designer : Aurélien Dayot\nPrelight electrician : Emmanuel Malherbe\n\nHead Grip : Dioclès Desrieux \nBest Boy grip : Eloi Perrin \nPrelight Grip : Vladimir Duranovic \n\nLocation manager : Léo Rodriguez \nLocation manager assistant : Grégoire Décatoire \nLocation manager assistant : Mathieu Barazer \n\nStylist : Sandra Gonzalez \nStylist assistant : Sarah Bernard\n\nMake Up and Hair Artist : Camille Roche \nMake up Artist : Carla Lange \nMake Up and Hair Artist : Victoria Pinto \n\nSound Engineer : Lionel Capouillez \nBackliner : Nicolas Fradet \n\nProduction Designer : Penelope Hemon \n\nChoreographer : Marion Motin \nChoreographer assistant : Jeanne Michel \n\nPost production : Royal Post\nPost-Production Director : Cindy Durand Paucsik\nEditor : Marco Novoa\nEditor assistant : Térence Nury \nGrader : Vincent Amor\nVFX Supervisor : Julien Laudicina\nGraphic designer : Quentin Mesureux \nGraphic designer : Lucas Ponçon \nFilm Lab Assistant : Hadrian Kalmbach\n\nMusicians:\nFlorian Rossi \nManoli Avgoustinatos\nSimon Schoovaerts \nYoshi Masuda \n\nDancers: \nJuliana Casas\nLydie Alberto \nRobinson Cassarino\nYohann Hebi daher\nChris Fargeot \nAudrey Hurtis \nElodie Hilsum\nDaya jones \nThéophile Bensusan \nBrandon Masele \nJean Michel Premier \nKevin Bago\nAchraf Bouzefour\nPauline Journe \nCaroline Bouquet \nManon Bouquet\nAshley Biscette \nJocelyn Laurent \nOumrata Konan\nKylian Toto\nEnzo Lesne \nSalomon Mpondo-Dicka\nSandrine Monar \nKarl-Ruben Noel\n\n#Stromae #Sante #JimmyFallon", "descriptionLinks": [ { "url": "", "text": "" }, { "url": "", "text": "" }, { "url": "", "text": "" }, { "url": "", "text": "" }, { "url": "", "text": "" }, { "url": "", "text": "" }, { "url": "", "text": "" }, { "url": "", "text": " / @stromae " }, { "url": "", "text": "#Stromae" }, { "url": "", "text": "#Sante" }, { "url": "", "text": "#JimmyFallon" } ], "subtitles": null, "comments": null, "commentsTurnedOff": false }

🎧 YouTube playlist

{ "id": "CdgDLaxe2Q4", "title": "Lecture 4 | String Theory and M-Theory", "duration": "1:23:37", "channelName": "Stanford", "channelUrl": "", "date": "12 years ago", "url": "", "viewCount": 106000, "fromYTUrl": "" }, { "id": "gCyImLu0HSI", "title": "Lecture 3 | String Theory and M-Theory", "duration": "1:45:47", "channelName": "Stanford", "channelUrl": "", "date": "12 years ago", "url": "", "viewCount": 170000, "fromYTUrl": "" }, { "id": "-BleG7PBwEA", "title": "Lecture 2 | String Theory and M-Theory", "duration": "1:48:07", "channelName": "Stanford", "channelUrl": "", "date": "12 years ago", "url": "", "viewCount": 317000, "fromYTUrl": "" }, { "id": "25haxRuZQUk", "title": "Lecture 1 | String Theory and M-Theory", "duration": "1:46:55", "channelName": "Stanford", "channelUrl": "", "date": "12 years ago", "url": "", "viewCount": 2300000, "fromYTUrl": "" }, { "id": "QD8SEcoFyAw", "title": "Lecture 10 | New Revolutions in Particle Physics: Standard Model", "duration": "1:38:20", "channelName": "Stanford", "channelUrl": "", "date": "13 years ago", "url": "", "viewCount": 57000, "fromYTUrl": "" }, { "id": "qzGY-BrCUgA", "title": "Lecture 9 | New Revolutions in Particle Physics: Standard Model", "duration": "1:35:34", "channelName": "Stanford", "channelUrl": "", "date": "13 years ago", "url": "", "viewCount": 54000, "fromYTUrl": "" }, { "id": "fw4K3sgza04", "title": "Lecture 8 | New Revolutions in Particle Physics: Standard Model", "duration": "1:24:00", "channelName": "Stanford", "channelUrl": "", "date": "13 years ago", "url": "", "viewCount": 58000, "fromYTUrl": "" },

🔎 YouTube search results

{ "id": "CwRMBKk8St0", "title": "LET'S ARGUE: Beyoncé Fails the Bechdel Test!", "duration": "13:48", "channelName": "fantano", "channelUrl": "", "date": "5 years ago", "url": "", "viewCount": 635379, "fromYTUrl": "" }, { "id": "k86TWcdjQuM", "title": "This scene is the anti-Bechdel test", "duration": "1:00", "channelName": "Newbie Star Trek", "channelUrl": "", "date": "2 months ago", "url": "", "viewCount": 6907, "fromYTUrl": "" }, { "id": "vKlakrW50QU", "title": "Inside Job passes the bechdel test", "duration": "0:15", "channelName": "Random Daydreamer", "channelUrl": "", "date": "1 year ago", "url": "", "viewCount": 121824, "fromYTUrl": "" }, { "id": "mL5hgNu4y3A", "title": "Jessica Chastain Describes the Importance of the 'Bechdel Test'", "duration": "3:05", "channelName": "theoffcamerashow", "channelUrl": "", "date": "2 years ago", "url": "", "viewCount": 24145, "fromYTUrl": "" }, {

How much will scraping YouTube cost you?

When it comes to scraping, it can be challenging to estimate the resources needed to extract data as use cases may vary significantly. That's why the best course of action is to run a test scrape with a small sample of input data and limited output. You’ll get your price per scrape, which you’ll then multiply by the number of scrapes you intend to do.

Watch this video for a few helpful tips. And don't forget that choosing a higher plan will save you money in the long run.

How to scrape YouTube data

You can scrape YouTube data by search term or a direct URL of a video, search results page, playlist, or channel. If both fields are filled out, the scraper prioritizes the URLs. Check out how to scrape YouTube in this step-by-step tutorial or this video.

How to use data scraped from YouTube

You can use this YouTube API to scrape data in order to:

  • Monitor the market: see mentions of your brand, the position of your content in search results or get insights into the activity of competitors
  • Find current trends and opinions shared by content creators and commenting users
  • Filter your search results based on more advanced criteria
  • Identify harmful or illegal content
  • Scrape subtitles for offline reading or increased accessibility
  • Accumulate information on products and services from video reviews and automate your buying decisions

Need to scrape YouTube comments or Shorts?

Use our designated YouTube Comment Scraper 💬 or Shorts Scraper ✂️. If you need to download scraped YouTube videos, you can use YouTube Video Downloader ⬇️. We also have other video-related scrapers in stock for you; to see more of those, check out the Video APIs in Apify Store or the compilation of Social media scrapers.


Can I scrape dislikes from YouTube videos?

No. Both dislike and details properties have been removed altogether from new versions. Dislikes are not public info so you cannot scrape them.

Can I scrape subtitles from YouTube videos?

Yes. You can scrape all publicly available data from YouTube using a web scraper, including subtitles. Using this scraping tool, you can extract both autogenerated and added subtitles in SRT, WEBVTT, XML, or plain text format.

Can I integrate this YouTube scraper with other apps?

Last but not least, YouTube Scraper can be connected with almost any cloud service or web app thanks to integrations on the Apify platform. You can integrate with LangChain, Make, Trello, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive, Asana, and more.

You can also use webhooks to carry out an action whenever an event occurs, e.g., get a notification whenever YouTube Scraper successfully finishes a run.

Can I use YouTube Scraper with the API?

The Apify API gives you programmatic access to the Apify platform. The API is organized around RESTful HTTP endpoints that enable you to manage, schedule, and run Apify actors. The API also lets you access any datasets, monitor actor performance, fetch results, create and update versions, and more.

To access the API using Node.js, use the apify-client NPM package. To access the API using Python, use the apify-client PyPI package. Check out the Apify API reference docs for full details or click on the API tab for code examples.

Should I use a proxy when scraping YouTube?

Just like with other social media-related actors, using a proxy is essential if you want your scraper to run properly. You can either use your own proxy or stick to the default Apify Proxy servers. Datacenter proxies are recommended for use with this Actor.

Scraping YouTube is legal as long as you adhere to regulations concerning copyright and personal data. This scraper deals with cookies and privacy consent dialogs on your behalf, so be aware that the results from your YouTube scrape might contain personal information.

Personal data is protected by GDPR (EU Regulation 2016/679), and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, please consult your lawyers. You can also read our blog post on the legality of web scraping.

Your feedback

We're always working on improving the performance of our Actors. So if you've got any technical feedback on YouTube Scraper, or simply found a bug, please create an issue on the Actor's Issues tab in Apify Console.