No-Code scraper · JSON API

YouTube Scraper

Collect YouTube video and channel data from search terms or URLs, including titles, views and publication dates.

JSON CSV & XLSX API access
Read the API reference →
From web pages to a dataset

What you can do

Find videos matching your research topics.

Compare video metadata and public engagement.

Build a structured catalogue for reporting.

01

Set your sources

Open the scraper and enter your own URLs, search terms and limits.

02

Review & run

Check the cost estimate and confirm the task. Follow its progress in your account.

03

Use your data

Explore saved results and export CSV, JSON or XLSX. Downloads of saved results are free.

Know what to expect

Sample data & output fields

Illustrative example

These example values demonstrate the data shape; they are not a live scraper result. Available fields depend on the source, selected options and upstream data.

JSON · illustrative result
[
  {
    "title": "Example title",
    "id": "example-001",
    "url": "https://example.com/result",
    "viewCount": 100,
    "date": "2026-01-15T12:00:00Z"
  }
]
FieldTypeDescription
titlestringThe title of the YouTube video
idstringThe unique YouTube video ID
urlstringThe full URL of the video
viewCountnumberThe number of views on the video
datestringThe publish date of the video
Start with a real configuration

Example input

This is the configured parser input. Replace the example sources with your own and review all limits before running.

JSON · example input
{
  "searchQueries": [
    "web scraping tutorials"
  ],
  "maxResults": 10,
  "maxResultsShorts": 5,
  "maxResultStreams": 0,
  "startUrls": [
    {
      "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
    }
  ],
  "transcriptionAndSubtitle": "NONE",
  "subtitlesLanguage": "en",
  "subtitlesFormat": "srt",
  "sortingOrder": "relevance",
  "dateFilter": "month",
  "videoType": "video",
  "lengthFilter": "between420",
  "oldestPostDate": "2024-01-01",
  "sortVideosBy": "NEWEST",
  "aiVideoDescription": false,
  "aiVideoSummary": false
}
Explore input fields
FieldTypeNotes
searchQueriesarrayEnter search terms just like you would enter it in YouTube's search bar.
maxResultsintegerLimit the number of videos you want to crawl. If you scrape a channel, acts as a limit for regular videos.
maxResultsShortsintegerLimit the number of Shorts videos you want to crawl.
maxResultStreamsintegerLimit the number of Stream videos you want to crawl.
startUrlsarrayEnter a link to a YouTube video , channel , playlist , hashtag or search results page . You can also import a CSV file or Google Sheet with a list of URLs. Note: Input from Search term will be ignored when using this option. If you only want to scrape…
transcriptionAndSubtitlestringChoose whether to download subtitles, transcribe the video using speech-to-text AI, or both. Leave empty to skip subtitles and transcription. Subtitles are added to the dataset items, while transcripts are stored in the key-value store
subtitlesLanguagestringLanguage to download subtitles in. Note: a subtitle-downloading option must be selected in Transcription & subtitles for this to work.
subtitlesFormatstringSelect in what format you want to download subtitles
sortingOrderstringSelect Youtube sorting parameter for search
dateFilterstringSelect Youtube upload date filter for search
videoTypestringSelect Youtube video type filter for search
lengthFilterstringSelect Youtube video length filter for search
oldestPostDatestringOnly posts uploaded after or on this date will be scraped. Alternatively, specify how old the scraped videos should be in days. Putting 1 day will get you only today's posts, 2 days - yesterday's and today's, and so on. Note, that if you select this,…
sortVideosBystringMaps to the sorting buttons on the top of the channel's 'Videos', 'Shorts' and 'Live' pages.
aiVideoDescriptionbooleanIf enabled, uses AI to generate a time-segmented description of the video, covering both visual and audio content for each segment.
aiVideoSummarybooleanIf enabled, uses AI to generate a concise conceptual summary of the video covering both visual and audio content.
The same scraper in your application

Run through the API

Create an API key in your account, send the input to the queued endpoint and use the returned task ID to retrieve results. Sending a live request uses credits.

cURL · queue a task
curl --request POST 'https://extracto.cloud/api/v1/parsers/youtube-scraper/queue' \
  --header 'X-API-KEY: ext_your_api_key' \
  --header 'Content-Type: application/json' \
  --header 'Accept: application/json' \
  --data-binary @- <<'JSON'
{
  "input": {
    "searchQueries": [
      "web scraping tutorials"
    ],
    "maxResults": 10,
    "maxResultsShorts": 5,
    "maxResultStreams": 0,
    "startUrls": [
      {
        "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
      }
    ],
    "transcriptionAndSubtitle": "NONE",
    "subtitlesLanguage": "en",
    "subtitlesFormat": "srt",
    "sortingOrder": "relevance",
    "dateFilter": "month",
    "videoType": "video",
    "lengthFilter": "between420",
    "oldestPostDate": "2024-01-01",
    "sortVideosBy": "NEWEST",
    "aiVideoDescription": false,
    "aiVideoSummary": false
  }
}
JSON

Your next dataset starts here.

Choose your sources, review the price and run YouTube Scraper.

Open scraper