---
name: looot-youtube-transcript
description: Get a YouTube transcript. Use when the user says things like "get the transcript of this YouTube video", "summarize this video from its captions" or "pull the text of this talk". Runs through looot, billed per call.
---

# Get a YouTube transcript

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.

This skill needs the looot skill set up first: https://looot.ai/skill.md

## Ask for these inputs

The job takes a YouTube video link. Example: https://www.youtube.com/watch?v=dQw4w9WgXcQ.

- The YouTube video link
- The caption language, when the video has several

## Run it

1. Find the endpoint: `looot discover --mode auto --query "youtube transcript"`. The endpoints listed below are the known matches.
2. Read the price and the input schema before spending: `looot inspect <endpoint-id>`. Tell the user the price, then run.
3. Run it: `looot run scrapecreators-youtube-video-transcript --input '{"url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ","language":"en"}' --idempotency-key <new-key> --wait`. Reuse the same key only to retry the same request.
4. Read the run's `status` and `error`, not the HTTP status. A run can return `failed` with a normal response.
5. If a run fails with a provider error or times out, try the next endpoint from the list below, cheapest first. If it fails on your input (a 4xx style error), fix the input. Do not retry it on other providers.

## Endpoints

Each endpoint reads the same job from a different provider. They differ in inputs, fields and price. Run `looot inspect` on the ones that take the input you hold, start with the cheapest, and move to the next on a provider error.

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

## What comes back

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

## Answer rule

Return the plain text first and offer the timestamped version. Say when a video has no captions.

## 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.

## Cost rules

- Searching and inspecting are free. Running is billed per call at the price `looot inspect` shows.
- Say the price before the first run, and the total after a batch.
- Never loop a failing call. Stop after two failures and report what failed.

## When not to use this skill

Use `looot-reddit-search` instead when you want what people say about a topic, not the words of one video.

Page for people: https://looot.ai/agent-skills/youtube-transcript
