Skip to content

audioproxy

Point it at your audio and request variants by URL: a 30-second preview, waveform data, a normalized podcast MP3. One master serves every format, nothing is generated in advance, and nothing is encoded twice. If you know imgproxy, this is that, for audio.

Describe the variant in the URL

f:opus/br:96/t:0:30/fade:1:1 is a 30-second faded Opus preview. Options double as the cache key, so one URL always means the same bytes. Sign it once and ship it anywhere.

Stream before the encode finishes

First bytes reach the client while ffmpeg is still working. Cached variants serve with Content-Length and Range support, so players seek instantly on every play after the first.

Deploy one container

Sources on a mounted directory or in any S3-compatible store; the variant cache likewise. No database, no queue, no sidecar; configuration is a handful of environment variables.

Build against the contract

The API contract fixes the URL grammar, cache-key rules and error codes; module-level reference lives on hexdocs.pm/audio_proxy. This site covers operating and integrating.