beetpost - Man Page

A local media playback bridge for MusicBrainz scrobbling via ListenBrainz.

Synopsis

beetpost

Description

Beetpost is an optional service that bridges local media playback events from MPRIS-enabled players or an MPD server to MusicBrainz scrobbling via ListenBrainz. It sends scrobbles to Beetbrainz for enrichment before submission to ListenBrainz. Beetpost is not intended for use with content not residing in your local Beets database.

Requirements

To utilize `beetpost`, the following are needed:

Configuration

`Beetpost` is configured primarily through environment variables, typically set within its `systemd` service unit file or through user overrides.

BEETPOST_LOG_LEVEL
  • Description: Controls the verbosity of the `Beetpost` logs.
  • Default: `info`
  • Example: `BEETPOST_LOG_LEVEL="info"`
MPD_ENABLE
  • Description: TRUE/FALSE toggle to enable or disable `Beetpost` MPD processing.
  • Default: `TRUE`
  • Example: `MPD_ENABLE="FALSE"`
BEETBRAINZ_URL_MPD
  • Description: The URL where `Beetpost` will send its data, pointing to your Beetbrainz instance's mpd webhook endpoint.
  • Default: `http://localhost:5000/mpd`
  • Example: `BEETBRAINZ_URL_MPD="http://localhost:5000/mpd"`
MPD_PORT
  • Description: Must match the `port` in your MPD configuration.
  • Default: `6600`
  • Example: `MPD_PORT="6600"`
MPD_HOST
  • Description: Must match the `bind_to_address` in your MPD configuration.
  • Default: `127.0.0.1`
  • Example: `MPD_HOST="127.0.0.1"`
MPRISPOST_ENABLE
  • Description: TRUE/FALSE toggle to enable or disable `Beetpost` MPRIS processing.
  • Default: `TRUE`
  • Example: `MPRIS_ENABLE="FALSE"`
BEETBRAINZ_URL_MPRIS
  • Description: The URL where `Beetpost` will send its data, pointing to your Beetbrainz instance's mpris webhook endpoint.
  • Default: `http://localhost:5000/mpris`
  • Example: `BEETBRAINZ_URL_MPRIS="http://localhost:5000/mpris"`
MPRIS_ALLOWLIST
  • Description: A comma-separated list of mpris player names from which `Beetpost` will accept events.
  • Default: `qmmp,elisa`
  • Example: `MPRIS_ALLOWLIST="qmmp,elisa"`

Under normal circumstances, no additional user configuration is required, as the default settings in `beetpost.service` should suffice. Override configurations can be made via `systemctl --user edit beetpost.service`.

Installation

Beetpost is available in the official Fedora production repositories.

1.  .B Install the Beetpost package:

sudo dnf5 install golang-codeberg-gbcox-beetpost

This command will also ensure that Beetbrainz is installed as a dependency.

After installation, it is critical to proceed immediately to the "Enabling and Customizing the Systemd User Service" sections to configure Beetpost correctly for your environment. The service will not function as intended without these steps.

Enabling and Customizing the Systemd User Service

The `beetpost` service unit is designed for user-specific execution, allowing `beetpost` to run as the currently logged-in user, which is ideal for interacting with mpris-enabled players.

End users can make overrides to this service, primarily for setting environment variables or for debugging, using `systemctl --user edit beetpost.service`.

User Service Locations

  • /usr/lib/systemd/user/beetpost.service: The main service file installed by the package.
  • ~/.config/systemd/user/beetpost.service.d/: The primary location for local, custom drop-in files for your user service, which take precedence.

How to Configure Overrides

To set any desired overrides, use `systemctl --user edit`. This command automatically creates the necessary drop-in directory and file if they don't exist.

1.  .B Open the override file for editing:

systemctl --user edit beetpost.service

This will open an editor (usually `nano` or `vim`) with a new, empty file.

2.  .B Add your customizations:

Inside the editor, add the `[Service]` section and the `Environment=` directive to set your desired variables.

# ~/.config/systemd/user/beetpost.service.d/override.conf [Service] Environment="BEETPOST_LOG_LEVEL=debug"

3.  .B Save and exit the editor.

4.  .B Enable and start the user service:

After making changes, enable the service to start automatically on login and then start it manually for the first time:

systemctl --user enable beetpost.service systemctl --user start beetpost.service

5.  .B Check the service status (optional):

You can verify that the service is running correctly:

systemctl --user status beetpost.service

Authors

gbcox

Info

July 16, 2025 Beetpost Documentation