Audio Extractor in the browser is not a generate
/free-tools/audio-extractor never spends a credit. Do not pay a model to do an in-browser file job.
/free-tools/audio-extractor never spends a credit. Do not pay a model to do an in-browser file job.
The extractor demuxes. You choose a video or an audio file; the tab decodes the track and hands you 16-bit PCM WAV. That is a File API read plus decodeAudioData, not a catalog row. Mixing the two is how a stem you already paid to generate gets billed a second time as "make a version with just the voice."
Nothing is uploaded and nothing is billed
/free-tools is the local-utility surface: Canvas, File API, arithmetic. Audio Extractor sits in the Audio group with the trimmer and the loudness meter. It never calls a model. It never hits an endpoint. Unplug the network and the download still works, because there is nowhere for the samples to go.
Audio up to 80 MB and 20 minutes once decoded. decodeAudioData expands the whole file into PCM. A small mp3 can become hundreds of megabytes of Float32 samples. That is the real ceiling, which is why a long podcast is heavy even when the compressed file looks small. A 20 MB warning exists so you see the cost in RAM before the tab dies.
Accept is audio/*,video/*. A silent track still exports — it will be a valid WAV of silence. A file with no audio track, or a codec the browser does not ship (AC-3, some MPEG variants), fails outright. Try MP4/AAC, WebM, MP3 or WAV.
A generate is a catalog row: a video model asked to "make a version with just the voice," a stem splitter, a new take. That row is billed. It will also restyle the performance. Demuxing is not a style. It is the samples that were already in the file.
The browser writes WAV because it cannot write MP3
Browsers decode many codecs but ship no MP3 or AAC encoder. WAV is uncompressed PCM, which this tool writes from the decoded samples by hand. The file is large. Every editor opens it. That is the trade.
The sample rate is whatever the browser's AudioContext decoded to — often 48 kHz, even if the source was 44.1 kHz. The download name is {original}.wav. Channels and duration are reported before you export: you see N channels, N Hz, mm:ss and then you click Download WAV.
This is not a lossless cut of the original bitstream. The browser has already decoded. You are not copying packets. You are writing 16-bit PCM of what the tab heard. If you needed the original AAC inside an MP4 left untouched, you needed a different, offline tool that copies the track. This page is the decode you can run in a tab.
The encoder lives in audioBufferToWav. There is no cloud transcode. There is no "high quality" toggle. Bit depth is 16. That is the whole product.
Models are the wrong tool for a demux
Open the cost hub when you are about to generate: per-second video, per-1,000-character TTS, per-call stills, per-export edits. The app quotes before it charges. Audio Extractor never appears on that map, because it never dispatches. There is no quote because there is no job.
The expensive confusion is sending a finished clip through a model with the instruction "export just the voice." You will pay the meter. You may get a voice. You will also get a restyled take. Then you will still want the original stem.
Do the extract last, on the file you are willing to flatten to WAV. Do the generate first, on purpose, only if you needed a new performance.
If you needed a new score, that is a generate. Extractor is a demux.
FAQ
Does this spend credits if I am logged in?
No. Login does not change the tool. There is no job, so there is no meter. Generation still costs credits; this page is not generation.
Does the video leave my laptop?
No. The chosen file is decoded in the tab. The WAV is built from that buffer and saved locally. There is no upload step to skip, because there is no upload.
Why WAV and not MP3?
The browser can decode many codecs. It does not ship an MP3 or AAC encoder, so the only format this tool can write honestly is uncompressed PCM. Editors open WAV. The rate follows the AudioContext — often 48 kHz even when the source was 44.1.
Why not mute a regenerate, or run a stem model, to "extract" audio?
That is a billed new file. If the take already has the voice you want, demux it here. If you need a different voice, pick a generate row on purpose — not this page.