Skip to main content
YouTube

YouTube Scraper API
videos, channels and search

Send any YouTube link and get the page back as data. A video link returns its details with exact counts, the transcript, the first 40 top comments and related videos. Channels, playlists and searches return the items on the page with their counts.

You sendwww.youtube.com/watch?v=aircAruvnKk
VideoTranscriptComments
You get back (real run, trimmed)
{
"title": "But what is a neural network? | Deep learning chapter 1",
"views": 24869299,
"likes": 566779,
"commentsCount": 9418,
"publishDate": "2017-10-05T08:11:25-07:00",
"duration": "18:40",
"channel": {
"name": "3Blue1Brown",
"subscribers": 8700000
}
}
1 credit

per video, with transcript and comments included

40

top comments per video, with likes and reply counts

60

videos per channel tab, 100 per playlist

$0

for a page that can't be delivered

Every link you get from YouTube

Copy the link from your browser or the share button. Spidra works out what kind of page it is.

Videos

Details, exact views and likes, chapters, caption languages, the transcript, 40 top comments and related videos.

youtube.com/watch?v=aircAruvnKk

Shorts, embeds and short links

Shorts, youtu.be links, embed links and past live streams return the same full video record.

youtube.com/shorts/R6yNUnRXZ64

Channels

Subscribers, exact video count and total views, joined date, country and links, plus the items on the tab you open.

youtube.com/@mkbhd/videos

Channel tabs

Videos, Shorts and Live tabs give about 60 items each. Playlists and Posts tabs work too.

youtube.com/@mkbhd/shorts

Playlists

Title, owner, video count, views, last updated date and the first 100 videos.

youtube.com/playlist?list=PL...

Search

Videos, channels, playlists, Shorts and posts in the order YouTube shows them. Search filters (sp=) are kept.

youtube.com/results?search_query=python+tutorial

One call, every field

Point the scrape call at a YouTube link. With JSON output and no prompt, the data comes back as it is, for 1 credit and no AI cost.

Ask for markdown instead and you get the readable page as text. The structured data still comes back, in its own structuredData field next to the markdown.

import { SpidraClient } from "spidra";
 
const spidra = new SpidraClient({
apiKey: process.env.SPIDRA_API_KEY,
});
 
const result = await spidra.scrape({
urls: [{ url: "https://www.youtube.com/watch?v=aircAruvnKk" }],
output: "json",
});
 
const data = result.content;
console.log(data.title, data.views, data.likes, data.comments.length);
What you get for each video
Video
ID, title, description, duration in seconds and as shown, category, tags, hashtags, thumbnails and embed link
Counts
Exact views and likes as numbers, and the total comment count
Dates
Publish and upload dates with time and time zone
Channel
Name, ID, handle, subscribers, verified and official artist flags, avatar
Flags
Short, live, was live, upcoming, age-restricted, family safe, unlisted
Chapters
Each chapter's title, start time and thumbnail
Transcript
Timed lines and the full text, with the language and whether the captions are auto-generated
Comments
The first 40 top comments: text, author, likes, replies, date, pinned and hearted
Related
Related videos with their channel, views, date and duration

What comes back

Real responses from Spidra, trimmed for length. Nothing here is mocked up.

Request
https://www.youtube.com/watch?v=aircAruvnKk

A watch link. Details, exact counts, the transcript, the first 40 comments and related videos in one response.

Response (real run, October 18, 2026, trimmed)
{
"type": "video",
"id": "aircAruvnKk",
"title": "But what is a neural network? | Deep learning chapter 1",
"channel": {
"name": "3Blue1Brown",
"id": "UCYO_jab_esuFRV4b17AJtAw",
"handle": "@3blue1brown",
"subscribers": 8700000,
"subscribersText": "8.7M subscribers",
"verified": true,
"isOfficialArtist": false
},
"views": 24869299,
"likes": 566779,
"commentsCount": 9418,
"publishDate": "2017-10-05T08:11:25-07:00",
"duration": "18:40",
"category": "Education",
"isShort": false,
"captionLanguages": [
{
"languageCode": "ar",
"name": "Arabic",
"isAutoGenerated": false,
"isTranslatable": true
},
{
"languageCode": "bn",
"name": "Bangla",
"isAutoGenerated": false,
"isTranslatable": true
},
"… 29 more"
],
"transcript": {
"language": "en",
"isAutoGenerated": false,
"segmentCount": 286,
"segments": [
{
"start": 4.22,
"duration": 1.18,
"text": "This is a 3."
},
{
"start": 6.06,
"duration": 4.65,
"text": "It's sloppily written and rendered at an extremely low resolution of 28x28 pixels,"
},
"… 284 more"
]
},
"comments": [
{
"id": "Ugxg7Exz-c2PBBDv28p4AaABAg",
"text": "8 years ago and im learning this now😭😭😭😭💔💔",
"author": {
"name": "[redacted]",
"handle": "[redacted]",
"channelId": "[redacted]",
"isVerified": false,
"isChannelOwner": false,
"isArtist": false
},
"likes": 255,
"likesText": "255 likes",
"replyCount": 18,
"publishedText": "1 month ago",
"isEdited": false,
"isPinned": false,
"isHearted": false
},
{
"id": "Ugwedfi--9yZVC0eefl4AaABAg",
"text": "I study mathematics, physics and architecture. By definition this man is an ORACLE in the strict meaning of the word.…",
"author": {
"name": "[redacted]",
"handle": "[redacted]",
"channelId": "[redacted]",
"isVerified": false,
"isChannelOwner": false,
"isArtist": false
},
"likes": 13000,
"likesText": "13K likes",
"replyCount": 173,
"publishedText": "7 years ago",
"isEdited": true,
"isPinned": false,
"isHearted": false
},
"… 38 more"
],
"relatedVideos": [
{
"type": "video",
"id": "IHZwWFHWa-w",
"title": "Gradient descent, how neural networks learn | Deep Learning Chapter 2",
"channel": {
"name": "3Blue1Brown",
"id": "UCYO_jab_esuFRV4b17AJtAw",
"verified": true
},
"views": 9600000,
"viewsText": "9.6 million views",
"publishedText": "9 years ago",
"duration": "20:33",
"durationSeconds": 1233,
"isLive": false,
"isUpcoming": false
},
{
"type": "video",
"id": "wjZofJX0v4M",
"title": "Transformers, the tech behind LLMs | Deep Learning Chapter 5",
"channel": {
"name": "3Blue1Brown",
"id": "UCYO_jab_esuFRV4b17AJtAw",
"verified": true
},
"views": 11000000,
"viewsText": "11 million views",
"publishedText": "2 years ago",
"duration": "27:14",
"durationSeconds": 1634,
"isLive": false,
"isUpcoming": false
},
"… 18 more"
]
}

Exact counts, not "24M views"

YouTube shows rounded numbers on the page. Spidra returns the exact view and like counts as integers, and the channel's subscriber count as a number next to the text YouTube shows.

Dates come back as full timestamps with the time zone, so you can sort, chart and compare videos without parsing "7 years ago".

3Blue1Brown video (real run, trimmed)
"title": "But what is a neural network? | Deep learning chapter 1",
"views": 24869299,
"likes": 566779,
"commentsCount": 9418,
"publishDate": "2017-10-05T08:11:25-07:00",
"durationSeconds": 1120,
"channel": {
"name": "3Blue1Brown",
"handle": "@3blue1brown",
"subscribers": 8700000,
"subscribersText": "8.7M subscribers",
"verified": true
}

Metadata, comments and transcripts. Never video files.

Spidra reads what a YouTube page shows as text and numbers. It never returns video or audio files, and never returns stream or download links.

If you need the words spoken in a video, the transcript is already in the response when the video has captions. If you need the media itself, Spidra is the wrong tool.

  • Video details, counts, chapters and tags
  • The transcript, from YouTube's own captions
  • Top comments with their authors and likes
  • Channel, playlist and search listings

Channels with the numbers YouTube hides behind a click

A channel link returns the details from the channel's About panel too: the exact video count, total views, joined date, country and the links the creator lists, along with the items on the tab you opened.

Each channel also comes with its RSS feed link, so you can follow new uploads cheaply between scrapes.

@mkbhd videos tab (real run, trimmed)
"name": "Marques Brownlee",
"handle": "@mkbhd",
"subscribers": 21400000,
"videoCount": 1859,
"views": 5794123433,
"joinedDate": "Mar 21, 2008",
"country": "United States",
"rssUrl": "https://www.youtube.com/feeds/videos.xml?channel_id=UCBJycsmduvYEL83R_U4JriQ",
"itemCount": 60

Ask for the columns you want

Describe the answer as a prompt, a JSON schema or both, and it comes back in that shape. The AI reads a compact copy of the data Spidra already read, not the whole page.

Request
const result = await spidra.scrape({
urls: [{ url: "https://www.youtube.com/watch?v=aircAruvnKk" }],
prompt: "Give the video's key facts.",
schema: {
type: "object",
properties: {
title: {
type: "string"
},
channel: {
type: "string"
},
views: {
type: "integer"
},
likes: {
type: "integer"
},
publishedAt: {
type: "string"
}
}
},
});
What came back (real run)
{
"title": "But what is a neural network? | Deep learning chapter 1",
"channel": "3Blue1Brown",
"views": 24869282,
"likes": 566779,
"publishedAt": "2017-10-05T08:11:25-07:00"
}

This request cost 7 credits on October 18, 2026: 1 for the page plus the AI tokens. For the data as it is, use JSON output with no prompt for 1 credit.

What teams build with it

YouTube data feeds research, marketing and AI products.

Creator and channel research

Compare channels by subscribers, upload pace and views per video, and find creators in a niche through search.

AI apps on video content

Feed transcripts and comments to a model to summarize videos, answer questions about them or index them for search.

See the use case

Trend and performance tracking

Track views, likes and comment counts on videos over time, and watch what ranks for a search.

How Spidra compares

YouTube has an official API and many scrapers. Some are cheaper per video at volume. Here is how they differ.

YouTube Data APIApify (streamers)Bright DataSpidra
1,000 videosFree within 10,000 quota units a day; more needs an auditFrom $2.40, $4 on the free plan$1.50 pay as you go, $1.30 on the $499 Scale plan$3.80 down to $1.99 as full video pages, or about 17 credits from channel tabs (60 per page)
TranscriptsCaption text only for videos you ownOptional subtitlesThrough the podcast scraper onlyIncluded in every video page with captions
CommentsSeparate calls, counted against quotaSeparate comments actor, from $0.90 per 1,000Comment records, priced per recordFirst 40 top comments in the same response
Search100 search calls a day since June 1, 2026From search termsBy keywordSearch result pages, with filters
OutputOfficial fixed fieldsFixed fieldsFixed fieldsFixed fields, or your own schema or prompt
Beyond YouTubeYouTube onlyThousands of other actorsMany other sitesAny website, crawl, search, PDFs, MCP

Choose the API, Apify or Bright Data if

You need the official API's guarantees, thousands of videos from one channel or search with built-in paging, or every comment and reply on a video.

Choose Spidra if

You want video details, transcript and comments from one link in one call, exact counts, and YouTube plus any other website through one API.

Competitor prices and features are as published on their own pages on October 18, 2026 and may have changed. Spidra prices use 1 credit per page on each plan. Sources: YouTube Data API, Apify, Bright Data.

What to know before you build

We would rather you hear the limits from us than find them in production.

  • Spidra returns metadata, comments and transcripts only. It never returns video or audio files or stream links.
  • One page per request: a channel tab returns about 60 items, a playlist its first 100 videos, a search its first page of results, and a video its first 40 top comments.
  • Spidra reads YouTube as a visitor who isn't signed in. Age-restricted videos return their details but not comments or captions. Private and members-only videos fail, and aren't charged.
  • Live chat isn't read, and dislike counts aren't public on YouTube, so neither is returned.
  • Comments include the commenter's public handle and channel ID, as YouTube shows them. Handle personal data according to the privacy laws that apply to you.

What it costs

1 credit per page. Pages that can't be delivered are free. Work out your monthly volume below.

Monthly credits
9,000
Fits the Builder plan ($79/mo)

Example: 300 video pages a day, each with its transcript and 40 comments, is about 9,000 credits a month. Plain JSON output uses no AI tokens.

PlanPriceYouTube pages a month
Free$0up to 300 (one time)
Starter$19/moup to 5,000
BuilderPopular$79/moup to 25,000
Pro$249/moup to 125,000

Credits are shared across everything Spidra does, so the same plan covers YouTube and any other site.

Related scrapers

Same API key, same credits. See every scraper.

FAQ

Questions, answered

YouTube

The Data API is official and free within its quota, but the default is 10,000 units a day, search is capped at 100 calls a day since June 2026, and it won't give you caption text for videos you don't own. Spidra reads the public pages, so one video link returns details, the transcript and 40 top comments for 1 credit.

Send a YouTube link and see what comes back.

Get 300 free credits, no card, and run your first video from the dashboard or the API.

Spidra is not affiliated with, endorsed by, or sponsored by YouTube or Google. YouTube is a trademark of Google LLC. Check YouTube's terms of service and the laws that apply to you before you collect data, and use the data responsibly.