Pull guests, topics and claims out of video 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.

request body
POST /v1, minus videos
{
"multiple": true,
"schema": [
{
"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[]",
"description": "Each factual claim this guest states out loud, in one sentence each"
}
]
}
rows
illustrative output
[
{
"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

Getting the best results

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 works from what is said in the video, reading its existing captions, manual or auto-generated. Videos without captions return no_captions and are never charged.
  • Ask for the speaker as its own column to attribute every claim; names come from how guests are introduced in the conversation.
  • Keep the claim column specific ("a claim the guest makes about the market") and each row stays one clear statement.
  • 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=…"
],
"multiple": true,
"schema": [
{
"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[]",
"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 3,000 credits, about 300 minutes of video. Paste the schema above, point it at a video, and check the rows.