Skip to content

Recording

Recording saves the master broadcast mix to a file. This is useful for archiving shows, creating podcasts from a live broadcast, or producing demo content.

The recording captures the post-DSP master mix — exactly what goes to your broadcast output. This includes all decks, microphones, and soundboard pads in the final mix.

FormatContainerQualityTypical use
WAVPCM RIFFLossless, large fileArchival, audio editing
FLACFLACLossless, compressedArchival with smaller files
MP3MP3 (LAME)Lossy, small filePodcast distribution, sharing
OpusOGG OpusLossy, very smallStreaming archives, mobile

Recording files are named automatically with a timestamp:

bruhi-recording-2026-05-08-14-32-07.wav

You can customise the output directory in System → Recording Settings.

  • Click Record in the recording panel, or use the keyboard shortcut (see Keyboard Shortcuts).
  • A red recording indicator appears in the Live Broadcast workspace while recording is active.
  • Click Stop Recording to finish. The file is finalised and closed immediately.

Recording can also be started and stopped by automation rules:

Trigger: Clock time 18:00
Action: Start recording
Trigger: Clock time 22:00
Action: Stop recording

This creates hands-free show archives without operator intervention.

By default, recordings are saved to:

OSDefault path
macOS~/Documents/br\u016bhi/Recordings/
Windows%USERPROFILE%\Documents\br\u016bhi\Recordings\
Linux~/br\u016bhi/recordings/

Change the path in System → Recording Settings.


The recording API starts a WAV capture of the station’s master output:

POST /api/stations/{id}/record/start
POST /api/stations/{id}/record/stop

Files are stored at /app/audio_files/ inside the container (mounted as a Docker volume for persistence).

GET /api/stations/{id}/recordings # List all recordings
GET /api/stations/{id}/recordings/{file} # Download a recording
DELETE /api/stations/{id}/recordings/{file} # Delete a recording

Each recording entry includes:

  • Filename
  • File size
  • Created timestamp
  • Last modified timestamp

If you have S3 configured (see S3 Storage), recordings can be uploaded automatically after the session ends.

POST /api/stations/{id}/recordings/{file}/upload-to-s3

Once uploaded, the recording is accessible via a presigned URL. Presigned URLs expire after 1 hour by default.