PrivateMP3

How converting without uploading works

Follow the source bytes, temporary output and network requests to check exactly what stays on the device.

What the Network panel should show

Open browser developer tools, select the Network panel, clear its existing entries and then choose a local file in PrivateMP3. The page can continue making requests for its own scripts, Google advertising, Google Analytics and Cloudflare performance measurement. Choosing MP3 may also load the site's MP3 encoder module on demand. Those requests are page resources or measurement events, not the selected media.

PrivateMP3's analytics events can report that decoding support is missing, that conversion succeeded, the chosen output format, whether AAC packet copy was used, or the processing-stage error code. They do not contain the source file, its name, contents, duration or source codec. The Privacy Policy lists the same fields.

How the source reaches the worker

The file input gives the page a File object defined by the Web File API. PrivateMP3 passes that object to a dedicated module worker and wraps it in a local blob source. The container reader can request byte ranges from that object to find format information, tracks and compressed packets. No HTTP request is needed to read those ranges.

The worker lists only audio tracks for the picker. For the waveform it decodes the selected track and reduces many samples into minimum-and-maximum peak buckets. For conversion it either reads encoded AAC packets for M4A copy or decodes audio samples and feeds the chosen output writer. Video frames are not decoded for an audio export.

Local processing does not mean whole-file buffering

The source is read as the parser and decoder need it instead of first being posted to a conversion server. The waveform keeps a bounded set of display peaks rather than retaining all decoded PCM. This design reduces peak memory, but it does not make file duration irrelevant: every sample needed for the waveform or output still has to be processed.

Large jobs can take longer, encounter an unsupported decoder, run out of browser storage or be cancelled when a phone suspends the tab. PrivateMP3 therefore makes no fixed gigabyte, duration or processing-time guarantee.

Where the new output is written

When available, the worker writes the output progressively to the browser's origin-private file system. OPFS is private to the site origin and subject to browser storage quotas. It lets the output writer update container bytes at specific positions without holding the complete result in JavaScript memory.

The temporary output remains in PrivateMP3's browser storage until another conversion replaces it or you clear the site's stored data. If OPFS is unavailable, the implementation falls back to an in-memory buffer. Pressing Save file creates the normal browser download; it does not upload the result.

Why the page still uses the internet

The initial HTML, style sheet, worker and media libraries must be delivered to the browser. Ads, Google Analytics and the Cloudflare performance beacon make separate requests while the page is open. A blob URL used by the preview player is a local browser reference, not a remote address.

“The source file is not uploaded” is therefore narrower and more useful than claiming the site makes no network connections. It also does not mean the visit is anonymous. Page requests and limited measurement data still reach the services named in the Privacy Policy.

A repeatable check

  1. Clear the Network panel and reload the page so every resource is visible.
  2. Choose a local file with a recognizable name, but do not use confidential media for a test.
  3. Wait for the waveform and make a short conversion.
  4. Inspect request URLs, methods, payloads and transferred sizes. Page scripts and measurement requests should be visible; there should be no request carrying the source bytes or file name.
  5. Repeat once with MP3 and once with eligible unchanged AAC-to-M4A. The MP3 encoder module may appear only in the MP3 run, while neither run should upload the media.

This procedure checks the behavior of the current page in the current browser. It is better evidence than an untested speed or file-size claim.

Advertisement

Last updated 2026-08-14