IGTranscript

How do you transcribe an Instagram Story?

A Story is gone 24 hours after it goes up — 86,400 seconds — and unlike a Reel it is not a file sitting at a permanent address, so the transcript has to be made from a copy you take before the clock runs out. Once you have that copy, the work is ordinary: this tool resamples it to 16,000 samples a second, one channel, 32 bits a sample, which is 64,000 bytes for every second of Story. A 15-second Story therefore arrives at the model as 240,000 samples and 960,000 bytes — less than one of the 30-second windows it is cut into, which is 480,000 samples and 1,920,000 bytes.

InVideo WW

The rest of this page is the part that is specific to Stories rather than to clips in general: why the 24 hours matters more than the length, what each second costs in bytes, the three ways to turn a Story into a file at all, and what the three best-known tools say about Stories in their own words.

Why a Story is not a Reel with a shorter timer

The lifetime is the whole difference, and it is the one fact on this page that comes from somebody else rather than from this machine. wayin.ai's own blog states it twice in its Instagram copy: “Stories are ephemeral, disappearing after 24 hours, but they offer high discoverability and are great for engaging existing followers.” That is 86,400 seconds from the moment it is posted, and it is a property of the post rather than a setting the viewer can change.

What a Story costs in bytes, by length

The numbers below are arithmetic from two constants rather than measurements of Stories, and both constants are visible in the source: RATE = 16000 on line 236 of app.js, and a decoded sample being 32 bits, which is the Web Audio specification rather than this page's choice. 16,000 × 1 × 4 = 64,000 bytes a second, and every figure in this section is that number multiplied by a length.

Four Story lengths drawn inside the model's thirty-second windows. A five-second Story fills a sixth of one window and a fifteen-second Story fills half of one, but both are still handed over as a whole window. A thirty-second Story fills exactly one window, and a sixty-second Story runs into a second one. A Story shorter than the window is padded to a full one The model is handed a fixed window whether the Story fills it or not. one 30-second window the next one a 5-second Story empty samples, still read a 15-second Story empty samples, still read a 30-second Story a 60-second Story The dark bar is audio; the pale remainder is the part of the window the model reads anyway. Past one full window a longer Story buys words, not fewer windows.
The bars are the audio and the pale remainder is the padding, and the padding costs nothing extra because the window is what the model is given rather than what the Story happens to contain. A 5-second Story is 80,000 samples and 320,000 bytes and fills 80,000 of the window’s 480,000 samples; a 15-second Story is 240,000 samples and 960,000 bytes, still one window at half full; a 30-second Story is 480,000 samples and 1,920,000 bytes, which is exactly one window and the point where the padding stops; a 60-second Story is 960,000 samples and 3,840,000 bytes and becomes 2 windows, because chunk_length_s: 30 means 60 ÷ 30 = 2 calls. Every figure here is 64,000 bytes a second times a length, and the 64,000 comes from 16,000 samples a second at 32 bits in one channel — RATE = 16000 on line 236 of app.js, and the bit depth is the Web Audio specification rather than this page’s choice. The whole day of Story audio behind the 24-hour window would be 5,529,600,000 bytes if the microphone never stopped, which is 5,760 Stories of this length.

Three ways to get a Story into a file

Every route ends in the same place — a file on disk that the picker will take — and the difference between them is how much of the original audio survives. What does not change is the destination: 64,000 bytes a second at 16 kHz mono, whatever the file weighed.

  1. If you posted it, save your own copy. Your own Story is the only case where a clean copy exists without recording anything, and it is worth doing before the 86,400 seconds are up rather than after, because after there is nothing to save. This is the route with no re-encoding step in it, so the audio that reaches the model is the audio that was uploaded.
  2. Screen-record it while it plays. A recording made on the phone carries the audio the phone is playing, and the cost of that route is measurable in one direction only: at 16,000 samples a second the highest frequency that can survive the resample is 8,000 Hz, so anything a screen recording loses above 8,000 Hz was never going to reach the model. The loss that matters is in the band below 8,000 Hz, which is where speech lives, and a recording made in a quiet room keeps that band intact.
  3. Ask the person who posted it. Slower, but it is the only route that gets the original file rather than a copy of a playback, and for a Story with speech over music it is the difference between the words and a guess at them.
A Story's life drawn as a 24-hour bar. The Story exists inside the bar and is gone at the right-hand end. Below the bar, the only path into the tool is a copy taken on the visitor's own device: the copy becomes a file, the file is resampled to one channel at 16 kHz, cut into 30-second windows, and comes out as text. There is no arrow from the Story itself into the tool. Story exists posted gone the copy has to happen here a copy you keep one file, picked here 1 channel, 16 kHz, cut into 30-second windows text no link path
The solid bar is the only time a Story can be reached: 86,400 seconds, after which the address has nothing at it. Nothing connects the Story itself to the tool — the dashed arrow is the only path, and it goes through a copy made on the visitor's own device. From there the arithmetic is fixed: the copy is decoded and resampled to 1 channel at 16,000 samples a second, which is 64,000 bytes a second at 32 bits a sample, and cut into windows of chunk_length_s: 30. A 15-second Story is 240,000 samples and 960,000 bytes and fills half of one 480,000-sample window; a 60-second Story is 960,000 samples, 3,840,000 bytes and 2 windows. The crossed circle is the path that does not exist here: 0 of the picker's 12 entries accepts a link, and the word stor occurs 0 times in app.js's 22,349 bytes.

What happens inside the tab once the file is picked

The order of operations is the reason a Story that will not decode costs you a second rather than a download. The file is read into memory and handed to decodeAudioData before any model is fetched, so a file with no audio track is refused in about a second instead of after a 79.7 MB wait.

How long a Story takes to transcribe

The wait is set by the window count, not by the file size, and the only measurement this page has is for a 43-second clip: 18 to 42 seconds across a dozen runs, on a two-core, 4.2 GB machine, with the language picker set correctly. That clip is 43 × 16,000 = 688,000 samples and 2,752,000 bytes, and 43 ÷ 30 rounds up to 2 windows.

What the three best-known tools say about Stories

The three pages that outrank this one for instagram transcript were fetched again on 17 October 2026, and the counts below are over the copy held in this site's benchmark directory: 361,206 characters across 46 files.

What to do with the text once you have it

A Story transcript is usually wanted for something smaller than a transcript: a quote to post, a line to check, a caption to write. The three exports cover that without any further work — plain text for reading and searching, and the two subtitle formats for anything that expects timings. A 15-second Story produces a very short file: at 1.26 words a second the whole thing is about 19 words, so the subtitle file is a handful of cues rather than a page.

Can I transcribe a Story after the 24 hours are up?

Only if you already have a copy. The pipeline works on a file, not on an address, and 0 of the picker's 12 entries accepts a link or a username — so once the 86,400 seconds have passed and the Story's address has nothing at it, there is nothing left for this tool or any other to read. A transcript made inside the window is 19 words for a 15-second Story; the same Story a day later is 0 words, because there is no file.

Is there a Story link I can paste into this tool?

No, and there is no field to paste it into. app.js contains 1 fetch call of its own and it requests generation_config.json for the language list; the other two network destinations are the recognition library and the model weights. The picker's 12 entries are 2 wildcards and 10 named extensions, and 0 of them is a URL. A Story therefore has to arrive as a file you made on your own device.

Does a Story need to be downloaded before it can be transcribed?

Yes — in the sense that something has to exist as a file first, whether that is your own saved copy or a screen recording. The decode step is what turns a file into the 16,000 samples a second the model reads, and it runs before the model is fetched, so an empty or damaged file is refused in about a second rather than after a 79.7 MB download. What does not happen at any point is an upload: 0 requests carry the file, and allowLocalModels = false means the weights come from huggingface.co while the Story stays in the tab.

What does a Story with only music come back as?

Nothing usable, and the page says so rather than showing a panel headed Transcript. Whisper answers silence with an annotation — [Music], or in round brackets (smooth music) — and both forms are stripped before the word count. Measured, a clip with a music bed and no speech was once headed “Transcript” with “2 words”, the two words being (smooth music); that is now caught, and the panel reads “No speech found” instead. For a 5-second Story at 320,000 bytes with no voice in it, that is the correct output.

How long will a 15-second Story take?

One window, which is the smallest job the model can be given. The nearest measurement is a 43-second clip — 688,000 samples, 2,752,000 bytes, 2 windows — which took between 18 and 42 seconds across a dozen runs on a two-core, 4.2 GB machine. A 15-second Story is 240,000 samples and 1 window, so it sits below that range rather than inside it, and the first run of a session also carries the 79.7 MB model download.

Last checked: 21 October 2026. The byte figures on this page are arithmetic from two inputs, both re-checked by printing them on this machine before they were written down: RATE = 16000 on line 236 of app.js, and a decoded audio sample being 32 bits, which is the Web Audio specification rather than a measurement — so 16,000 × 1 × 4 = 64,000 bytes a second, 15 × 64,000 = 960,000 bytes for a 15-second Story, 86,400 × 64,000 = 5,529,600,000 bytes for a day of continuous audio, and 86,400 ÷ 15 = 5,760 Stories. The source counts were read from the deployed files on this machine: app.js is 22,349 bytes and style.css 11,749 bytes, the picker's accept list has 12 entries made of 2 wildcards and 10 named extensions, the string stor occurs 0 times in app.js, and chunk_length_s: 30, dtype: 'q8', device: 'wasm' and allowLocalModels = false are read from lines 282, 175, 176 and 158. The measured figures — 26.0 MB at the first progress sample and 79.7 MB by the third, a run that should have cost 44 MB costing 118 MB, the 43-second clip's 18-to-42-second spread, 54 words against 404 words for the wrong language, the 30,000 ms object-URL revoke and the refusal of a file with no audio track in about a second — are this tool's own records, taken in an ordinary browser tab on a two-core, 4.2 GB machine. The 24-hour lifetime is not this page's measurement: it is quoted from wayin.ai's own blog copy, and the sentence about pasting a Story link is reproduced exactly from wayin.ai's Instagram transcript page. The competitor counts are over 361,206 characters of their copy held in this site's benchmark directory, and the autocomplete figures are over the 351-entry list fetched on 17 October 2026.

If the clip you have is a Reel rather than a Story, the Reel length limit covers the ceiling that decides whether a long one transcribes, and private Reels is the page for the case where the post is behind a login. If the run comes back empty, the five failure modes is where to start, and what to do with a transcript covers the four outputs and what each costs. For a queue of Stories rather than one, bulk transcription explains why there is no batch button and what the model download costs on the first file against every file after it. If what you wanted was the text Instagram draws on the screen rather than the words spoken, extracting text from a video explains why that is a different pipeline, and how to get captions on a Reel covers the caption Instagram generates itself.