Schema, not scraping code
Columns are a name, a type and a sentence. Rows come back validated against them, so nothing malformed reaches your database.
Describe the fields you want, send up to 200 YouTube URLs, get typed and validated JSON rows back.
Columns are a name, a type and a sentence. Rows come back validated against them, so nothing malformed reaches your database.
Each video runs as its own job under one job id, so a bad URL in the batch does not sink the rest.
10 credits per started minute of a video that returns a result. Every response says what it charged.
The result JSON and the submitted URL leave our database the moment your GET succeeds.
Get told when a job finishes, then collect the rows on your own schedule.
A specialised extraction model with deterministic post-processing. The cost of a minute rounds to zero, which is what the pricing is built on.
Turn a channel of review videos into a product table your app can query: what was reviewed, the price quoted, and the reviewer's verdict.
Code hundreds of hours of panels and interviews consistently: who said it, what they claimed and where they stand.
See which brands sponsor the channels your audience watches, what they offer and when in the video the read runs.
Track how creators talk about your clients' brands across a whole category, with sentiment you can report on.
Submit, then collect. Everything else is your schema.
# 1. Submit a jobcurl https://api.tubeextract.dev/v1 \-H "X-API-Key: $TUBEEXTRACT_KEY" \-H "Content-Type: application/json" \-d '{ "videos": ["https://youtu.be/dQ8x2Kp"],"multiple": true,"schema": [{ "name": "restaurant_name","type": "verbatim-string" }] }'# 2. Collect the rowscurl https://api.tubeextract.dev/v1/8f2c1e40 \-H "X-API-Key: $TUBEEXTRACT_KEY"
Anything missing? Write to support@tubeextract.dev. A person, not a ticket queue, answers.
A transcript API returns the caption text and leaves the rest to you. TubeExtract reads the same captions and returns rows that match a schema you describe, typed and validated, so there is no parsing or prompting to write. You get the data itself, ready to store, query or chart.
Yes. Ask for the entities as columns -- people, companies, products, places -- and each one comes back as its own typed field, with an enum column if you want the entity type named from a fixed list. Names are copied as spoken when the column is verbatim-string, so they can be matched against your own records.
It returns no_captions and costs nothing, so you can send whole playlists without checking each video first. TubeExtract reads the manual or auto-generated caption track, which keeps every job fast and simply priced per minute.
10 credits for every started minute of a video that returns a result, however many rows come back: a 14-minute video is 140 credits. Jobs that fail are never charged, and every response reports what it charged.
The result JSON and the submitted video URL are deleted from our database the moment your GET request succeeds. A second fetch of the same job returns status: done with each video's rows: null.
Up to 200 videos in a single call. Each video runs as its own job under one job id, so a bad URL in the batch does not sink the rest.
3,000 free credits are on the account when you sign up. Point the API at one video, check the rows, then batch the rest.