InstaScript

Podcast Transcript: Turn an Episode into TXT or SRT

Make searchable episode text locally in your browser

Need a walkthrough? Follow the illustrated guide.

Podcast transcript

Local audio to timestamped TXT, SRT and VTT

Runs in your browser

Your file stays on this device

Drop an episode file here
or browse

MP3, WAV, M4A, OGG — up to 100 MB

One local audio file at a time; English speech works best.

English speech only. Browser decoding is required. First use may download language-detection and English-recognition models.

Find and verify a podcast quotation

Start with a local episode recording or permitted excerpt up to 100 MB. The browser recognizes English speech; it does not fetch Spotify, Riverside or podcast subscription links.

1. What source should I keep for a quotation?

Record the episode title and any excerpt offset in your own notes. The public practice clip is an eleven-second historical speech excerpt, not a measured full podcast or multi-speaker test. The browser first decodes the recording, checks its language with a multilingual checkpoint, then recognizes English with a separate English checkpoint. First use may download both models. Cached resource files can avoid another download, but they do not guarantee an initialized model: the English instance is released before the next language check. There is no fixed completion time.

What source should I keep for a quotation? Actual file selection in this tool. The public teaching sample is not a personal recording.
Actual file selection in this tool. The public teaching sample is not a personal recording.

Check: You know whether local 00:00 is the episode opening or an excerpt start.

Back to the tool

2. How do I locate a phrase without losing its context?

Search for a distinctive word, move through the matches and replay the surrounding exchange. Exact-text search cannot find a word that recognition missed or match a phrase across separate cues.

How do I locate a phrase without losing its context? Actual local sample workflow. Any [reviewed] suffix is a deliberate teaching edit, not recognized speech.
Actual local sample workflow. Any [reviewed] suffix is a deliberate teaching edit, not recognized speech.

Check: The chosen occurrence is the intended passage, with enough surrounding context.

Back to the tool

3. How do I handle overlapping speakers and uncertain quotes?

Manually note an identified speaker only after checking the audio and context. The tool does not perform diarization or write an episode summary. If overlapping speech hides a word, keep the uncertainty rather than publish a polished guess. Click a transcript timestamp to seek in the local recording player. Replay the surrounding phrase before editing its cue. Text edits do not move cue boundaries. Use Find in this transcript to locate an exact word in the latest edits; Previous and Next navigate matches, Enter moves forward, Shift+Enter moves back, and Escape clears the search.

How do I handle overlapping speakers and uncertain quotes? Actual local sample workflow. Any [reviewed] suffix is a deliberate teaching edit, not recognized speech.
Actual local sample workflow. Any [reviewed] suffix is a deliberate teaching edit, not recognized speech.

Check: A direct quotation preserves the actual wording, and any editorial note is separate.

Back to the tool

4. What should I save with a citation?

Use a reading copy plus your own source title and excerpt offset. For a subtitle track, compare the timed file with the exact recording edit you will use. Copy, TXT and Markdown use your edited words and are untimed by default. Enable Include timestamps in TXT, Markdown and Copy to include available start times. Markdown escapes markup and exports transcript paragraphs, without creating a summary. SRT, VTT and Open in Subtitle Editor require nonempty text and complete valid start/end times; missing ends are not estimated. If timing is incomplete, save TXT or Markdown and keep the recording.

What should I save with a citation? Actual local sample workflow. Any [reviewed] suffix is a deliberate teaching edit, not recognized speech.
Actual local sample workflow. Any [reviewed] suffix is a deliberate teaching edit, not recognized speech.

First cue from the actual teaching export (including the deliberate [reviewed] edit):

1
00:00:00,000 --> 00:00:07,740
And so my fellow Americans ask not what your country can do for you [reviewed]

Check: Local cue time and original episode time have not been conflated.

Back to the tool

More questions and limits

Does my recording leave this device?

Local decoding, recognition, replay, edits and downloads run in your browser. Model resources need network access, but the local recording and transcript are not uploaded. There is no account history or saved cloud project; download your work before closing the tab. Same-origin editor transfer keeps the cues and recording local between tabs. Instagram URL retrieval and YouTube caption lookup have separate server-assisted privacy boundaries.

What if decoding or the language check fails?

An undecodable file is different from a language result. Detected non-English speech stops recognition; an uncertain result or a technical language-check failure stops with a separate message and creates no transcript. For a damaged or unsupported file, export a new playable audio copy from its source: renaming the extension does not convert it. Recording Format Guide explains these boundaries.

Can I cancel and try again?

Only one transcription task runs at a time. Cancel processing discards its result; an in-progress model or audio operation may need to finish before controls unlock. Then use Try the same input again. Choosing another input clears the previous retry target. A cancellation is not a transcript of silence.

Where is the complete audio workflow?

Audio to Text explains search, text corrections and output choices. For timing changes, use Subtitle Editor.

Historical measurements and method limits

Measured browser timings

These are historical measurements from 2026-09-14 using only whisper-tiny.en. They do not measure the current language-detection plus English-transcription workflow, and exclude Instagram lookup and media download.

Audio lengthHistorical wall-clock timeHistorical model load
11 s16.89 sincluded
11 s6.49 salready in memory
30 s8.98 salready in memory
60 s16.06 salready in memory
120 s28.58 salready in memory

In the historical test, the first run included model loading; subsequent runs retained the English model in memory. Current jobs release that instance before language detection, so a resource cache hit still requires initialization. Wall-clock time is not CPU time, and subtracting two runs does not isolate download or initialization time.

One machine, one WASM browser, one run per historical data point. Audio clips were constructed from a repeated public JFK recording. These rows do not predict today's end-to-end time, other devices or other recording content.

Sources: historical raw CSV · current two-model measurements (2026-10-14) · method, environment and limitations.