Extract company and model names from tech videos

Tech channels say the company and the exact model name out loud — who makes it, which variant, what it costs and whether to buy it. Ask for those fields once and get a row for every model mentioned in every video, with names back exactly as spoken.

Market and product research tracking which models reviewers cover.
Comparison and affiliate sites building catalogues from review channels.
Brand and product teams watching how their models are reviewed.
The schema

Describe the fields once

Company and model are separate verbatim-string columns, so a base model and its Pro or Ultra variant stay distinct rows with exact names; price is a number, so a model with no spoken price is left empty rather than guessed.

request body
POST /v1, minus videos
{
"multiple": true,
"max_rows": 30,
"schema": [
{
"name": "company",
"type": "verbatim-string",
"description": "Company or brand that makes the product, as the speaker says it"
},
{
"name": "model",
"type": "verbatim-string",
"description": "Exact model or variant name the speaker says, such as Pro, Ultra or a generation number"
},
{
"name": "price",
"type": "number",
"description": "The price the speaker gives for this model, as a number; leave empty if no price is said"
},
{
"name": "verdict",
"type": "enum",
"options": [
"buy",
"wait",
"skip"
],
"description": "Whether the speaker tells viewers to buy it, wait, or skip it"
},
{
"name": "highlights",
"type": "string[]",
"description": "Each strength or standout feature the speaker names for this model"
}
]
}
rows
illustrative output
[
{
"company": "Aurora",
"model": "X2 Pro",
"price": 999,
"verdict": "buy",
"highlights": [
"battery life",
"display"
]
},
{
"company": "Nimbus",
"model": "5 Ultra",
"price": 1199,
"verdict": "wait",
"highlights": [
"zoom camera"
]
}
]

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 15-minute video is 150 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 company apart from the model so variants (15 vs 15 Pro, base vs Ultra) never collapse into one row.
  • An enum column for the verdict gives every model one consistent label across all your videos, ready to filter and count.
  • Comparison videos ("X vs Y", "best phones", "alternatives to") give the richest rows: send up to 200 URLs per call to cover a whole category.
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,
"max_rows": 30,
"schema": [
{
"name": "company",
"type": "verbatim-string",
"description": "Company or brand that makes the product, as the speaker says it"
},
{
"name": "model",
"type": "verbatim-string",
"description": "Exact model or variant name the speaker says, such as Pro, Ultra or a generation number"
},
{
"name": "price",
"type": "number",
"description": "The price the speaker gives for this model, as a number; leave empty if no price is said"
},
{
"name": "verdict",
"type": "enum",
"options": [
"buy",
"wait",
"skip"
],
"description": "Whether the speaker tells viewers to buy it, wait, or skip it"
},
{
"name": "highlights",
"type": "string[]",
"description": "Each strength or standout feature the speaker names for this model"
}
]
}'
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.