How extracting audio in a browser tab actually works
Every other online video-to-audio converter uploads your video. This one does not, and the difference is worth understanding — including the places where it makes this tool worse, not better.
Free on iPhone and iPad, for the videos already in your camera roll. Works offline; one free conversion, then a subscription.
The engine is FFmpeg, compiled to WebAssembly
FFmpeg is the program almost every media tool on earth uses underneath, including the ones that charge a subscription to run it on their servers. Version 0.12.10 of it has been compiled to WebAssembly, which browsers can execute directly. When you drop a video on this page, that build starts inside the tab and does the work there.
It is a 32 MB download the first time. After that your browser caches it for a year, so a second visit starts with no wait. It is served from this site's own domain, never a CDN — which matters for the next section.
Why “nothing is uploaded” is enforced, not promised
Any site can write “your files are safe with us”. This one ships a Content Security Policy that says connect-src 'self' blob:, which instructs your browser to block every outbound request this page might make to anywhere but this domain. There is no fetch, no XHR, no WebSocket and no form post that could carry your video off the machine, because the browser itself would refuse it.
The practical demonstration: load this page, turn off your Wi-Fi, and extract something. It works. A converter that uploads cannot do that.
The video is mounted, not loaded
This is the part that makes video work in a browser at all. A tab has a limited amount of memory, and a film is far larger than an audio file — so a tool that reads the whole video into memory falls over on exactly the files people care about.
Instead, the file is mounted: FFmpeg is handed the file object itself and reads slices of it on demand, the same way a program on your desktop reads from disk. It walks the container, skips the picture entirely, and pulls out only the audio packets. What has to fit in memory is the soundtrack, not the film.
The ceiling that remains is about 2 GB, where the WebAssembly build's file addressing gives out, and it is lower on an iPhone because Safari gives a tab less room than a desktop browser does.
Copying, not converting
A video file is a container holding separate streams: one for the picture, one or more for sound. The soundtrack inside an MP4 is almost always AAC — and an .m4a is the same container format carrying only that AAC. So “extracting the audio” does not need an encoder at all: the stream is lifted out and given a new wrapper, untouched.
That is why an M4A extraction finishes in seconds on a two-hour film while an MP3 of the same film takes minutes. MP3 is a different codec, so the audio has to be decoded and compressed again. Old AVI files usually carry MP3 already, and WebM carries Opus; both can come out the same untouched way.
The catch worth knowing: FFmpeg will let you copy an AAC stream into a WAV container and report success. The file it produces plays nowhere. This site keeps its own list of which pairs are genuinely legal rather than trusting FFmpeg to refuse — a check that is tested against real video files on every build.
What an extraction costs
- A copy — nothing changes. Free, and identical to what was in the video.
- Lossless to lossless — a camera master's PCM into WAV or FLAC. Every sample survives.
- An encode — anything to MP3, or to AAC from a non-AAC source. Detail is discarded to make the file smaller, and the soundtrack in a video has usually been through an encoder once already.
No converter anywhere can put back what an earlier encode discarded. Asking for 320 kbps MP3 from a video whose soundtrack is 128 kbps AAC gives you a much larger file containing the same audio, slightly degraded by the second pass. The tool says so before you press the button.
Where this is the wrong tool
- Videos over about 2 GB. The file addressing in this build gives out. The iPhone app has no such ceiling.
- iPhone Safari. A 32 MB WebAssembly engine in a tab with a small memory allowance sometimes will not start at all. That is the case the app exists for.
- The first visit on a slow connection. 32 MB is a real download.
- Opus output from a non-Opus video. The good Opus encoder crashes this build, so Opus appears only as a copy of a track that is already Opus.
- Anything DRM-protected. Purchased films and streaming downloads are encrypted; no converter will open them, and one that claims it can is lying to you.
- A link rather than a file. This works on videos that are already on your device. It does not take URLs.
What it is built from
FFmpeg is licensed under the GPL and LGPL, and this build includes GPL components, so the licence terms travel with it. The full notice and the source links are on the open source licences page.