YouTube Scraper avatar

YouTube Scraper

Try for free

Pay $5.00 for 1,000 videos

Go to Store
YouTube Scraper

YouTube Scraper

streamers/youtube-scraper
Try for free

Pay $5.00 for 1,000 videos

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.

You can access the YouTube Scraper programmatically from your own applications by using the Apify API. You can choose the language preference from below. To use the Apify API, you’ll need an Apify account and your API token, found in Integrations settings in Apify Console.

1{
2  "openapi": "3.0.1",
3  "info": {
4    "version": "0.0",
5    "x-build-id": "lMdOWP7OSUYdJZlkl"
6  },
7  "servers": [
8    {
9      "url": "https://api.apify.com/v2"
10    }
11  ],
12  "paths": {
13    "/acts/streamers~youtube-scraper/run-sync-get-dataset-items": {
14      "post": {
15        "operationId": "run-sync-get-dataset-items-streamers-youtube-scraper",
16        "x-openai-isConsequential": false,
17        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
18        "tags": [
19          "Run Actor"
20        ],
21        "requestBody": {
22          "required": true,
23          "content": {
24            "application/json": {
25              "schema": {
26                "$ref": "#/components/schemas/inputSchema"
27              }
28            }
29          }
30        },
31        "parameters": [
32          {
33            "name": "token",
34            "in": "query",
35            "required": true,
36            "schema": {
37              "type": "string"
38            },
39            "description": "Enter your Apify token here"
40          }
41        ],
42        "responses": {
43          "200": {
44            "description": "OK"
45          }
46        }
47      }
48    },
49    "/acts/streamers~youtube-scraper/runs": {
50      "post": {
51        "operationId": "runs-sync-streamers-youtube-scraper",
52        "x-openai-isConsequential": false,
53        "summary": "Executes an Actor and returns information about the initiated run in response.",
54        "tags": [
55          "Run Actor"
56        ],
57        "requestBody": {
58          "required": true,
59          "content": {
60            "application/json": {
61              "schema": {
62                "$ref": "#/components/schemas/inputSchema"
63              }
64            }
65          }
66        },
67        "parameters": [
68          {
69            "name": "token",
70            "in": "query",
71            "required": true,
72            "schema": {
73              "type": "string"
74            },
75            "description": "Enter your Apify token here"
76          }
77        ],
78        "responses": {
79          "200": {
80            "description": "OK",
81            "content": {
82              "application/json": {
83                "schema": {
84                  "$ref": "#/components/schemas/runsResponseSchema"
85                }
86              }
87            }
88          }
89        }
90      }
91    },
92    "/acts/streamers~youtube-scraper/run-sync": {
93      "post": {
94        "operationId": "run-sync-streamers-youtube-scraper",
95        "x-openai-isConsequential": false,
96        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
97        "tags": [
98          "Run Actor"
99        ],
100        "requestBody": {
101          "required": true,
102          "content": {
103            "application/json": {
104              "schema": {
105                "$ref": "#/components/schemas/inputSchema"
106              }
107            }
108          }
109        },
110        "parameters": [
111          {
112            "name": "token",
113            "in": "query",
114            "required": true,
115            "schema": {
116              "type": "string"
117            },
118            "description": "Enter your Apify token here"
119          }
120        ],
121        "responses": {
122          "200": {
123            "description": "OK"
124          }
125        }
126      }
127    }
128  },
129  "components": {
130    "schemas": {
131      "inputSchema": {
132        "type": "object",
133        "properties": {
134          "searchQueries": {
135            "title": "Search terms",
136            "type": "array",
137            "description": "Enter search terms just like you would enter it in YouTube's search bar.",
138            "items": {
139              "type": "string"
140            }
141          },
142          "maxResults": {
143            "title": "Maximum videos",
144            "minimum": 0,
145            "maximum": 999999,
146            "type": "integer",
147            "description": "Limit the number of videos you want to crawl. If you scrape a channel, acts as a limit for regular videos.",
148            "default": 0
149          },
150          "maxResultsShorts": {
151            "title": "Maximum shorts",
152            "minimum": 0,
153            "maximum": 999999,
154            "type": "integer",
155            "description": "Limit the number of Shorts videos you want to crawl.",
156            "default": 0
157          },
158          "maxResultStreams": {
159            "title": "Maximum streams",
160            "minimum": 0,
161            "maximum": 999999,
162            "type": "integer",
163            "description": "Limit the number of Stream videos you want to crawl.",
164            "default": 0
165          },
166          "startUrls": {
167            "title": "Direct URLs",
168            "type": "array",
169            "description": "Enter a link to a <a href='https://www.youtube.com/watch?v=xObhZ0Ga7EQ' target='_blank' rel='noopener'>YouTube video</a>, <a href='https://www.youtube.com/c/Apify' target='_blank' rel='noopener'>channel</a>, <a href='https://www.youtube.com/playlist?list=PLObrtcm1Kw6PmbXg8bmfJN-o2Hgx8sidf' target='_blank' rel='noopener'>playlist</a>, <a href='https://www.youtube.com/hashtag/apify' target='_blank' rel='noopener'>hashtag</a> or <a href='https://www.youtube.com/results?search_query=crawlee' target='_blank' rel='noopener'>search results page</a>. You can also import a CSV file or Google Sheet with a list of URLs.<br><b>Note:</b> Input from <i>Search term</i> will be ignored when using this option. If you only want to scrape shorts/streams, set Maximum search results to 0, otherwise they represented number of regular videos requested",
170            "default": [],
171            "items": {
172              "type": "object",
173              "required": [
174                "url"
175              ],
176              "properties": {
177                "url": {
178                  "type": "string",
179                  "title": "URL of a web page",
180                  "format": "uri"
181                }
182              }
183            }
184          },
185          "downloadSubtitles": {
186            "title": "Download subtitles",
187            "type": "boolean",
188            "description": "If set to true, the scraper will download subtitles for the video and convert them to .srt format."
189          },
190          "saveSubsToKVS": {
191            "title": "Save subtitles to key-value store",
192            "type": "boolean",
193            "description": "If set to true, the scraper will save the downloaded subtitles to the key-value store. <br><b>Note:</b> <i>Download subtitles</i> must be turned on for this option to work."
194          },
195          "subtitlesLanguage": {
196            "title": "Subtitle language",
197            "enum": [
198              "any",
199              "en",
200              "de",
201              "es",
202              "fr",
203              "it",
204              "ja",
205              "ko",
206              "nl",
207              "pt",
208              "ru"
209            ],
210            "type": "string",
211            "description": "Language to download subtitles in.<br><b>Note:</b> <i>Download subtitles</i> must be turned on for this option to work.",
212            "default": "any"
213          },
214          "preferAutoGeneratedSubtitles": {
215            "title": "Prefer automatically generated subtitles.",
216            "type": "boolean",
217            "description": "If set to true, automatically generated subtitles are preferred to user subtitles.<b>Note:</b> A subtitle language must be selected for this option to work."
218          },
219          "subtitlesFormat": {
220            "title": "Subtitle format",
221            "enum": [
222              "srt",
223              "vtt",
224              "xml",
225              "plaintext"
226            ],
227            "type": "string",
228            "description": "Select in what format you want to download subtitles",
229            "default": "srt"
230          },
231          "sortingOrder": {
232            "title": "Sorting order",
233            "enum": [
234              "relevance",
235              "rating",
236              "date",
237              "views"
238            ],
239            "type": "string",
240            "description": "Select Youtube sorting parameter for search"
241          },
242          "dateFilter": {
243            "title": "Date filter",
244            "enum": [
245              "hour",
246              "today",
247              "week",
248              "month",
249              "year"
250            ],
251            "type": "string",
252            "description": "Select Youtube upload date filter for search"
253          },
254          "videoType": {
255            "title": "Video type filter",
256            "enum": [
257              "video",
258              "movie"
259            ],
260            "type": "string",
261            "description": "Select Youtube video type filter for search"
262          },
263          "lengthFilter": {
264            "title": "Length filter",
265            "enum": [
266              "under4",
267              "between420",
268              "plus20"
269            ],
270            "type": "string",
271            "description": "Select Youtube video length filter for search"
272          },
273          "isHD": {
274            "title": "HD",
275            "type": "boolean",
276            "description": "Will apply the HD filter for search"
277          },
278          "hasSubtitles": {
279            "title": "Subtitles/CC",
280            "type": "boolean",
281            "description": "Will apply the Subtitles/CC filter for search"
282          },
283          "hasCC": {
284            "title": "Creative Commons",
285            "type": "boolean",
286            "description": "Will apply the Creative Commons filter for search"
287          },
288          "is3D": {
289            "title": "3D",
290            "type": "boolean",
291            "description": "Will apply the 3D filter for search"
292          },
293          "isLive": {
294            "title": "Live",
295            "type": "boolean",
296            "description": "Will apply the Live filter for search"
297          },
298          "isBought": {
299            "title": "Purchased",
300            "type": "boolean",
301            "description": "Will apply the Purchased filter for search"
302          },
303          "is4K": {
304            "title": "4K",
305            "type": "boolean",
306            "description": "Will apply the 4K filter for search"
307          },
308          "is360": {
309            "title": "360 degrees",
310            "type": "boolean",
311            "description": "Will apply the 360 degrees filter for search"
312          },
313          "hasLocation": {
314            "title": "Location",
315            "type": "boolean",
316            "description": "Will apply the Location filter for search"
317          },
318          "isHDR": {
319            "title": "HDR",
320            "type": "boolean",
321            "description": "Will apply the HDR filter for search"
322          },
323          "isVR180": {
324            "title": "VR180",
325            "type": "boolean",
326            "description": "Will apply the VR180 filter for search"
327          },
328          "oldestPostDate": {
329            "title": "Only newer than (e.g. 2023-06-15)",
330            "type": "string",
331            "description": "Only posts uploaded after or on this date will be scraped. Note, that if you select this, sorting parameter will be auto-reset to NEWEST"
332          },
333          "scrapeLastNDays": {
334            "title": "Videos from last (e.g. 2) days",
335            "minimum": 1,
336            "type": "integer",
337            "description": "Specify how old scraped videos can be (in days). Putting <code>1</code> will get you only today's videos, <code>2</code> - tomorrow's and today's, and so on. If the <code>Only newer than</code> field was set, the most recent one will be chosen. Note, that if you select this, sorting parameter will be auto-reset to NEWEST"
338          },
339          "sortVideosBy": {
340            "title": "Sort by",
341            "enum": [
342              "NEWEST",
343              "POPULAR",
344              "OLDEST"
345            ],
346            "type": "string",
347            "description": "Maps to the sorting buttons on the top of the channel's 'Videos', 'Shorts' and 'Live' pages."
348          }
349        }
350      },
351      "runsResponseSchema": {
352        "type": "object",
353        "properties": {
354          "data": {
355            "type": "object",
356            "properties": {
357              "id": {
358                "type": "string"
359              },
360              "actId": {
361                "type": "string"
362              },
363              "userId": {
364                "type": "string"
365              },
366              "startedAt": {
367                "type": "string",
368                "format": "date-time",
369                "example": "2025-01-08T00:00:00.000Z"
370              },
371              "finishedAt": {
372                "type": "string",
373                "format": "date-time",
374                "example": "2025-01-08T00:00:00.000Z"
375              },
376              "status": {
377                "type": "string",
378                "example": "READY"
379              },
380              "meta": {
381                "type": "object",
382                "properties": {
383                  "origin": {
384                    "type": "string",
385                    "example": "API"
386                  },
387                  "userAgent": {
388                    "type": "string"
389                  }
390                }
391              },
392              "stats": {
393                "type": "object",
394                "properties": {
395                  "inputBodyLen": {
396                    "type": "integer",
397                    "example": 2000
398                  },
399                  "rebootCount": {
400                    "type": "integer",
401                    "example": 0
402                  },
403                  "restartCount": {
404                    "type": "integer",
405                    "example": 0
406                  },
407                  "resurrectCount": {
408                    "type": "integer",
409                    "example": 0
410                  },
411                  "computeUnits": {
412                    "type": "integer",
413                    "example": 0
414                  }
415                }
416              },
417              "options": {
418                "type": "object",
419                "properties": {
420                  "build": {
421                    "type": "string",
422                    "example": "latest"
423                  },
424                  "timeoutSecs": {
425                    "type": "integer",
426                    "example": 300
427                  },
428                  "memoryMbytes": {
429                    "type": "integer",
430                    "example": 1024
431                  },
432                  "diskMbytes": {
433                    "type": "integer",
434                    "example": 2048
435                  }
436                }
437              },
438              "buildId": {
439                "type": "string"
440              },
441              "defaultKeyValueStoreId": {
442                "type": "string"
443              },
444              "defaultDatasetId": {
445                "type": "string"
446              },
447              "defaultRequestQueueId": {
448                "type": "string"
449              },
450              "buildNumber": {
451                "type": "string",
452                "example": "1.0.0"
453              },
454              "containerUrl": {
455                "type": "string"
456              },
457              "usage": {
458                "type": "object",
459                "properties": {
460                  "ACTOR_COMPUTE_UNITS": {
461                    "type": "integer",
462                    "example": 0
463                  },
464                  "DATASET_READS": {
465                    "type": "integer",
466                    "example": 0
467                  },
468                  "DATASET_WRITES": {
469                    "type": "integer",
470                    "example": 0
471                  },
472                  "KEY_VALUE_STORE_READS": {
473                    "type": "integer",
474                    "example": 0
475                  },
476                  "KEY_VALUE_STORE_WRITES": {
477                    "type": "integer",
478                    "example": 1
479                  },
480                  "KEY_VALUE_STORE_LISTS": {
481                    "type": "integer",
482                    "example": 0
483                  },
484                  "REQUEST_QUEUE_READS": {
485                    "type": "integer",
486                    "example": 0
487                  },
488                  "REQUEST_QUEUE_WRITES": {
489                    "type": "integer",
490                    "example": 0
491                  },
492                  "DATA_TRANSFER_INTERNAL_GBYTES": {
493                    "type": "integer",
494                    "example": 0
495                  },
496                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
497                    "type": "integer",
498                    "example": 0
499                  },
500                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
501                    "type": "integer",
502                    "example": 0
503                  },
504                  "PROXY_SERPS": {
505                    "type": "integer",
506                    "example": 0
507                  }
508                }
509              },
510              "usageTotalUsd": {
511                "type": "number",
512                "example": 0.00005
513              },
514              "usageUsd": {
515                "type": "object",
516                "properties": {
517                  "ACTOR_COMPUTE_UNITS": {
518                    "type": "integer",
519                    "example": 0
520                  },
521                  "DATASET_READS": {
522                    "type": "integer",
523                    "example": 0
524                  },
525                  "DATASET_WRITES": {
526                    "type": "integer",
527                    "example": 0
528                  },
529                  "KEY_VALUE_STORE_READS": {
530                    "type": "integer",
531                    "example": 0
532                  },
533                  "KEY_VALUE_STORE_WRITES": {
534                    "type": "number",
535                    "example": 0.00005
536                  },
537                  "KEY_VALUE_STORE_LISTS": {
538                    "type": "integer",
539                    "example": 0
540                  },
541                  "REQUEST_QUEUE_READS": {
542                    "type": "integer",
543                    "example": 0
544                  },
545                  "REQUEST_QUEUE_WRITES": {
546                    "type": "integer",
547                    "example": 0
548                  },
549                  "DATA_TRANSFER_INTERNAL_GBYTES": {
550                    "type": "integer",
551                    "example": 0
552                  },
553                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
554                    "type": "integer",
555                    "example": 0
556                  },
557                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
558                    "type": "integer",
559                    "example": 0
560                  },
561                  "PROXY_SERPS": {
562                    "type": "integer",
563                    "example": 0
564                  }
565                }
566              }
567            }
568          }
569        }
570      }
571    }
572  }
573}

📹 YouTube Scraper OpenAPI definition

OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.

OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.

By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.

You can download the OpenAPI definitions for YouTube Scraper from the options below:

If you’d like to learn more about how OpenAPI powers GPTs, read our blog post.

You can also check out our other API clients:

Developer
Maintained by Apify

Actor Metrics

  • 2.2k monthly users

  • 447 bookmarks

  • 77% runs succeeded

  • 1.5 days response time

  • Created in Jul 2023

  • Modified 8 days ago