# YouTube transcript API for your agent

YouTube transcript API for an agent: it sends a YouTube video link to a catalog endpoint and reads timestamped transcript lines, plain text version and start back. Several providers sell the call, so the agent tries the cheapest first. You pay per call, and a failed call costs nothing.

## What this does

A transcript turns a video into text your agent can read, search and quote. You send a video link, and the provider returns the caption lines with their start times. That covers research across talks, repurposing one video into posts, and building a text archive of a channel.

Four providers return captions, and they agree on the basics. They differ on what shape the text comes in and which languages you can choose. One returns a timestamped array and a plain-text version in the same call. Another lets you pick between automatic and manual captions and lists the languages a video has.

You give: a YouTube video link. Example: https://www.youtube.com/watch?v=dQw4w9WgXcQ.

## What differs between providers

- Scrape Creators API (scrapecreators-youtube-video-transcript): returns a timestamped transcript array and a plain-text version, with a language code and a cache option.
- Any Site API (anysite-api-youtube-video-subtitles): takes a video ID or a URL with a language, and returns the subtitles.
- DataForSEO (dataforseo-youtube-video-subtitles-advanced): returns a video's subtitles live, as a task array.
- SearchApi (searchapi-io-youtube-transcripts): takes a video ID, lets you choose automatic or manual captions, and returns the languages available for the video.

## Before you start

- Check that the video has captions. If YouTube exposes no caption track, the transcript fields come back empty, and you are not billed for a call that fails at the provider.
- Ask for a language. If the transcript is not available in the language you name, one provider returns null instead of the nearest match.
- Long videos work. One provider says there is no two-minute limit on YouTube, and that podcasts work when public captions exist.

## Prompt

Use looot to get the transcript of https://www.youtube.com/watch?v=dQw4w9WgXcQ in English, return it with timestamps, and add a three line summary. 1. Set up https://looot.ai/skill.md. 2. Search the catalog for each step and check its price before you call. 3. Run the cheapest endpoint that fits. 4. Show the results as a table and the total cost.

## Steps and providers

- Fetch the transcript: scrapecreators, anysite, dataforseo, searchapi-io. 1 call per video.

## What comes back

- Timestamped transcript lines
- Plain text version
- Start and end times
- Caption language

## The request and what comes back

Each run is one POST to /v1/runs with an endpoint id and an input. These are illustrative calls with generic values. The run's result holds the provider's own fields.

- Scrape Creators API: {"endpointId":"scrapecreators-youtube-video-transcript","input":{"url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ","language":"en"},"wait":30}
- Any Site API: {"endpointId":"anysite-api-youtube-video-subtitles","input":{"video":"dQw4w9WgXcQ","lang":"en"},"wait":30}

## How do I get the transcript of a YouTube video?

Send the video link to a transcript endpoint. Your agent gets back the caption lines with start times and a plain-text version. For a list of videos, it makes one call per link.

## Does it work on long videos and podcasts?

Yes, when YouTube exposes public captions. One provider states there is no two-minute limit, so a podcast of several hours works if it has captions.

## What if the video has no captions?

Then there is nothing to return, and the transcript fields come back empty. Ask your agent to list the links that returned nothing, so you can skip them or transcribe the audio another way.

## Can I pick the language?

Yes. Three of the endpoints take a language code, and one also lists the languages a video offers. A language that does not exist for the video returns null on one provider.

## Can I get transcripts for a whole channel?

In two steps. The agent lists the channel's videos, then makes one transcript call per video. Each call is billed on its own, so ask for the total before a big channel.

## How much does one video cost?

You pay per call, and the price depends on the provider your agent picks. This page reads the cheapest live price from the catalog and shows no number when the catalog is unreachable.

## Do I pay when a youtube transcript call fails?

No. A call that fails at the provider costs nothing, and your agent can retry it or send it to another provider.

## Do I need an account with each youtube transcript provider?

No. One looot key reaches every provider in the catalog. You top up once, and each call is billed at the price shown before it runs.

## How do I call youtube transcript from code?

Send a POST to /v1/runs with the endpoint id, the input and a new idempotency key, and your looot token in the Authorization header. With wait set to 30, the answer comes back in the response when the run ends within 30 seconds. Otherwise poll GET /v1/runs/<runId>.

## Can I run youtube transcript on a schedule?

That needs scheduled runs, not available yet. Run it by hand whenever you want fresh results.

## Do I pay while my agent is idle?

No. looot bills per call, and nothing runs while your agent is idle.

## Related pages

- /use-cases/youtube-channel-stats-api
- /use-cases/youtube-comments-api
- /use-cases/youtube-video-search-api

## Last reviewed

2026-10-04. The cost per 1,000 video runs is read live from the catalog on the web page.
