Pull guests, topics and claims out of YouTube podcasts

Long conversations are hard to search and harder to cite. Ask for who spoke, what they do and what they claimed, and get rows you can filter, count and link back to.

Research and fact-checking across hours of interviews.
Guest databases for booking, PR and media monitoring.
Indexing a back catalogue of episodes by topic.
The schema

Describe the fields once

The guest's name names each row, and claims is a list, so everything one person says stays attached to them.

schema
POST /v1
{
"multiple": true,
"columns": [
{
"name": "guest",
"type": "verbatim-string",
"description": "Full name of each guest or interviewee, as introduced"
},
{
"name": "role",
"type": "string",
"description": "What the guest does or represents, as the host introduces them"
},
{
"name": "claims",
"type": "string",
"multiple": true,
"description": "Each factual claim this guest states out loud, in one sentence each"
}
]
}
rows
illustrative output
{
"results": [
{
"guest": "Dana Whitfield",
"role": "founder of a battery recycling startup",
"claims": [
"Most lithium in old phones is never recovered",
"Recycling costs have halved since 2020"
]
}
]
}

The output above shows the shape a video returns, not a recorded result. Types are enforced: numbers come back as numbers, list columns as arrays.

Good to know

What to expect

What it costs

A 60-minute video is 600 credits: 10 per started minute, however many rows come back. Videos that fail, such as those without captions, are never charged. See pricing.

  • TubeExtract reads the video’s existing captions, manual or auto-generated. It does not listen to audio or read the screen, and a video with no captions fails as no_captions.
  • When several people talk over each other, a claim can be attributed to the wrong speaker. Check anything you intend to publish.
  • Captions are read, not audio, so speaker names come from how people are introduced, not from their voices.
  • An hour-long episode costs 600 credits at 10 credits per started minute.
Run it

One call, up to 200 videos

Send the schema with your list of videos, then read the job once every video has finished.

curl https://api.tubeextract.dev/v1 \
-H "X-API-Key: $TUBEEXTRACT_KEY" \
-H "Content-Type: application/json" \
-d '{
"videos": [
"https://youtube.com/watch?v=…"
],
"schema": {
"multiple": true,
"columns": [
{
"name": "guest",
"type": "verbatim-string",
"description": "Full name of each guest or interviewee, as introduced"
},
{
"name": "role",
"type": "string",
"description": "What the guest does or represents, as the host introduces them"
},
{
"name": "claims",
"type": "string",
"multiple": true,
"description": "Each factual claim this guest states out loud, in one sentence each"
}
]
}
}'
More use cases

Try it on your own videos

New accounts start with 1,000 credits, about 100 minutes of video. Paste the schema above, point it at a video, and check the rows.