Audio Library
The Audio Library is a logged-in Tools page for storing, playing, and linking audio files.
Access
- Browse / play inside Tools:
/audio-library (logged-in web users)
- Upload new audio: admins and users who have the
audio.upload permission
Current behavior
- All signed-in users can open the library page, search the stored rows, and play audio directly in the browser.
- Upload is intentionally narrower than playback. A normal logged-in user can browse the archive without automatically being allowed to add files.
- Files are stored inside the repository under
storage/app/audio-library, which stays commit-friendly instead of living in one ignored runtime-only folder.
- Each stored row can expose:
- an internal signed-in playback URL,
- an internal signed-in download URL,
- an optional direct public playback URL,
- an optional direct public download URL.
Public link switches
When an uploader edits one audio row, two independent public switches are available:
- Publicly playable URL — lets the file be streamed directly through one public URL.
- Publicly downloadable URL — lets the file be downloaded directly through one public URL.
These switches are independent so one file can be:
- playable only,
- downloadable only,
- both playable and downloadable,
- or private to the signed-in Tools GUI only.
Supported audio formats right now
The first slice accepts common audio uploads such as:
mp3
m4a
aac
wav
ogg / oga
flac
opus
webm audio
Typical workflow
- Open
/audio-library.
- Search existing rows if needed.
- Upload a new audio file if your account has upload access.
- Decide whether the file should stay signed-in-only or also expose a direct public playback/download link.
- Copy the generated playback or download URL from the stored row.
Notes
- The first slice is intentionally focused on audio only. It is not a generic all-file storage system.
- Public links are route-based URLs, so the page can keep play/download behavior explicit per file instead of exposing every stored file automatically.
- If a file is deleted from the library, the stored metadata row and the underlying file are removed together.
Upload progress and errors
The upload form sends files in the background and displays upload progress without navigating away. When saving completes the library refreshes. Validation errors, network failures and temporary database contention are reported in the form so the uploader can retry. Standard form submission remains available when JavaScript is disabled.