A tool for creators

Why Instagram transcripts fail or pick up music

A caption extractor needs a text track. If there is none, transcribe the audio. If the transcript includes song lyrics, start with the original dialogue track or isolate speech before transcribing. Our tool reads the audio and filters for speech, but it does not remove music mixed into the same track.

Pull the spoken words out of a Reel or video post, then copy the transcript into your notes or save it as a text file.

Use a public Reel or video post link.

Published 2026-11-08 · Tested 2026-11-08

Why an extractor fails when a Reel has no native captions

A Reel can show three kinds of text: the description below the post, closed captions that the player can display in sync with playback, and words drawn into the video frames. Closed captions are timed text as far as the player is concerned. Burned-in subtitles are pixels. Neither the description nor the pixels give a caption extractor a sequence of spoken words with timestamps.

A caption-only tool looks for text already exposed by the platform. That path avoids fetching and decoding media and running speech recognition, which explains why a free service might choose it. It does not establish how many tools do. If captions were never generated, or the player has them but the public response does not expose them, there is nothing for that extraction path to return. Instagram’s internal storage format is not established by what its public player displays.

What our Instagram transcript request reads instead

Our server normalizes the submitted address to a Reel URL and requests its public embed. It looks for a video URL in the embed response and checks that the address uses HTTPS and belongs to an allowed media host. It then fetches the media and passes the bytes to the speech model. The request never asks for a caption track, so native captions can be absent and the audio can still yield text.

That also tells us what a failure means. If the embed response has no usable video URL, the request stops before speech recognition. If the model runs but returns no text, the site reports that separately. The first error cannot tell you whether the Reel has captions. The second cannot tell you whether any visible subtitles were drawn into the frames.

Why background music turns into words

A video container can carry separate streams for pictures, sound and subtitles. Selecting an audio stream discards the pictures and subtitle streams. It does not split the sources inside that audio stream. If dialogue and a soundtrack were mixed before export, the decoder gets a single waveform containing both. A stereo stream can still have both sources in both channels.

A speech recognizer can hear sung lyrics as language. Loud music can also mask a spoken syllable, leaving the recognizer to infer a word from incomplete evidence. If you have the editing project or a separate dialogue recording, export that track before transcribing. If you only have the mix, use speech isolation and listen to the result before running recognition. A music separator's vocal stem can keep singing as well as dialogue. If both are still audible, review the overlapping segment against the original and mark unclear words rather than guessing. FFmpeg stream selection and music source separation describe these two different operations.

What our speech filter can and cannot do

Our server sends the downloaded media to Whisper with voice activity detection enabled. The filter selects regions likely to contain speech. It does not subtract the soundtrack underneath a sentence, and singing can still look like voice. The site also disables carrying previously decoded text into the next segment, so an earlier line is not supplied as context for the next one. That setting does not identify a lyric or separate overlapping voices.

Our public link workflow has no dialogue isolation step and returns the model's text after trimming outer whitespace. If a line looks like a lyric, the site has not labeled it as spoken dialogue. Compare it with what the person says at that point. When a clean dialogue recording exists, use it in a separate audio transcription workflow. Speech model input options

My Reel Transcript