# YouTube Video Data Extractor (`sandaliaapps/youtube-video-data-extractor`) Actor

Extract detailed and structured data from YouTube videos, channels, and playlists — no API key required.

- **URL**: https://apify.com/sandaliaapps/youtube-video-data-extractor.md
- **Developed by:** [Sandalia Apps](https://apify.com/sandaliaapps) (community)
- **Categories:** Social media, Videos, SEO tools
- **Stats:** 44 total users, 0 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## 🧠 YouTube Video Data Extractor

**Extract rich and structured video data from any YouTube channel, playlist, or video URL with the YouTube Video Data Extractor — your all-in-one solution for collecting YouTube insights at scale.**\
Built by [Sandalia Apps](https://apify.com/sandaliaapps), creators of powerful data extraction tools.

***

### 🔍 What This Actor Does

The **YouTube Video Data Extractor** enables effortless scraping of:

- 🔗 **Video URLs**
- 📺 **Channel pages (@handle)**
- 📃 **Playlists**

It returns structured metadata including:

- 🎞️ Title, description, tags, and duration
- 📆 Upload date and publish time
- 👁️ Views, 👍 likes, 💬 comments
- 🧑‍💼 Channel name and ID
- 🖼️ Thumbnail and video URLs
- 📊 Video category, language, and captions (if available)

***

### ✅ Key Benefits

- 🔓 **No YouTube API key needed** — Avoid rate limits and quota restrictions.
- ⏱️ **Real-time scraping** — Always up-to-date results directly from YouTube.
- 🧾 **Structured output** — Export as JSON, CSV, or Excel for use in dashboards, automations, or research.
- ⚡ **Fast & Scalable** — Process hundreds of URLs in a single run.
- 🔧 **Easy automation** — Schedule runs, use webhooks, or integrate via API.

***

### 💡 Use Cases

- 📈 **Market & Competitive Analysis** — Track competitors’ performance.
- 🎯 **SEO Strategy** — Extract video tags and metadata to optimize your content.
- 📰 **Journalism & Research** — Collect public data for reporting and academic work.
- 🤖 **Automation & Monitoring** — Integrate with workflows or notification systems.

***

### 🛠️ How to Use

**Video data can be extracted either from a list of channel @handles list or a video list**

1. Set "channel" to true if you want to extract data from list of YouTube Channel @handles or false for a list of video (default is true)
2. Provide one or more YouTube channel URLs (if you want extractor data from channels).
3. Provide one or more YouTube video URLs (if you want extractor data from videos).
4. Set "maxItems" if you set "channel" to true (default 5).
5. Use Datacenter or Residential proxies. Otherwise, Requests will be sent from Apify servers. There is a high chance of blocking.
6. Download structured output in your preferred format.

Supports:

- Channel  @handles
- A list of video links
- Playlist links

***

### 📁 Sample Output (JSON)

```json
[
  {
    "url": "https://www.youtube.com/watch?v=qIdYvsTwGp0",
    "title": "Learn Python From The Beginning - 03: Variables - part 2",
    "description": "Learn Python From The Beginning - 03: Variables - part 2\n\nGlobal Variables\nVariables that are created outside of a function (as in all of the examples above) are known as global variables.\nGlobal variables can be used by everyone, both inside of functions and outside.\n\nExample\nCreate a variable outside of a function, and use it inside the function\nx = \"awesome\"\ndef myfunc():\n  print(\"Python is \" + x)\nmyfunc()\n\nIf you create a variable with the same name inside a function, this variable will be local, and can only be used inside the function. The global variable with the same name will remain as it was, global and with the original value.\n\nExample\nCreate a variable inside a function, with the same name as the global variable\nx = \"awesome\"\ndef myfunc():\n  x = \"fantastic\"\n  print(\"Python is \" + x)\nmyfunc()\nprint(\"Python is \" + x)\n\nThe global Keyword\nNormally, when you create a variable inside a function, that variable is local, and can only be used inside that function.\nTo create a global variable inside a function, you can use the global keyword.\n\nExample\nIf you use the global keyword, the variable belongs to the global scope:\ndef myfunc():\n  global x\n  x = \"fantastic\"\nmyfunc()\nprint(\"Python is \" + x)\n\nAlso, use the global keyword if you want to change a global variable inside a function.\n\nExample\nTo change the value of a global variable inside a function, refer to the variable by using the global keyword:\nx = \"awesome\"\ndef myfunc():\n  global x\n  x = \"fantastic\"\nmyfunc()\nprint(\"Python is \" + x)\n\n\n#PythonVariables #Variables #GettingStartedWithPython #PythonVariable #PythonComment #PythonTutorial #LearnPythonFromScratch #PythonForBeginners #LearnPythonFromBeginning #LearnPython #PythonIntroduction #GetStartedWithPython #HowToLearnPython",
    "channel": "Sandalia Apps",
    "channel_id": "UCu83kMG2jkfa7NPrfEoxA6w",
    "video_id": "qIdYvsTwGp0",
    "duration": "865",
    "keywords": [
      "python tutorial",
      "Learn Python From Scratch",
      "Learn Python From Beginning",
      "Learn Python",
      "Python Introduction",
      "Get Started with Python",
      "How to Learn Python",
      "Python for Beginners",
      "Getting Started With Python",
      "Python Variables",
      "Python Variable"
    ],
    "view_count": "36",
    "like_count": "2",
    "is_shorts": false,
    "publish_date": "2020-05-12T07:56:57-07:00"
  },
  {
    "url": "https://www.youtube.com/watch?v=KSNGDPTZeJo&pp=0gcJCccJAYcqIYzv",
    "title": "Learn Python From The Beginning - 04: Data Types",
    "description": "Learn Python From The Beginning - 04: Data Types\n\nIn programming, data type is an important concept.\nVariables can store data of different types, and different types can do different things.\nPython has data types built-in by default.\n\nThere are 7 categories of data types built-in in Python. These 7 categories have subcategories as well. I will describe some of them in short which are important for beginners, but of course I will discuss them in details on separate episodes in coming videos.\n\nText Type: \nStr: The string is a sequence of characters. Python supports Unicode characters. Generally, strings are represented by either single or double quotes.\n\nNumeric Types: \n• int – holds signed integers of non-limited length.\n• float- Any real number with a floating point representation in which a fractional component is denoted by a decimal symbol or scientific notation.\n• complex- holds complex numbers.\nIn Python we need not to declare datatype while declaring a variable like C or C++. We can simply just assign values in a variable. \n\nSequence Types: \nList: The list is a versatile data type exclusive in Python. In a sense, it is the same as the array in C/C++. But the interesting thing about the list in Python is it can simultaneously hold different types of data. Formally list is an ordered sequence of some data written using square brackets([]) and commas(,).\n\nTuple: Tuple is another data type which is a sequence of data similar to list. But it is immutable. That means data in a tuple is write protected. Data in a tuple is written using parenthesis and commas.\n\nRange:\nMapping Type: \nDict: Python Dictionary is an unordered sequence of data of key-value pair form. It is similar to the hash table type. Dictionaries are written within curly braces in the form key:value. It is very useful to retrieve data in an optimized way among a large amount of data.\n\nSet Types: set, frozenset\nBoolean Type: \nBool: Data with one of two built-in values True or False. Notice that 'T' and 'F' are capital. true and false are not valid booleans and Python will throw an error for them.\nBinary Types: bytes, bytearray, memoryview\n\n#GettingStartedWithPython #PythonVariable #PythonComment #PythonTutorial #LearnPythonFromScratch #PythonForBeginners #LearnPythonFromBeginning #LearnPython #PythonIntroduction #GetStartedWithPython #HowToLearnPython #PythonDataTypes #PythonDataType",
    "channel": "Sandalia Apps",
    "channel_id": "UCu83kMG2jkfa7NPrfEoxA6w",
    "video_id": "KSNGDPTZeJo",
    "duration": "1095",
    "keywords": [
      "python tutorial",
      "Learn Python From Scratch",
      "Learn Python From Beginning",
      "Learn Python",
      "Python Introduction",
      "Get Started with Python",
      "How to Learn Python",
      "Python for Beginners",
      "Getting Started With Python",
      "Python Variables",
      "Python Variable",
      "Python Data Types",
      "data types",
      "Python Data Type"
    ],
    "view_count": "25",
    "like_count": "1",
    "is_shorts": false,
    "publish_date": "2020-05-16T08:11:54-07:00",
    "transcript": "हेलो हेलो फ्रेंड्स वेलकम बैक टू द फर्स्ट\nप्रेसिडेंट ऑफ प्लांट पाइथन फॉर द\nबिगिनिंग टुडे स्पीच टुडे स्टॉप थिस डाटा\nटाइप्स ऑफ\nकि इन प्रोग्रामिंग लैंग्वेज जो टाइप\nइंपॉर्टेंट कांटेक्ट पिंपल्स कैन स्टोर -\nडिफरेंट टाइप्स एंड डिफरेंट टाइप्स एंड\nडिफरेंट थिंग्स पाइथन है बॉस\n360 कैटिगरी सब पेटीएम डाटा सेव बाय\nडिफॉल्ट\nकि निमली टेक्सटाइल न्यूमैरिक टाइप\nसीक्वेंस टाइप्स मैपिंग टेस्ट साइज बुलियन\nटाइप्स आफ माइनर डीटेल्स\n21 टाइम्स हैव शोन ठाट एवरी डे थिस ट्री\nन्यू मेज़ पे गोल्ड इन रिटर्न फॉर\nकंपलेक्स सब्सक्राइब रेंज सब्सक्राइब\nडिक्शनरी सबस्क्राइब इंडियन ओनली ओंस एवरी\nडे थिस टाइप सब्सक्राइब करें और\nसब्सक्राइब माध्यम इन शॉर्ट ई चैनल न\nसब्सक्राइब\nहै सो लेट्स जंप इनटू द डाटा इट्स टाइप्स\nआफ हिस ओनली ओंस आफ्टर एवरी डे थिस ट्री\nतो व्हाट इस ट्रिम भ्रष्ट मीडिया सीक्वेंस\nआफ कैरेक्टर पाइथन स्पोर्ट्स यूनिकोड\nट्रैक्टर्स जनरली चीन सर रिप्रेजेंटेड बाय\nऐिदर सिंगल और डबल को चुनाव जंप इनटू राइट\nसम कोड तो यह जो है इसीलिए रिफ्लेक्स इस\nकंट्री इस कांटेस्ट टीम ऑसम विड्रॉल टू-डू\nलिस्ट पीर वुट रूल शुरू हुई ए सिंगल सिंगल\nकोट पैंट ओं\nहैं लेट्स पिन थिस\nMP3\nकि एक्स एक्स\nएक पप्पी दे दे\nहुआ था\nकी प्रिंट वाले हैं\nइस प्लेटफॉर्म देश है\nकि मेरे जल 12% फंटास्टिक है\nकि एसेसमेंट फंटास्टिक सो सिंगल कोट सिंगल\nकोर सेंड डबल कोर्स बहुत वॉक पर क्रेडिट\nहै next9news न्यूमेरिकल्स ओं\nएक नींबू रिटेक शास्त्री लैपटॉप रिसर्च\nमैं आरती डाटा इज इंतजार रोड कंपलेक्स ओं\nमैं इंतजार इंतजार होल्ड्स साइन इन थे\nरिजल्ट्स आफ नॉर्दर्न लिमिट लेंथ\nझाल\nमैं तो कह दो\nमैं इंतजार\nको फोल्ड\nकुछ नेगेटिव और पॉजिटिव नेगेटिव और\nपॉजिटिव फूल नंबर वेस्टेड इंटरेस्ट्स आफ\nलाइव T20 फुल नंबर है\nकि एंड लूज स्ट्र्स - 20 इनवेरिएबल थिस\nस्कूल\nकि ने गणित नंबर बांट नोटिफिकेशन नंबर और\nडेसिमल वैल्यूज डेसिमल प्वाइंट वैल्यूज\nमैं सऊदी सी एक्स एंड वेरिएबल होल्ड्स 20\n- चैनल\nव्यू 10 मोर नंबर्स well-planned दिस शो\nइस प्लेटफॉर्म जूस\nथे पेन एंड - डुबा वन माइनस वन पिंपल\nसॉपडिश 34 इंटर इंटर विजय फूल नंबर विच\nकैन वी नेगेटिव और पॉजिटिव नंबर्स बट नॉट\nफंक्शन नंबर दो\nकि आपके नेक्स्ट प्राइस थ्रू एनी रियल\nनंबर विजय फ्लोटिंग प्वाइंट प्रेजेंटेशन\nइन हिस चीफ जनरल कंपार्टमेंट इस जेट्ट\nडिनोटेड बाय नेशनल सिंबल और साइंटिफिक\nनोटेशन है\nओके\nके लिए सिंपली अंडरस्टैंड बैक प्रोटीन शेष\nसेक्शन नंबर और रोटिंग पॉइंट को इस चीज\nएडिशनल सिंबल सोंठ सोंठ डिफरेंस बिटवीन\nएंड लिसन\nकि रोटी जाए 10.2 इसे प्लेट विशेष डेसिमल\nप्वाइंट एंड समझ लो\nहु इज शो एक प्रोडक्ट सोम इंतजार इसे फूल\nनंबर दैट कैन बी नेगेटिव और पॉजिटिव\nवोटिंग नंबर इस नंबर और ड्यूल प्रॉयर और\nरोटिंग होरमोन नंबर 1600 गर्ल इन दो\nए कंपलेक्स next9news कंपलेक्स कांपलेक्स\nमें टाइप होल्ड कंपलेक्स नंबर पे कांटेक्ट\nनंबर 34 ओके इंतजार फ्लैश लाइट\nकॉन्प्लेक्शन अधैर्य है इसको नंबर देंगे\nनंबर 11\n1000 ई\n1000 कंपलेक्स नंबर है\nझाल\nकि जेल शब्द लूप की वीडियोस\n110 352 एंड एरोज आप इसे कंपलेक्स नंबर\nओके लिस्ट चम्मच द नेक्स्ट स्टेप\nसिक्यूरिटी\nथे सबकैटिगरी बट ऑयल डिस्कस सॉलिड टू\nलिस्ट टो ऑल\nकि उन्नाव\nयह सलेक्ट दृष्टि से भी WhatsApp पर डाटा\nटाइप एक्सक्लूसिव इन पाइथन इन एसेंस इज द\nनेम ऑफ द ईयर इन सी प्लस स्पीड और सम अदर\nलैंग्वेज पौन इंच पर ए बर्ड इंटरेस्टिंग\nथिंग अबाउट द लिस्ट इन पाइथन इज इट इज इट\nमैन सिमुल्टेनियसली होल डिफरेंट टाइप्स आफ\nओके सो व्हाट इस द डिफरेंस बिटवीन द\nलैंग्वेज इन थे लिस्ट एंड डिफरेंट टाइप्स\nआफ ली है\nकि पके और मावली स्टेशन और सिक्वेंस आफ्टर\nरिटर्निंग स्क्वायर फिट एंड कॉमर्स सो\nलेट्स राइट वन है\nअरे यार एक स्पेस एंड रिमूव्ड थे रेस्ट\nके लिए के ट्विस्ट सो लेट्स यू सर\nमार्केट्स लीस्ट स्क्वेयर ब्रैकेट्स एंड\nहेलो हेलो सर छिपा रिटन बाय कुमार सौवीर\nविसवॉ निर्माण टू हमारा थ्री लिसन एंड मोर\nबट ड्यू टो साइन थिस टो बे एक्सप्रेस्ड\nपौन इंच ओके बेस्ट 20.23\nमैं उज्जैन\nअरे यार 10:00 अदर प्लीज मेरे बोल\nकि यह\nझाल\nकि एप्स\nका प्लेलिस्ट\nअजय को\nओके बी\nकि एनसीपी\nए प्लेस पिंटू आए\nए बी सी डी\nहैं लेट्स क्रिएट अनदर ब्रिक इन थे वॉल\nकि 108 जेट\nई विश ऑल कंटेंट्स फॉर नंबर्स पौन इंच\nहाउ टू\nकि एस बीइंग\nहुआ था\nमैं ना पहनू चैट\nई वांट टू बेबी सॉरी स्टेटस प्रिंट अश्लील\nह\n102\nप्ले लिस्ट इन पाइथन टैटू 0n पौधा अकाउंट\n100 200 स्वॉर्न इन थे अपोजिशन ओं\nसेट ए पोजिशन आफ थिस टू एंड पोजिशन आफ\n20351 प्रिंट एनी पार्टिकुलर वन कैन\nइंडिकेट सो नेक्स्ट टाइम\nभी करवा कट 1235 ई वांट टो प्रिंट ए प्लेन\nuie इंटीरियर पोर्शन नंबर 02 एडिट\nकि एंड यू वांट टो प्रिंट कौन बेनिफिट फॉर\nजिओ फोन\nहै तो कुल स्वदेशी लिस्ट\n102\nकि नाव तो कल है\nटॉप टूरिज्म अब एडिटर टाइप विसिससीट्यूटस\nआफ डाटा सिमिलर टू-डू लिस्ट को कॉल सिमिलर\nटो लिस्ट 6280 टेबल टेनिस डाटा इन ए\nटॉपलैस राइट प्रोटेक्टेड थे डाटा इन ए टॉप\nरेटेड यूजिंग पेरेंट्स इस संक्रमण डिफरेंस\nबिटवीन लिस्ट टॉप टॉप राइट प्रोटेक्टेड\nएंड थिस टाइम टो रिटेन टीचर्स इन अप\nहैं लेट्स गेट सोम न्यू रिवार्ड्स\nकि अ\nई विल पुट ए स्टॉप करो इंतजार नंबरों इलेश\nके टप्पल इंतजार 123\nए पपेट पेरेंट्स इस इस इस\nअलार्म को सेट करो\nऔर सुनाओ\nमें प्रिंटेड 123\nझाल\nथे सेम\nऔर जेस्ट\nकि वे ऑयल\nएक टेक्स यादव राकेश को\nशो मोर\nकर दो\nहां जरूर\nहेलो हेलो\nएक मैसेज सुनें\nअजय को\nकि आई है\nअजय को\nकि गांव रे next9news रैंस बट ई एम नॉट\nगोइंग टो डिसकस इग्नॉउ हुई ए डिस्कस रेंज\nऔर संप्रभु आदर्श इंटर लुट-लुट डिक्शनरी\nडिक्शनरी डिक्शनरी इन ऑर्डर टो बे सिमिलर\nटो रिटर्न फॉर्म की डेट वास लास्ट अपडेटेड\nओं\nझाल\nकि एग्जांपल ऑफ\nए के 47\nमां काली बेसिस\nमैं इन्हें लोफर पहलू इस\nकि फिल्म\nकि शो की वन एंड फॉलो हिस नेम ऑफ करें\nआज के वीडियो बोल नाचेगी\nकि यह वीडियो बम है\nकि पीएम वैल्यू कियान उल्लू\nकि आपके और यह प्रिंट\nयह हलवा कौन जस्ट\nकी परवाह टेस्ट एंड कैल्वेस इस 100% है\nहै नीम चौक डिशनरी एंड अनदर टैब्स सेट अप\n8 डाउन 6\nकि एंड गोइंग टो डिसकस थिस टू आईएस अनदर\nब्रिलिएंट आप Play Store बिलियन डे -\nअिववािहत है\n124 फॉलोअर्स\nझाल\nए रूल यह bullion321\nलव यू आर पार जूलियन भोलू दष्ट पी\nकि पिस्टल टीम और अकेले सी बुलियन भालू\nको चूर पाल चोर प्लेटेड अवेलेबल एप इन\nइट्स ट्रू लव\nकि विज्ञान दुबई जो\nको कॉल सो लेट्स कीप इक्वल एंड\nथे प्लेयर्स पे\nमें अवेलेबल ओं\nकि अभिषेक बिल्कुल वाइट\nहै और दिस इज बुलियन इट प्राउड चेक टू और\nफल टाइप्स इन इट्स ए\nMP3\nयह विचार 2222 ठहरे मेमोरियल यू बट ई एम\nगोइंग टो गिव ए ग्रैजुएल सेटिंग व्यवसाई\nने लुटाए सीधे-सीधे लुट लुट लुट लुट ली\nसब्सक्राइब डू द स्पेसिफिक डाटा इज यूज टू\nस्पेसिफाइड इन थे टाइड इन थे रिवर साइड\nइसको स्टर फंक्शन है\nMP3 ऑटोमेटिकली स्टार्ट चीन भलोई इनके\nधैर्य बोल दो\nमैं उदयपुर डिस्टिक आफ्टर फंक्शन बाट बीच\nसीरवी कैन सी व्हाट लाइक दिस और विज्ञान\nसे इंतजार शॉर्ट एस्से फॉर दिस वीडियो\nलिस्ट बंद स्टोन Please subscribe To My\nChannel and Hit The Bell Icon to get\nनोटिफिकेशन होने पर आधे नहीं वीडियो\nडिसाइड्स लीव ए कमेंट आईएफ यू हैव एनी\nक्वेश्चंस और सक्षम एंड ड्रयू लाइक एंड\nशेयर माय वीडियोस थैंक्यू रिवर्स मेज़\nकि अ"
  }
]
```

### 🔗 More Actors by Sandalia Apps

Take your automation to the next level with our other tools:

- [**TikTok User Data Extractor**](https://apify.com/sandaliaapps/TikTok-User-Data-Extractor) – ⚡️ Extract thousands of TikTok profiles in minutes!
- [**Onlyfan Profile Scraper**](https://apify.com/sandaliaapps/onlyfan-profile-scraper) – Scrapes profile data in bulk with all details including, name, bio, last online, engagement insights, social media urls, etc
- [**Fansly Profile Scraper**](https://apify.com/sandaliaapps/fansly-profile-scraper) – Fansly Profile Scraper scrapes profile data in bulk with all details

***

### 👨‍💻 Developed by Sandalia Apps

We're a team of automation engineers passionate about building smart, scalable scrapers for content platforms.\
💼 For custom solutions or support, feel free to [contact us](https://sandalia.com.bd/apps).

# Actor input Schema

## `channel` (type: `boolean`):

Extract video data from channel video or from list of specific videos

## `channelIDs` (type: `array`):

Channel IDs for extraction video stats, metadata and transcripts.

## `videoLinks` (type: `array`):

Video Links for extraction video stats, metadata and transcripts.

## `maxItems` (type: `integer`):

Limits the maximum number of results, applies to each search separately.

## `proxySettings` (type: `object`):

Select proxies to be used by scraper.

## Actor input object example

```json
{
  "channel": true,
  "channelIDs": [
    "SandaliaApps"
  ],
  "videoLinks": [
    "https://www.youtube.com/watch?v=KSNGDPTZeJo&pp=0gcJCccJAYcqIYzv",
    "https://www.youtube.com/watch?v=qIdYvsTwGp0"
  ],
  "maxItems": 5,
  "proxySettings": {
    "useApifyProxy": true
  }
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "channel": true,
    "channelIDs": [
        "SandaliaApps"
    ],
    "videoLinks": [
        "https://www.youtube.com/watch?v=KSNGDPTZeJo&pp=0gcJCccJAYcqIYzv",
        "https://www.youtube.com/watch?v=qIdYvsTwGp0"
    ],
    "proxySettings": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("sandaliaapps/youtube-video-data-extractor").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "channel": True,
    "channelIDs": ["SandaliaApps"],
    "videoLinks": [
        "https://www.youtube.com/watch?v=KSNGDPTZeJo&pp=0gcJCccJAYcqIYzv",
        "https://www.youtube.com/watch?v=qIdYvsTwGp0",
    ],
    "proxySettings": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("sandaliaapps/youtube-video-data-extractor").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "channel": true,
  "channelIDs": [
    "SandaliaApps"
  ],
  "videoLinks": [
    "https://www.youtube.com/watch?v=KSNGDPTZeJo&pp=0gcJCccJAYcqIYzv",
    "https://www.youtube.com/watch?v=qIdYvsTwGp0"
  ],
  "proxySettings": {
    "useApifyProxy": true
  }
}' |
apify call sandaliaapps/youtube-video-data-extractor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,sandaliaapps/youtube-video-data-extractor"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/6TAYl4lE0wu6pS9rj/builds/zMFDZO79EojQ0MYq3/openapi.json
