Sign inSign up

giof71/subsonic-mpd-scrobbler

By giof71

Updated over 3 years ago

A simple SubSonic Scrobbler for MPD

Image
0

882

giof71/subsonic-mpd-scrobbler repository overview

mpd-subsonic-scrobbler

WARNING this is the old and wrongly named docker hub repository. Please switch to this. This will not be maintained and will be removed shortly.

This is a very simple Subsonic scrobbler for MPD.
It is not a LAST.FM or libre.fm scrobbler.
This scrobbler allows mpd to notify a subsonic server when it has played a song which has been server from that subsonic server.
It might be useful when using the Subsonic plugin for Upmpdcli. See the discussion here.

PROJECTHOMEPAGEGit Repo(s)
Music Player DaemonMusic Player DaemonOn GitHub
UpmpdcliUpmpdcliUpstream on Framagit and Codeberg. My fork on Framagit and Codeberg
mpd-alsa-docker-GitHub
upmpdcli-docker-GitHub

The last two provide a simple way to deploy mpd and upmpdcli using docker.

Repositories for this project
RepoURL
Source codeGitHub
Docker imagesDocker Hub

Available Archs on Docker Hub

  • linux/amd64
  • linux/arm/v7
  • linux/arm64/v8

Usage

Volumes
VOLUMEDESCRIPTION
/configSuggested location for additional configuration files
Enviroment Variables
VARIABLEDESCRIPTIONDEFAULT
MPD_HOSTMPD hostnamelocalhost
MPD_PORTMPD port6600
SUBSONIC_PARAMETERS_FILESeparate config file for subsonic parameters
SUBSONIC_BASE_URLSubsonic Server URL, including http or https
SUBSONIC_PORTSubsonic Server Port
SUBSONIC_USERSubsonic Username
SUBSONIC_PASSWORDSubsonic password
VERBOSEVerbose output, valid values are 1 and 00
MIN_COVERAGEPercent of the song that needs to be played50
SLEEP_TIMEInterval between a coverage check and the next, in millisec1000

The subsonic configuration parameters are required: either specificy the individual variables, or specify a SUBSONIC_PARAMETERS to indicate the file which will contain the parameters. The file must be accessible to the container. You can use the /config volume and put a file named, e.g. ".subsonic.env" there.

Example configurations

The following connect to mpd-d10 which is an instance of mpd-alsa-docker running on the same host and specifically on the network mpd.
Subsonic config is read from a separate file.

---
version: "3"

networks:
  mpd:
    external: true

services:
  scrobbler:
    image: giof71/subsonic-mpd-scrobbler:latest
    container_name: subsonic-scrobbler-d10
    networks:
      - mpd
    environment:
      - PYTHONUNBUFFERED=1
      - MPD_HOST=mpd-d10
      - MPD_PORT=6600
      - SUBSONIC_PARAMETERS_FILE=/config/subsonic.env
      - VERBOSE=0
    volumes:
      - ./navidrome.env:/config/subsonic.env:ro
    restart: unless-stopped

Same situation, without the separate file:

---
version: "3"

networks:
  mpd:
    external: true

services:
  scrobbler:
    image: giof71/subsonic-mpd-scrobbler:latest
    container_name: subsonic-scrobbler-d10
    networks:
      - mpd
    environment:
      - PYTHONUNBUFFERED=1
      - MPD_HOST=mpd-d10
      - MPD_PORT=6600
      - _SUBSONIC_BASE_URL=${SUBSONIC_BASE_URL}
      - _SUBSONIC_PORT=${SUBSONIC_PORT}
      - _SUBSONIC_USER=${SUBSONIC_USER}
      - _SUBSONIC_PASSWORD=${SUBSONIC_PASSWORD}
      - VERBOSE=0
    restart: unless-stopped

In this case, the configuration parameters are read from the .env file.
In order to avoid issues with password, which might contain special characters, it is better to not place such password on the compose file, and leverage the .env file instead.

Tag summary

Content type

Image

Digest

sha256:6fa808f00

Size

340.9 MB

Last updated

over 3 years ago

docker pull giof71/subsonic-mpd-scrobbler