Platforms

YouTube

Public YouTube channels, videos, Shorts, comments, transcripts, video files, frames, playlists, search, trending, and music charts.

YouTube provides 29 read endpoints in Test and Live environments. Use your Openhandle key with the standard Authorization: Bearer header.

Endpoints

OperationEndpoint
Get profileGET /v1/youtube/profiles/{identifier}
List profile videosGET /v1/youtube/profiles/{identifier}/videos
List profile ShortsGET /v1/youtube/profiles/{identifier}/shorts
List profile livestreamsGET /v1/youtube/profiles/{identifier}/livestreams
List profile playlistsGET /v1/youtube/profiles/{identifier}/playlists
List profile community postsGET /v1/youtube/profiles/{identifier}/community-posts
Search profile videosGET /v1/youtube/profiles/{identifier}/search?q={query}
List profile productsGET /v1/youtube/profiles/{identifier}/products
Get postGET /v1/youtube/posts/{identifier}
List post commentsGET /v1/youtube/posts/{identifier}/comments
List comment repliesGET /v1/youtube/posts/{identifier}/comments/{comment_id}/replies?token={repliesToken}
Get transcriptGET /v1/youtube/posts/{identifier}/transcript
Get post filesGET /v1/youtube/posts/{identifier}/files
Get post storyboardGET /v1/youtube/posts/{identifier}/storyboard
Get post frameGET /v1/youtube/posts/{identifier}/frame?at={seconds}
List related postsGET /v1/youtube/posts/{identifier}/related
List posts with the same soundGET /v1/youtube/posts/{identifier}/sound-posts
Get community postGET /v1/youtube/community-posts/{identifier}
List community post commentsGET /v1/youtube/community-posts/{identifier}/comments
List playlist postsGET /v1/youtube/playlists/{identifier}/posts
List hashtag postsGET /v1/youtube/hashtags/{identifier}/posts
Search postsGET /v1/youtube/search/posts?q={query}
Search profilesGET /v1/youtube/search/profiles?q={query}
Search playlistsGET /v1/youtube/search/playlists?q={query}
Search suggestionsGET /v1/youtube/search/suggestions?q={query}
List trending postsGET /v1/youtube/trending/posts
List top music videosGET /v1/youtube/charts/videos
List top songsGET /v1/youtube/charts/tracks
List top artistsGET /v1/youtube/charts/artists

Identifiers and filters

Profile paths accept @handle or a channel ID such as UCX6OQ3DkcsbYNE6H8uQQuVA. Post paths accept the 11 character video ID of a video, a Short, or a livestream, such as dQw4w9WgXcQ. Playlist paths accept a playlist ID. Hashtag paths accept the tag with or without #. POST /v1/urls/fetch accepts channel, watch, youtu.be, Shorts, and live links.

Channel videos, Shorts, and livestreams take sort=newest|popular|oldest. Channel videos also take since, an RFC 3339 time. Comments take sort=top|newest. Search posts take type=video|short, sort=relevance|rating|date|views, duration=short|medium|long, and uploaded=hour|today|week|month|year. Trending and charts take country, a two-letter code such as US. Trending also takes category=now|music|games|movies. The transcript takes language, such as en or es-419. Without it you get the track in the spoken language.

Exact and approximate values

YouTube lists show short labels, not raw values. A video list says "152M views" and "8 days ago". Openhandle keeps both what YouTube shows and how exact it is.

  • createdAt is always an exact timestamp. It is null when YouTube did not publish one.
  • approximateCreatedAt is a day estimated from the label, such as 2026-10-18.
  • createdAtLabel is YouTube's own label, such as 8 days ago.
  • metrics.isApproximate is true when a count came from a rounded label.

The single post endpoint and trending return exact times and exact view and like counts. YouTube always rounds subscriber counts, on every endpoint. A video's comment count is rounded. The comments endpoint returns the exact total in meta.comments.

Video files

GET /v1/youtube/posts/{identifier}/files returns the video and audio streams of a video. Each rendition has its quality, MIME type, codecs, size, and a download url. YouTube sends picture and sound in one file only up to 360p. 720p and higher come as a picture-only stream, so pair it with an audio stream. hasVideo and hasAudio tell you what a stream holds.

The url is an Openhandle media link. A saved url keeps working. Players and download tools can ask for byte ranges. The files call is billed as one request. Downloading the files is free.

Storyboard

GET /v1/youtube/posts/{identifier}/storyboard returns the preview frames YouTube makes for a video. A video gets one small frame every two seconds, 160 by 90 pixels. A Short gets one every second. The frames come packed into image sheets of five by five. Each frame in frames has its time in milliseconds, its sheet, and its x and y position on that sheet, so you can crop it out. Each sheet in sheets has its own size, because the last sheet only holds the rows it needs. The sheets are Openhandle media links that keep working.

Frames

GET /v1/youtube/posts/{identifier}/frame?at=43 returns one still frame of a video, here at 43 seconds. at is required and counts whole seconds from the start. The frame comes in every resolution the video has, up to its own, such as 1080p. Each rendition has its quality, its height, and a url. A frame takes a few seconds to make. Now and then the source fails for a moment that works on a second try. That answer is a retryable error and is not billed. A time past the end of the video answers INVALID_PARAMETER.

Comment replies

Each comment carries a repliesToken when it has replies. Pass that token as token to the replies endpoint for the first page. Use meta.cursors.next for the pages after it.

Pagination

Pass meta.cursors.next as cursor to fetch the next page. Keep the identifier, search query, filters, and freshness unchanged. A null next cursor ends the collection. Trending, charts, and search suggestions return one complete page.

Response fields

YouTube has dedicated profile, post, comment, community post, playlist, transcript, files, product, and chart entry schemas. A transcript answers its segments in milliseconds and lists every caption language the video offers. A video without captions, or without the requested language, answers no segments. Media fields use managed Openhandle URLs.

Test data

Use /v1/test-data?platform=youtube to find deterministic examples. Test keys never contact the upstream provider.

On this page