03Video knowledge

Video guide 06 · Video intelligence

Transcribing Podcasts and Recordings You Already Host

Most transcript APIs want a platform link. When the audio is your own — a podcast, a recorded call, an archive in S3 — you need the direct-file path instead.

A transcript API that only accepts platform links cannot touch your own archive. Podcast back-catalogues, recorded calls, conference audio and anything sitting in object storage have no YouTube URL to paste. The path that works is a direct file URL — and it is a different input mode, not a different product.

What the direct-file path changes

Two inputs, one job. Pass a platform link and the tool resolves the page, finds the media and downloads it. Pass a direct file URL and it skips all of that and reads the bytes you pointed at. The universal transcript API exposes both, and the hosted-file example is a cloneable configuration that runs against a public-domain audio file — no platform, no page, no cookie.

That distinction matters more than it looks. Platform resolution is the fragile half of any transcription pipeline: layouts change, regions block, rate limits bite. A direct URL removes that whole failure class. If your audio is already reachable over HTTPS, the only things that can fail are the fetch and the speech recognition itself.

What qualifies as a usable file

Three properties, each cheap to check before spending a run:

Reachable without authentication. A signed URL works if it has not expired; a private bucket path does not. Test it with a plain request first — if a fresh terminal cannot fetch it, neither can the API.

Actually audio or video. Check the content type the server returns. A link that answers with an HTML error page instead of audio/mpeg produces an empty transcript that looks like a product failure and is not one.

Contains speech. Music, ambience and silence transcribe to nothing, correctly. This sounds obvious and it is the most common cause of a “broken” verdict: a file can be perfectly retrievable and contain no words.

Size is rarely the constraint — the field accepts files up to 8 GB — but duration is a cost and latency multiplier. A ninety-minute recording takes proportionally longer than a five-minute one, so batch long archives rather than expecting an interactive response.

What comes back

One structured record per run, not a wall of text. The transcript arrives with per-segment start times, which is what makes the output searchable rather than merely readable: you can jump to the moment a term appears rather than scanning a transcript for it. Source metadata, duration and processing timestamps come in the same row, so an archive job produces a table you can query instead of a folder of text files.

An optional target language returns a translation alongside the original rather than replacing it, which matters for compliance archives where the source-language record is the one of record. The speech-to-text sibling returns the same shape for teams standardising on the TrueFetch catalog.

What teams build with it

Podcast archives made searchable. Transcribe a back catalogue once, index the segments, and every episode becomes findable by what was said rather than by episode title.

Recorded-call review. Sales and support recordings that live in your own storage never touch a public platform. The direct-file path is the only one that reaches them.

Compliance and evidence retention. A transcript with timestamps, produced by a repeatable run, is auditable in a way that a manual summary is not.

Multi-source pipelines. Mixed input lists — some platform links, some hosted files — go through one integration instead of two, because the same endpoint accepts both.

How to scale it without surprises

Keep one file per run. It sounds inefficient and it is the opposite: a dead link then costs one record instead of aborting a batch, and each run returns its own typed row to the same dataset. Parallelism comes from the platform, not from packing the input.

Two operational habits pay for themselves. Store the processing timestamp so re-runs become incremental rather than full sweeps. And record why each input qualified — reachable on this date, verified to contain speech — because URLs expire, buckets get locked down, and last quarter’s working configuration is this quarter’s silent empty result. An input with a paper trail can be re-qualified in a minute; one chosen by convenience has to be debugged from scratch.

Continue in the directory

Turn the guide into a real sample run.

Open the current AgentX contract, check pricing and fields, then validate a narrow output.

Open the Actor