不改现有设置也能安全试用?Koito Relay 向 ListenBrainz 双写数据完全指南
【免费下载链接】KoitoKoito is a modern, themeable scrobbler that you can use with any program that scrobbles to a custom ListenBrainz URL项目地址https://gitcode.com/gh_mirrors/ko/Koito点击查看免费下载想让听歌记录同时出现在 Koito 和 ListenBrainz 两个平台Koito 内置的 Relay中继功能可以帮你轻松实现只需配置 3 个环境变量Koito 就会把每次收到的听歌上报异步双写到你的 ListenBrainz 账号原有 Scrobbler 设置完全不用动随时可回退。本文带你快速完成 ListenBrainz 双写配置安全体验 Koito 这套现代化、可换主题的自托管 Scrobbler。为什么需要双写先试用再决定迁移大多数人对新工具最大的顾虑是切换过去之后原来的听歌记录还保不保得住双写同时写入两套系统是零风险的答案ListenBrainz 照常收数据你现有的第三方应用、Navidrome 等播放器的 Scrobble 配置保持不变历史数据不中断Koito 默默积累数据同样的每次听歌请求会先进入 Koito 本地 SQLite 数据库主题界面、月度 Rewind 回顾、活动热力图开始填充随时可退把KOITO_ENABLE_LBZ_RELAY改回false并重启双写立即停止其他一切不受影响。项目作者自己开发 Koito 的整个过程中就一直用这个方式双写官方 README 也推荐了这种先中继、后替换的路线见 README.md。Relay 双写的工作原理想放心使用先搞清楚数据是怎么流动的。核心逻辑在 lbz_submit_listen.go客户端把听歌记录POST到 Koito 的/apis/listenbrainz/1/submit-listens端点Koito 先校验并把记录存入本地数据库这一步和 Relay 无关保证本地统计永远完整若KOITO_ENABLE_LBZ_RELAY为trueKoito 会异步启动一个 goroutine将原始请求体连同你的目标 token 转发到KOITO_LBZ_RELAY_URL见 doLbzRelay 实现转发成功2XX即结束遇到 5XX 服务端错误会自动指数退避重试最长重试 3 分钟、单次间隔封顶 40 秒。三个值得注意的细节不阻塞主流程转发在后台进行即使目标服务器慢或宕机也不会影响 Koito 对本地请求的响应速度原样转发转发的是原始请求字节MBID、时长、媒体播放器等元数据一个不少地传给目标服务器账号归属转发请求携带的是KOITO_LBZ_RELAY_TOKEN对应的账号信息所以目标平台上的数据会记在你的账号名下——这正是用现有账号试新工具的关键。快速配置Docker Compose 三步开启双写Relay 只认环境变量完整参数说明见 configuration.md。在现有 Compose 文件里加上 3 行即可services: koito: image: gabehf/koito:latest container_name: koito environment: - KOITO_ENABLE_LBZ_RELAYtrue - KOITO_LBZ_RELAY_URLhttps://api.listenbrainz.org/1 - KOITO_LBZ_RELAY_TOKEN你的 ListenBrainz 账号 token ports: - 4110:4110 volumes: - ./koito:/etc/koito restart: unless-stopped配置要点清单参数必填说明KOITO_ENABLE_LBZ_RELAY是双写总开关默认falseKOITO_LBZ_RELAY_URL启用后必填目标服务器地址必须带完整路径如官方实例要写到.../1结尾KOITO_LBZ_RELAY_TOKEN启用后必填你目标平台的账号 token⚠️ 三个常见坑KOITO_LBZ_RELAY_URL忘写完整路径——官方文档特别强调了这一点只写域名会 404改完环境变量没重启容器配置不会生效开了开关但 URL 或 token 留空。此时启动日志会打印警告You have enabled ListenBrainz relay, but either the URL or token is missing检查逻辑见 engine.go看到它就回头查配置。另外所有环境变量都支持_FILE后缀从文件读取值方便你用 Docker secrets 管理 token。实际验证把 Navidrome 指过去配置完成后的真实测试流程以 Navidrome 为例完整步骤见 navidrome.md登录 Koito默认账号admin/changeme登录后记得改密码按\打开设置在API Keys页复制自动生成的 API Key——它就是你要用的 ListenBrainz token打开 Navidrome → 设置 → Personal打开Scrobble to ListenBrainz开关填入 Koito 的 API Key 并保存。此时 Navidrome 仍指向 Koito 的地址但你的听歌数据会被同时写进 ListenBrainz放几首歌约 1 分钟后打开 ListenBrainz 官方主页确认数据到达再刷新 Koito 首页看本地统计。两边数字对得上说明双写链路完全打通。如果数据迟迟不出现docker logs koito里搜doLbzRelay每条转发/重试都有记录排错非常快。确认稳定后何时停止双写等 Koito 在你服务器上稳定跑上一段时间且数据核对无误就可以转正了把KOITO_ENABLE_LBZ_RELAY设为false重启然后把播放器或 multi-scrobbler 这类多路上报工具的上报端点改为直连 Koito 即可。此后你的体验包括可自由切换的多主题界面与深色/浅色外观按月回顾的Rewind页面最热歌手、专辑、曲目和听歌时长一目了然歌手/专辑维度的合并编辑、封面替换等数据管理能力。如果不想动任何现有配置也可以保留双写长期运行——Koito 的开销很低两条数据管道互不干扰。常见问题速查Koito 本地有记录ListenBrainz 却没有大概率是 URL 少了/1路径或 token 填错查日志中的doLbzRelay警告双写会影响播放上报速度吗不会转发是异步 goroutine且对客户端的响应在本地入库时就已返回Relay 支持哪些目标任何兼容 ListenBrainz API 的服务器——官方api.listenbrainz.org或其他自建实例都可以以后想完全从零重来怎么办Koito 支持导出/导入也可以直接git clone源码自行构建安装方式见 installation.md仓库地址https://gitcode.com/gh_mirrors/ko/Koito 。一句话总结KOITO_ENABLE_LBZ_RELAYtrue 正确的 URL 和 token重启然后继续照常听歌——Koito 会替你悄悄把数据双写两份试用期随时喊停。赞分享【免费下载链接】KoitoKoito is a modern, themeable scrobbler that you can use with any program that scrobbles to a custom ListenBrainz URL项目地址https://gitcode.com/gh_mirrors/ko/Koito点击查看免费下载相关推荐Relay Typesafe Updaters 全面指南用 readUpdatableQuery 与 readUpdatableFragment 安全地命令式修改 Store 数据Relay Typesafe Updaters 全面指南用 readUpdatableQuery 与 readUpdatableFragment 安全地命令式前端开发工具Relay Resolvers 完全指南用客户端数据扩展 Relay GraphQL SchemaRelay Resolvers 完全指南用客户端数据扩展 Relay GraphQL Schema Relay Resolvers 是 Relay 的一项实验前端开发工具没有数据库也能存数据edgeone-makers-tools的KV与Blob存储完全指南没有数据库也能存数据edgeone makers tools的KV与Blob存储完全指南 想给网站加留言本、点赞计数或图片上传却不想自己部署 MySQL、M创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考