YouTube API
Videos, channels, transcripts and comment threads.
Why teams scrape YouTube
YouTube holds some of the most commercially useful public data on the web, and almost none of it is available through a stable official feed at the volume real products need. Rate limits, partner-only access and shifting page structures mean teams either give up on the source or maintain a fragile scraper that breaks every few weeks.
The official Data API has a quota model that makes any serious analysis or transcript-based pipeline impractical, and transcripts are not exposed at all.
Irmu removes the infrastructure question entirely. One authenticated request handles proxy selection, browser rendering, anti-bot challenges and retries, and AI Extract turns the resulting page into validated JSON against a schema you define. You get title, channel, views, likes, published_at, description, transcript, comments without writing or maintaining a single selector, and the same endpoint, quota and observability model you already use for every other source.
What it powers
Transcript mining
Turn hours of video into searchable text for RAG.
Competitor content analysis
Track topics, cadence and performance.
Sentiment analysis
Extract themes from comment threads.
Training corpora
Build domain-specific spoken-language datasets.
Fields available
Everything below comes back typed and validated against your schema.
title
Video title
channel
Channel name
views
View count
likes
Like count
published_at
Publish date
description
Video description
transcript
Full caption text
comments
Top comments with authors
One call, no selectors
curl -X POST https://app.irmu.com/api/extract \
-H "Authorization: Bearer irmu_sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"schema": {
"title": "string",
"channel": "string",
"views": "string",
"likes": "string",
"published_at": "string",
"description": "string"
}
}'Validated JSON
{
"data": {
"title": "Building a scraping pipeline",
"channel": "Dev Diaries",
"views": 214883
},
"credits_used": 15,
"status": 200
}Copy, paste, ship
import requests
res = requests.post(
"https://app.irmu.com/api/extract",
headers={"Authorization": "Bearer irmu_sk_live_..."},
json={
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"schema": {
"title": "string",
"channel": "string",
"views": "string",
"likes": "string"
},
},
)
data = res.json()["data"]
print(data)Simple credits
Per video page
15 credits
Failed requests are retried automatically and never billed.
See full pricing →YouTube API questions
Start extracting YouTube data today
1,000 free credits every month. No card, no sales call.