YouTube Video Data API
Every YouTube watch page carries a rich block of public metadata: title and description, the channel behind it, view, like and comment totals, publish date, duration, category, keyword tags, thumbnails and the available caption tracks. The everydata.io YouTube Video Data API returns that block as one JSON object for any video ID or URL. There is no OAuth consent screen, no Google Cloud project and no daily unit quota to ration – just an HTTPS GET with your everydata.io key, answered from the live page.
100 free requests every month · realtime JSON · one API key for all platforms
What you get
YouTube data, ready to use
GET /ytb/youtube-video-details accepts id as a bare video ID (kJQP7kiw5Fk), a youtu.be short link or a full watch URL, so you can feed it whatever your users paste. The response has videoId, title, description, channelId, channelName, channelUrl and subscriberCountText for the uploader, then the engagement numbers as integers: viewCount, likeCount and commentCount, with likeCountText for the rounded display value. publishedAt and uploadDate are ISO timestamps with offset, duration is in seconds with durationText as m:ss, and category, keywords and tags carry the classification the uploader chose.
Boolean flags describe the state of the video: isLive, isLiveNow, isFamilySafe, isUnlisted, isPrivate, isShortsEligible and allowRatings. availableCountries lists where playback is allowed, embedUrl is ready for an iframe, and captions[] holds every subtitle track with languageCode, name and isTranslatable.
- Video ID, youtu.be link or full watch URL accepted in the same id parameter
- viewCount, likeCount, commentCount as plain integers plus human-readable *Text variants
- publishedAt, uploadDate, duration, durationText, category, keywords[] and tags[]
- Channel context inline: channelId, channelName, channelUrl, channelThumbnails, subscriberCountText
- Status flags: isLive, isLiveNow, isFamilySafe, isUnlisted, isPrivate, isShortsEligible, allowRatings
- thumbnails[] in multiple sizes, embedUrl, availableCountries[] and captions[] with language and translatability
- Companion endpoints for keyword search, related videos and trending – all cursor-paged, no Google API key
How it works
Example request and response
A single call returns the whole watch-page block; the example uses Despacito, so the counters are real and large. For discovery, GET /ytb/youtube-search-videos?query=lofi+hip+hop returns items[] with videoId, title, channelName, viewCount, duration and isLive plus a cursor; /ytb/youtube-video-related-contents lists the sidebar recommendations for a video, and /ytb/youtube-trending-videos returns the trending tab.
GET /ytb/youtube-video-details
curl "https://api.everydata.io/ytb/youtube-video-details?id=kJQP7kiw5Fk&languageCode=en&countryCode=US" \
-H "x-api-key: YOUR_API_KEY"Response (shortened)
{
"responseStatus": "PAGE_FOUND",
"responseMessage": "Page successfully found!",
"videoId": "kJQP7kiw5Fk",
"title": "Luis Fonsi - Despacito ft. Daddy Yankee",
"channelId": "UCLp8RBhQHu9wSsq62j_Md6A",
"channelName": "LuisFonsiVEVO",
"subscriberCountText": "32.5M subscribers",
"viewCount": 9125159593,
"likeCount": 56673581,
"likeCountText": "56M",
"commentCount": 4300000,
"publishedAt": "2017-01-12T21:00:02-08:00",
"duration": 282,
"durationText": "4:42",
"category": "Music",
"keywords": [
"Luis",
"Fonsi"
],
"tags": [
"Calypso",
"Despacito"
],
"thumbnails": [
{
"url": "https://i.ytimg.com/vi/kJQP7kiw5Fk/hqdefault.jpg",
"width": 168,
"height": 94
}
],
"isLive": false,
"isFamilySafe": true,
"embedUrl": "https://www.youtube.com/embed/kJQP7kiw5Fk"
}responseStatus is PAGE_FOUND when the watch page rendered. A private, deleted or region-blocked video produces a 404 with a vnd.error body instead of a half-filled object, so check the HTTP status before parsing. viewCount is the exact figure from the page at request time; YouTube itself updates it with a small lag, so two calls minutes apart may return the same number for slow-moving videos.
Search and related-content responses are paged with an opaque cursor string. Pass the cursor value from one response as the cursor parameter of the next call to continue; omit it for page one. Each page is one request. estimatedResults on search is YouTube's own rough total, not a guarantee of how many pages you can walk.
languageCode and countryCode (defaults en, US) influence what YouTube renders: localised titles where the uploader supplied translations, and the country's trending list. Every request is realtime; there is no cacheTtl on YouTube endpoints because counters move constantly.
Related endpoints
Video details. Metadata for a video id or URL.
Search videos. Keyword search with cursor paging.
Related videos. Related content for a video.
Trending. Trending videos.
Use cases
What teams build with this
Influencer and campaign reporting
Fetch viewCount, likeCount and commentCount for sponsored videos on a schedule and chart the curve from publish date onwards – with no unit budget to split across clients.
Content monitoring and brand safety
Resolve every URL a user submits, store title, channelName, category and isFamilySafe, and flag videos that later turn private or unlisted via the 404 response.
Search and trend tracking
Run the same keyword through youtube-search-videos daily with different countryCode values and measure which channels and formats dominate the results in each market.
Link previews and embeds
Turn a pasted YouTube link into a card with thumbnail, title, channel and duration, and embed with embedUrl – the classic oEmbed use case without Google credentials.
Pricing
Pay per request, every platform included
One video detail call, one search page or one related-content page equals one request. Because there is no separate Google quota, the only limit is your everydata.io plan: the free tier's 100 requests a month cover an integration test; Starter (5,000 requests, €30) tracks about 160 videos daily; Production (50,000, €80) supports agency-scale reporting across hundreds of channels. Upstream 5xx errors are never deducted.
- Free
- 100 req / month
- Starter
- 5,000 req · €30
- Production
- 50,000 req · €80
- Business
- 300,000 req · €300
FAQ
YouTube Video Data API: frequently asked questions
Related
Related use cases
Look up your first video
Create a free account and call GET /ytb/youtube-video-details?id=kJQP7kiw5Fk – full metadata in one JSON response, 100 requests a month on us.
Get your free API key