# Read YouTube videos and transcripts with Openhandle

Published October 27, 2026

Build search and summaries from public YouTube data. Read channels, Shorts, comments, and timed transcripts through the Openhandle API.

You can now build search and summaries from public YouTube videos with Openhandle. Read a channel’s uploads, get video stats, or fetch a transcript with times for each line.

YouTube is live with 29 read endpoints in Test and Live. Use an Openhandle key with the `Authorization: Bearer` header.

## Start with a channel or a search

Read a channel’s profile and list its videos or Shorts. Search across YouTube by keyword, or search within one channel. For each video, you can read comments and their replies.

| Request | What you get |
|---|---|
| `GET /v1/youtube/profiles/@YouTube` | The channel profile and its counts |
| `GET /v1/youtube/profiles/@YouTube/videos` | The channel’s videos |
| `GET /v1/youtube/profiles/@YouTube/shorts` | The channel’s Shorts |
| `GET /v1/youtube/search/posts?q=espresso&type=short` | Shorts about espresso |
| `GET /v1/youtube/posts/{id}/comments` | Comments on a video |

Channel paths accept an `@handle` or a channel ID. Video paths accept the 11 character video ID. If you have a YouTube link, pass it to `POST /v1/urls/fetch`.

You can also read livestreams, playlists, community posts, and channel products. Trending videos and weekly music charts take a `country` filter. The [YouTube docs](/docs/platforms/youtube) cover all 29 endpoints and their filters.

## Use transcripts for search and summaries

Call `GET /v1/youtube/posts/{id}/transcript` to get a video’s caption text. Use it to search what people say or give your app text to summarize.

Each segment has `text`, `start`, and `end`. Times are in milliseconds from the start of the video. The response also lists the caption languages the video offers.

Choose a caption language with `language=en`, for example. Leave `language` out to get the track in the spoken language. A video without captions, or without the language you request, returns no segments.

## Get video and audio files

Call `GET /v1/youtube/posts/{id}/files` to get video and audio streams with download links. Each stream includes its quality and format. Check `hasVideo` and `hasAudio` to see what it contains.

YouTube combines picture and sound in one file only up to 360p. For 720p and higher, pair a video stream with an audio stream.

The links keep working, so you can save them and download later. Players can request parts of a file to skip ahead. The files call costs one request. Downloading the files is free.

Need stills instead? `GET /v1/youtube/posts/{id}/storyboard` returns a small frame every 2 seconds, and `GET /v1/youtube/posts/{id}/frame?at=43` returns one sharp frame at the second you pick.

## Know which counts are rounded

YouTube lists often show labels such as "152M views" or "8 days ago". Openhandle keeps the date label in `createdAtLabel` and puts the estimated day in `approximateCreatedAt`. Rounded video counts set `metrics.isApproximate` to `true`.

For exact views, likes, and publish time, call `GET /v1/youtube/posts/{id}`. YouTube always rounds subscriber counts. A video’s comment count is rounded too. The comments endpoint gives the exact total in `meta.comments`.

## Pay per request

The first Live pricing tier costs $0.0025 per request, paid from your balance. Failed requests are free. See [pricing](/pricing) for volume rates and cheaper cached responses.

Openhandle has no daily quota. Each key allows 10 requests per second, with higher limits available on request. The [YouTube Data API pricing guide](/compare/youtube-data-api-pricing) explains Google’s quota system if you want to compare.

## Make your first call

Use a Test key to try all 29 endpoints with sample data. Find examples at `GET /v1/test-data?platform=youtube`.

New accounts get 100 free Live requests, with no card needed. Follow the [quickstart](/docs/quickstart) to create a key and make your first request.
