YouTube Video Details API
YouTube video metadata + stats.
Returns title, channel, duration, view/like/comment counts, publishedAt (UTC Z), genre/categoryId, availableCaptions[] with expiresAt, live flags, and the degraded envelope. Engagement counts come from YouTube's app data; publishDate / genre / @handle / isFamilySafe come from the watch-page microformat (retried once when missing). Every 200 includes degraded (boolean) and degradedReason (null or "partial-extraction") — retry when degraded is true. commentCountIsApproximate and likeCountIsApproximate are always keyed (false when the count is null — unknown is not a compact token). likeCount comes from the watch-page accessibility label and is exact when present; the flag is still stamped (CP-F). defaultLanguage is YouTube's video-language metadata and is usually null on this surface; defaultAudioLanguage is that field when YouTube sends it, otherwise the first ASR caption languageCode. channelVerified is the watch-page owner badge when exposed; null means unread, not unverified (use /youtube/channel-details.verified). thumbnailUrl is the largest thumbnails[] URL, not a second image. descriptionLinks[] is {url, text} — text is the same-line label or null. Flat 1 credit.
Request
- Base URL: https://api.captapi.com
- URL: https://api.captapi.com/v1/youtube/video-details
- Auth: one of:
- HTTP bearer
- API key in header X-API-Key
Query parameters
Public YouTube video URL, e.g. https://youtube.com/watch?v=ID. Not a TikTok/Instagram/Facebook URL. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh.
Response
Success. The data object for this endpoint.
Changes
No recorded changes to this operation across all 3 revisions of this API.