How to transcribe a private Instagram Reel
No tool that takes the link can do it, and that includes this one — but "private" is a property of the
link, not of the file, so the moment you have the file the question disappears. The three best-known
Instagram transcript tools all answer the private question with a flat no, in their own words, and the reason is
measurable rather than a matter of policy: asked for a Reel URL with no login, Instagram returned a
629,987-byte HTML shell that contained 0 <video> elements and 0 occurrences of
video_url; asked for a profile URL it returned a 302 to
/accounts/login/ with a 0-byte body. There is no media in either response to transcribe, so the
private flag is not what stops a link-based tool — the link never carried a video in the first place. The three
routes that do work are to bring the file, to record the playback, or to have whoever owns the post change its
visibility and accept what a link-based tool then does with it.
Each of the three tools is quoted exactly below, with its source page, and each quote is followed by what the limit it describes costs in decoded audio.
- getthescript.app — asked whether it works for private or restricted Reels, its own FAQ
answers "No. Only publicly accessible Reels are supported. Ensure the video is public and has clear spoken
content." That is the whole answer; nothing follows it. Its separate file page caps a file at 50 MB,
which is close to the 46.08 MB of decoded 48 kHz stereo audio inside a two-minute clip — a cap that
only makes sense for a machine receiving media rather than for one fetching a page.
(getthescript.app,
/instagram-transcriptand/video-to-text.) - speakapp.com — its Instagram page carries the heading "Can I transcribe private
Reels?" and the answer node is not in the HTML at all; the visible body instead says "We only access
public Reels" and "We support all public Reels up to 2 minutes long", with the limit stated a
second time as "longer videos trimmed to 2 min". Two minutes is not a round policy number: it is
46.08 MB of decoded 48 kHz stereo audio, or 53.76 MB once the same clip has also been resampled
to the 16 kHz mono the model actually reads. (speakapp.com,
/t/tools/instagram-transcript.) - wayin.ai — its FAQ asks "Does the Instagram transcript generator work on private
accounts?" and answers "No. WayinVideo can only access and transcribe videos from public Instagram
profiles. If a Reel or post is set to private or restricted, our system cannot retrieve the media." The
phrase to notice is "our system cannot retrieve the media" — the tool's own account of itself is that a
server goes and fetches the video. The same page invites an hour-long Live replay "no matter the length",
and an hour of decoded 48 kHz stereo audio is 1,382.4 MB.
(wayin.ai,
/tools/video-transcript-generator/instagram/.)
What Instagram actually hands an anonymous request
Before treating "private" as the obstacle, it is worth seeing what a public Reel returns to a client that is
not logged in, because the two look the same from the outside. Measured on 10 October 2026 with a
Chrome 141 user agent, no cookies and no session: a profile URL answered with HTTP 302 pointing at
/accounts/login/ and a body of 0 bytes, and a Reel URL answered with HTTP 200 and
629,987 bytes of HTML whose visible text came to 5,121 words spread across 79 <script>
tags, 44 of which load an external file. Inside all of that there were 0 <video>
elements and 0 occurrences of video_url: the page is a shell that builds itself after it has
decided who is asking.
The size does not depend on whether the post exists, either, which is the part that matters here. Three
requests on that date — two Reel paths and one post path, one of them carrying an ID that was made up on the
spot — came back as 629,987, 629,991 and 629,991 bytes, a spread of 4 bytes, with identical counts of
the strings login (19), Login (5), signup (6) and logged_out
(4). Repeating the first request minutes later returned 629,983 bytes. A response that is the same size for
a real post and an invented one is not a response that contains a video, and it is why a server-side tool has to
either hold a session of its own or reach around the HTML entirely — and why, once a post is private, there is
nothing left for it to reach for.
Why is a private Reel different from a public one for a link-based tool?
Because the tool's whole job is to fetch something from Instagram, and Instagram decides what it hands over based on who is asking, not on what the URL says. A public post still requires the fetcher to get past the shell above; a private post adds a second wall on top, and the tool has no session to present at either one. This is the honest version of the "no" that all three sites give, and it is the version none of them writes down. The thing they do not say is the useful half: none of that has anything to do with the recording itself. The audio in a private Reel is ordinary audio, and a tool that never asks Instagram for anything is not affected by a setting that lives on Instagram's side.
Route 1 — bring the file, not the link
This is the route that works for a private Reel, because it never mentions the Reel to anyone. The input on
the front page is a file picker — 2 <input> elements, of types
file and checkbox — and across the site's 10 HTML files there are
0 <form> elements, so nothing is ever submitted anywhere. The 22,349-byte script that
does the work contains exactly 1 fetch( and exactly 1 import(, aimed at
cdn.jsdelivr.net for the recognition library and huggingface.co for the speech model,
and 0 of FormData, XMLHttpRequest, sendBeacon,
multipart and POST. There is no code path here that could ask Instagram a question,
which is exactly why a private post is not a special case: the file is read inside the tab, and the tab has
never heard of the post.
What that costs you is memory rather than access. A 60-second Reel's audio decodes to 23.04 MB at 48 kHz stereo and then to 3.84 MB at the model's 16 kHz mono, so a one-minute clip is 26.88 MB held in the tab; a three-minute one is 69.12 MB plus 11.52 MB, or 80.64 MB. The model itself is the larger object: 79.7 MB for the default and 43.6 MB for the smaller one, of which 23.20 MB of quantised encoder and 53.69 MB of quantised decoder weights make up 76.89 MB. For scale, every file this site is made of — all 14 of them, including the 22,349-byte script and the 9,455-byte stylesheet — adds up to 149,743 bytes, so one model download is roughly 532 times the size of the entire site.
Where the file comes from is your business and not the tool's. A Reel you posted yourself can be saved from your own account; a collaborator can send you the export; a file you already have from anywhere at all is enough. Nothing about the route requires the post to be public, because nothing about the route involves the post.
Route 2 — record the playback
If you can watch the Reel but cannot obtain the file, a screen recording with audio produces one, and a
recording is a file like any other to this page: the picker accepts 10 explicit extensions
(.mp4, .mov, .m4v, .webm, .mkv,
.mp3, .m4a, .wav, .ogg, .flac) on top of
video/* and audio/*, and the script reads the audio track out of whatever container it
finds. The recording's own size is irrelevant to the transcription, because only the decoded audio matters:
a one-minute recording is 26.88 MB in the tab and a three-minute one is 80.64 MB, the same as any
other file of the same length.
The catch is honest and worth stating: a recording is a second-generation copy, so anything that was already hard to hear stays hard to hear, and if you record a phone screen with a second device you are adding room noise on top of it. This route trades a little accuracy for access. It does not trade privacy — the recording is decoded in the tab and 0 bytes of it leave the machine, the only two downloads being the library and the model weights, and the model is recognised in slices of 30 seconds, which at 16 kHz mono is 1.92 MB per slice no matter how long the recording is.
Route 3 — change the post's visibility, and know what a link-based tool then does
Only whoever owns the post can change its visibility, and if that is you or someone who will answer a message, flipping it to public removes the login wall and opens the link route — with two costs attached. The first is that the media then travels to somebody else's machine: a two-minute clip is 46.08 MB of decoded 48 kHz stereo audio arriving at a server, and a one-hour Live replay is 1,382.4 MB. The second is that one of the three link-based tools stops at two minutes, so a public long Reel still gets trimmed there. The alternative that avoids both is to flip the post to public, save the file from the now-public page, and then transcribe that file locally with the post's visibility changed back — at which point Route 1 applies again and the 46.08 MB stays on your own machine.
Is there any tool that can read a private Reel's link?
No, and the measurement above is the reason rather than an opinion. A tool that could would have to be logged in as you, because that is the only thing that changes Instagram's answer — and an anonymous web page cannot hold your session without your credentials, which no transcript tool asks for and none of the three does. Anything that claims otherwise is either asking you to authenticate into it, or asking you to install something that can read your account, and both of those are larger decisions than transcribing one Reel. The practical answer is the same one the three sites give, reached by a different road: the link is the wrong object to hand over. The file is the right one, and a file has no visibility setting.
The two routes side by side
<video>
elements for a Reel URL, and the same size whether or not the post exists. Right: the file route, where the only
two requests the page can make are the GETs for the library and the 79.7 MB of model weights, and the
visitor's own bytes stay in the tab — 26.88 MB for a one-minute clip, 80.64 MB for a three-minute one.Which route applies to you
If the Reel is yours, Route 1 is immediate: save your own file and drop it in the picker, and the fact that the post is private never comes up. If it is not yours but you can watch it, Route 2 works today with no one else's cooperation, at the cost of a second-generation copy. If you need the words and you know the owner, Route 3 is the cleanest, and the thing to tell them is that the setting they are changing is on the post and not on the recording — a two-minute clip is 46.08 MB of audio whichever route it takes, so the only real choice is whose machine holds it. What no route offers is a tool that reads a private link, because the response Instagram sends to a stranger is a 630 KB page with nothing in it, and a 630 KB page is not a Reel.
Last checked: 10 October 2026. The Instagram figures were measured on 10 October 2026
from this machine with a Chrome 141 user agent, no cookies and no session: the 302 and the 0-byte body, the
629,987 / 629,991 / 629,991 / 629,983 byte response sizes, the 5,121 words of visible text, the
79 <script> tags and the 44 external ones are all read off those responses, and the
0 <video> and 0 video_url counts come from the same bytes. The site
figures are derived from this site's own source on the same day, where the constants that matter are
RATE = 16000, chunk_length_s: 30, dtype: 'q8',
device: 'wasm' and allowLocalModels = false, and where the structural counts
(1 fetch(, 1 import(, 2 hosts, 0 <form>,
0 uploads, 0 storage APIs) were re-counted on the same day rather than remembered. The byte arithmetic
follows the Web Audio specification, which fixes decoded samples at 32 bits each, so one second of
48 kHz stereo is 48,000 × 2 × 4 = 384,000 bytes and the same second at
16 kHz mono is 64,000 bytes; every figure printed above was computed and checked before it was written
down. The memory and timing figures for the two models (79.7 MB and 43.6 MB, split 23.20 MB of
encoder and 53.69 MB of decoder) were measured in an ordinary browser tab on a two-core, four-gigabyte
machine. The three quoted sentences are quoted exactly as published and read on 10 October 2026, with
the page named for each. Figures that could not be derived are absent rather than estimated.
The mechanics behind Route 1 are the same ones on the page about whether transcribing uploads the video, which counts every request this site is capable of making. The no-login page covers what an anonymous run gets you from each of the three tools; the Reel length limit page covers the ceiling that decides whether a long clip finishes; and bulk transcribing Instagram Reels covers what changes when there is more than one file.