JSON, Text, SRT or VTT: Choosing a Transcript Format for a Whole Folder

A folder of audio is never just a folder of audio. It is four hundred voice memos from a field team, an entire season of webinars, or a client’s back catalogue of call recordings — and the moment you queue all of it into a speech-to-text model, one decision lands before any code gets written: what should come back out the other side? The transcription engine will happily return any of four shapes, and each one quietly determines what you can do next. Pick JSON and you get structure you can parse. Pick plain text and you get prose you can read. Pick SRT or VTT and you get files a player or an editor will accept without complaint. Pick badly and you end up re-running the whole batch.

What Each Transcript Format Actually Contains

The differences are not cosmetic. They are structural, and they change what is recoverable later.

JSON: the structured default

JSON is the format most APIs return when you do not specify one, and on Y-PAD’s Whisper large-v3 model it is the documented default. It carries the transcript as data rather than as prose: segments, timing information, and the text itself, arranged so a program can iterate over it. That makes JSON the right choice when the transcript is going into a database, a search index, a review tool, or a pipeline that will later re-render the same content in a different shape. You keep the timing detail, so converting JSON to SRT or VTT afterwards is a local transformation rather than another paid transcription run. The trade-off is verbosity: a JSON file is several times larger than the text inside it, and a human cannot skim it comfortably.

Plain text: the smallest useful artifact

The text output strips timestamps and structure and hands back the words. For a folder feeding summarisation, classification, keyword extraction, or a language model prompt, this is usually all you need — and it is the cheapest thing to store, diff, and search. Its limitation is that timing is gone. If a reviewer later asks “where in the recording did they say that?”, you cannot answer from a text file. Recovering timestamps means re-transcribing, which means paying twice.

SRT: the subtitle workhorse

SubRip files are numbered cues with an arrow and comma-separated millisecond timestamps. Virtually every video player, non-linear editor, and upload form accepts them, including the caption fields on major video platforms. If a human is going to watch the recording with captions, SRT is the format that requires no conversion step.

VTT: WebVTT for the browser

WebVTT looks similar but is not interchangeable. It opens with a WEBVTT header, uses dot-separated milliseconds, and supports cue settings for positioning and styling. It is the native caption format for the HTML5 <track> element, so anything streaming in a browser — internal training portals, product demo pages, media libraries — wants VTT rather than SRT. Renaming an SRT file to .vtt does not make it valid WebVTT.

Matching the Format to the Downstream Job

Format selection is really a question about the consumer of the transcript. Work backwards from whoever or whatever reads the output, and the choice usually makes itself.

Pipelines that feed a database or a model

If the next step is code, choose JSON and keep everything. Storage is cheap relative to a second transcription pass, and the structured segments let you build features later — chapter markers, per-segment sentiment, confidence-weighted search — without revisiting the audio. Teams that start with plain text often discover three months later that they want timestamps for a feature nobody had specified, and by then the original files may be archived or the batch IDs forgotten. JSON is the format that refuses to burn bridges. If you genuinely only need words, convert JSON to text locally with a five-line script; that conversion is free and repeatable, whereas the reverse is not.

Anything a human will watch or edit

For captioning, choose SRT when the destination is a desktop editor, a legacy captioning tool, or a video platform upload form. Choose VTT when the destination is a web player. If you are unsure which the client’s platform expects, deliver both: generating the second file from the first is a formatting exercise, not a second job. What you should not do is send plain text to someone who asked for captions — they will hand it back.

Mixed folders

Folders are rarely homogeneous. A single batch often contains interviews destined for a research database, marketing clips destined for a website, and internal meetings destined for a summary. There is no rule that one folder gets one format. Request JSON for the archival and analytical items, SRT or VTT for the published ones, and plain text for the throwaway ones — the format is a per-item parameter, not a batch-wide setting, so one submission can serve all three destinations.

Running a Folder at Scale: Defaults, Limits and Cost Traps

Once the format decision is made, the operational details decide whether the run finishes cleanly. Most of the pain in bulk transcription comes from defaults and billing rules rather than from the model itself.

Never rely on the default by accident

Whisper large-v3 on Y-PAD accepts json, text, srt or vtt, and returns json if you say nothing. That default is sensible for machines but fatal for a downstream script that expected a plain .txt file per recording. Set the format explicitly on every item, and write your parser to reject the wrong shape loudly rather than silently produce empty records. The same applies to language: leaving it empty triggers detection, which is correct for mixed-language folders and unnecessary overhead for single-language ones. If you plan to script the run rather than click through a console, the whisper api model page documents the input types, the optional language code, and the format values so you can wire them in before the first upload.

Read the billing units before you submit

Transcription is billed by the second with a 30-second minimum per file, so a folder of 200 eight-second voice notes bills as 200 half-minutes — the short clips cost more than their duration suggests. Files run up to 240 minutes and 500 MB each. Duration is measured from decoded samples rather than the file header, which means a badly muxed file cannot accidentally under-report its length. A finished transcription bills even when the transcript comes back empty, so silence detection upstream is worth the effort. Uploads run up to 100 files per call and up to 2,000 items per batch, and there are no webhooks — you poll for completion.

Plan for retrieval, not just output

Outputs stay available for seven days. That window is generous for a scripted download but short for a person who plans to “grab the transcripts later”. Pull results as each batch settles, particularly for JSON you intend to keep as your system of record. Billing is prepaid, only successful items are charged, and failed or cancelled items cost nothing — which makes a small pilot batch the sane first move for any unfamiliar folder. As of 7 November 2026 the published provisional beta fares for Whisper large-v3 sit at $0.00044 per audio minute at list and $0.0004 at launch pricing, with a submitted batch’s prices fixed at submission; those are beta figures and can change, so confirm them on the live pricing page before you size a large run.

Similar Posts