
giof71/mpd-subsonic-scrobbler这是一个非常简单的MPD SubSonic scrobbler,并非LAST.FM或libre.fm的scrobbler。当MPD播放来自SubSonic服务器的歌曲时,此scrobbler能让MPD通知SubSonic服务器。SubSonic服务器(若配置)可将歌曲记录到LAST.FM、libre.fm等平台。在使用Upmpdcli的SubSonic插件时可能会有用,详见相关讨论。
。我的分支 (镜像) |
| mpd-alsa-docker | GitHub |
| upmpdcli-docker | GitHub |
| subsonic-connector | GitHub |
| python-mpd2 | GitHub |
其中,mpd-alsa-docker和upmpdcli-docker提供Docker部署mpd和upmpdcli的方法。
| 仓库 | URL |
|---|---|
| 源代码 | GitHub |
| Docker镜像 | Docker Hub |
| 卷 | 描述 |
|---|---|
| /config | 建议存放额外配置文件的位置 |
| 变量 | 描述 | 默认值 |
|---|---|---|
| MPD_FRIENDLY_NAME | MPD实例的友好名称 | |
| MPD_HOST | MPD主机名 | localhost |
| MPD_PORT | MPD端口 | 6600 |
| SUBSONIC_FRIENDLY_NAME | SubSonic服务器的友好名称 | |
| SUBSONIC_PARAMETERS_FILE | SubSonic参数的单独配置文件 | |
| SUBSONIC_BASE_URL | SubSonic服务器URL,需包含http或https | |
| SUBSONIC_PORT | SubSonic服务器端口 | |
| SUBSONIC_USER | SubSonic用户名 | |
| SUBSONIC_PASSWORD | SubSonic密码 | |
| SUBSONIC_LEGACYAUTH | 旧版认证,lms需设为true,默认false | |
| SUBSONIC_CREDENTIALS | 凭据文件引用,替代SUBSONIC_USER和SUBSONIC_PASSWORD | |
| SUBSONIC_UPMPDCLI_BASE_URL | 若设置,仅允许此upmpdcli服务器(基础URL) | |
| SUBSONIC_UPMPDCLI_PORT | 若设置,仅允许此upmpdcli服务器(端口) | |
| MIN_COVERAGE | 需要播放的歌曲百分比 | 50 |
| ENOUGH_PLAYBACK_SEC | 最小播放时间(秒),无论覆盖率 | 240 |
| SLEEP_TIME | 两次覆盖率检查间隔(毫秒) | 1000 |
| REDACT_CREDENTIALS | 设为1时启动不显示凭据 | |
| MAX_SUBSONIC_SERVERS | 最大SubSonic服务器数量 | 10 |
| MAX_MPD_INSTANCES | 最大MPD实例数量 | 10 |
| MPD_CLIENT_TIMEOUT_SEC | MPD客户端超时时间(秒) | 0.05 |
| ITERATION_DURATION_THRESHOLD_PERCENT | 总耗时超过SLEEP_TIME此百分比时警告 | |
| MPD_IMPOSED_SLEEP_ITERATION_COUNT | MPD不可访问时睡眠迭代次数 | 30 |
| VERBOSE | 详细输出(1/0) | 0 |
SubSonic配置参数为必需:可通过环境变量或SUBSONIC_PARAMETERS_FILE指定(文件需容器可访问,建议放/config卷)。MPD_*和SUBSONIC_*变量可加后缀_1、_2等配置多实例/服务器,配置文件中变量名不带索引。
为mpd-d10和mpd-d200(mpd-alsa-docker实例)创建scrobbler,SubSonic配置从文件读取:
yaml--- version: "3" networks: mpd: external: true services: scrobbler: image: giof71/mpd-subsonic-scrobbler:latest container_name: subsonic-scrobbler-d10 networks: - mpd environment: - MPD_HOST=mpd-d10 - MPD_PORT=6600 - MPD_HOST_1=mpd-d200 - MPD_PORT_1=6600 - SUBSONIC_PARAMETERS_FILE=/config/my-navidrome.env - SUBSONIC_PARAMETERS_FILE_1=/config/navidrome-demo.env - VERBOSE=0 volumes: - ./my-navidrome.env:/config/my-navidrome.env:ro - ./navidrome-demo.env:/config/navidrome-demo.env:ro restart: unless-stopped
不使用单独文件,配置参数从.env读取:
yaml--- version: "3" networks: mpd: external: true services: scrobbler: image: giof71/mpd-subsonic-scrobbler:latest container_name: subsonic-scrobbler-d10 networks: - mpd environment: - MPD_HOST=mpd-d10 - MPD_PORT=6600 - MPD_HOST_1=mpd-d200 - MPD_PORT_1=6600 - SUBSONIC_BASE_URL=${MY_NAVIDROME_BASE_URL} - SUBSONIC_PORT=${MY_NAVIDROME_PORT} - SUBSONIC_USER=${MY_NAVIDROME_USER} - SUBSONIC_PASSWORD=${MY_NAVIDROME_PASSWORD} - SUBSONIC_BASE_URL_1=${NAVIDROME_DEMO_BASE_URL} - SUBSONIC_PORT_1=${NAVIDROME_DEMO_PORT} - SUBSONIC_USER_1=${NAVIDROME_DEMO_USER} - SUBSONIC_PASSWORD_1=${NAVIDROME_DEMO_PASSWORD} - VERBOSE=0 restart: unless-stopped



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务