Track how videos compare you with your competitors

Reviewers, comparison channels and creators name brands side by side, and say which one wins and why. Describe what you want to know once and get a row for every brand mention across hundreds of videos, ready to count, chart and compare.

Product marketing teams tracking how they are positioned against rivals.
Competitive intelligence and market research across a whole category.
Agencies reporting share of voice and sentiment to their clients.
The schema

Describe the fields once

Every mention gets its own row, so a brand discussed three times keeps all three opinions; count rows per brand for share of voice, and group by role to see who is the benchmark in your category.

request body
POST /v1, minus videos
{
"multiple": true,
"max_rows": 30,
"schema": [
{
"name": "brand",
"type": "verbatim-string",
"description": "Each brand, company or product the speaker names, as they say it"
},
{
"name": "role",
"type": "enum",
"options": [
"main subject",
"compared against",
"mentioned"
],
"description": "Whether it is what the video is about, something it is compared against, or only mentioned"
},
{
"name": "comparison",
"type": "string",
"description": "What the speaker says about it relative to the others, such as cheaper, faster or a specific difference"
},
{
"name": "sentiment",
"type": "enum",
"options": [
"positive",
"mixed",
"negative"
],
"description": "How the speaker feels about it at this point in the video"
},
{
"name": "price",
"type": "number",
"description": "The price the speaker gives for it, as a number; leave empty if no price is said"
}
]
}
rows
illustrative output
[
{
"brand": "Aurora X2",
"role": "main subject",
"comparison": "longer battery life than the Nimbus 5",
"sentiment": "positive",
"price": 249
},
{
"brand": "Nimbus 5",
"role": "compared against",
"comparison": "better noise cancelling, but heavier",
"sentiment": "mixed",
"price": 299
},
{
"brand": "Aurora X2",
"role": "main subject",
"comparison": "the app is slower than Nimbus's",
"sentiment": "mixed",
"price": null
}
]

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.
  • Search for comparison videos ("X vs Y", "best of", "alternatives to") and send up to 200 URLs per call, so one request covers a whole category.
  • The role enum separates the product a video is about from the ones it is measured against, which is where positioning shows.
  • Brand names come back exactly as spoken, so you can group your own spellings and product lines the way your reports need.
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": "brand",
"type": "verbatim-string",
"description": "Each brand, company or product the speaker names, as they say it"
},
{
"name": "role",
"type": "enum",
"options": [
"main subject",
"compared against",
"mentioned"
],
"description": "Whether it is what the video is about, something it is compared against, or only mentioned"
},
{
"name": "comparison",
"type": "string",
"description": "What the speaker says about it relative to the others, such as cheaper, faster or a specific difference"
},
{
"name": "sentiment",
"type": "enum",
"options": [
"positive",
"mixed",
"negative"
],
"description": "How the speaker feels about it at this point in the video"
},
{
"name": "price",
"type": "number",
"description": "The price the speaker gives for it, as a number; leave empty if no price is said"
}
]
}'
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.