Verify audio stays on this device
LocalAudioCut trims an MP3, a voice memo, or a ringtone clip in the browser. This page is the check you can run yourself: which network calls are normal, and which calls would mean the media file left the tab. The cutter is on the home page. The short policy is the privacy policy. The copyright rules are the terms. Publisher context is on about.
What you are proving
You are proving that cutting does not upload the media file. You are not proving that nothing on your computer can see the bytes. A browser extension, malware, or a recorder you installed can still read a tab. This site does not receive the file, and it does not claim to block other software on the device. Files never leave this device through this page.
If Network shows a POST or PUT of your audio, stop using that session and write to contact@localaudiocut.pages.dev with the page URL and what you saw — without attaching the recording. That would not match how this tool is built.
Steps in DevTools
- Open the cutter. Use a small MP3 you are allowed to test with, not a sensitive memo, the first time you learn the panel.
- Open DevTools → Network. In Chrome that panel is documented as the Network panel. In Firefox it is the Network Monitor. Enable “Preserve log” so a reload does not wipe the list.
- Reload the page once and let the first requests finish. You should see same-origin GETs for the document,
/assets/styles.css,/assets/tool.js, and the favicon. - Drop the audio file. Wait until the waveform or an error appears. Sort or scan the new rows. There should be no request whose body is that file, and no POST or PUT of the media to this host or any other host.
- Set a short start and end and press cut. A GET for
/assets/vendor/lamejs.iife.jsfrom this same host is expected the first time MP3 encoding runs. Open that response. It is JavaScript. It does not contain your samples, and the request body is empty. - Download WAV or MP3. The link is a
blob:URL created in the tab. The browser is not fetching those bytes from our server.
Expected requests
- Page assets. HTML, CSS,
tool.js, and the icon, all GET, all from this site, when the page loads. - lamejs, only if you cut. Same-origin GET of
/assets/vendor/lamejs.iife.js. That file is the MP3 encoder (lamejs, LGPL), loaded so the tab can write 128 kbps MP3. It is not your audio. If MP3 encoding never starts, you may not see this row, and the WAV can still be produced. - Analytics beacon, maybe. The privacy policy describes Cloudflare Web Analytics. If that product is enabled for the zone, a request to
cloudflareinsights.comcan show up. It is a page-view beacon. It is not an upload of the file you dropped. The HTML we ship does not include an advertising script.
Requests that should not appear
- A POST, PUT, or PATCH that carries the MP3, WAV, or M4A.
- A call to a third-party convert, transcribe, or “AI trim” API after you drop the file.
- A fetch of YouTube, a playlist, a podcast enclosure, or any other remote media URL. The tool has no address field and does not download streams.
- A script load from an ad host. Response headers for this site set a Content-Security-Policy with
script-src 'self'(plusblob:andwasm-unsafe-evalfor the audio work in the tab) and do not list an ad network.
Why the file can stay in the tab
The drop area is a file input. The File API lets the page read a file the user chose. It does not give the page a path it can upload on its own later. decodeAudioData turns those bytes into an audio buffer. The slice is an OfflineAudioContext render. The download buttons point at object URLs from URL.createObjectURL. When you close the tab, that buffer goes with it. We have no project library to reopen.
M4A still depends on the browser decoder. Chrome and Safari usually decode it. Firefox often fails. A decode error is local. It is not an upload. Files over 250 MB are refused before decode. Output is 16-bit WAV, and MP3 when the encode works. The page does not write .m4r.
Publisher, contact, and policy pages
These pages stay on the existing URLs. They are how you learn who publishes the tool and how to reach us:
- About — who publishes the pages.dev experiment and what the cutter is for.
- Contact — a working mailbox for wording and bugs, with clear “do not send the audio.”
- Privacy — no audio upload, hosting logs, optional Web Analytics, children note.
- Terms — copyright, anti-piracy, honest limits.
- This trust page — a verifiable Network check for the cut step.
This experiment does not run advertising scripts today. If that ever changes, privacy and about would need an honest update first.
Where to go next
- Cut or trim a file
- Cut a ringtone from an MP3
- Trim a voice memo
- Trim audio for email
- About · Privacy · Terms · Contact
Questions about this wording, email contact@localaudiocut.pages.dev. Do not attach the audio. We cannot accept the file, and we do not want a private memo in a mailbox.
Sources
- Chrome DevTools — Network panel: developer.chrome.com/docs/devtools/network
- Firefox — Network Monitor: firefox-source-docs.mozilla.org/…/network_monitor
- MDN — Using files from web applications: developer.mozilla.org/…/Using_files_from_web_applications
- MDN —
decodeAudioData: developer.mozilla.org/…/decodeAudioData - MDN —
OfflineAudioContext: developer.mozilla.org/…/OfflineAudioContext - MDN —
URL.createObjectURL: developer.mozilla.org/…/createObjectURL_static - MDN —
Blob: developer.mozilla.org/…/Blob - LAME project (encoder family). The lamejs file you see in Network is served from this site: en.wikipedia.org/wiki/LAME
FAQ
How do I prove this MP3 cutter does not upload my file?
Open DevTools → Network, drop a local file, and cut. You should see same-origin page assets and, when MP3 encoding runs, a GET of lamejs from this host. You should not see a POST or PUT of the media. Downloads use a blob URL created in the tab.
Is the lamejs script load an upload of my audio?
No. It is a GET of /assets/vendor/lamejs.iife.js from this site. The response is the encoder script. Your samples are not in that request or that file. Encoding then runs in the tab.
What is a blob download?
After the cut, the WAV and MP3 links point at blob: URLs made with URL.createObjectURL on a Blob built in the page. The browser saves those bytes from memory. It does not download them from our server.
Which network requests are a problem?
A problem is any request that sends the audio file, calls a third-party trim or transcribe API, or fetches a remote media address. Static assets, the lamejs script, and an optional Cloudflare Web Analytics beacon are not the audio upload.
Does this check cover a voice memo as well as an MP3?
Yes. M4A, WAV, and MP3 all stay in the tab for decode and cut. M4A may fail to decode in Firefox. That error is local. Use the same Network panel either way. The voice memo guide covers the decoder limit.
Can the page fetch a YouTube or stream URL?
No. There is no URL field and no stream ripper. You can only choose a file already on the device, and the terms require that you have the rights to cut it.