你的听歌数据为什么要自己掌握?自托管Scrobbler Koito完全入门指南

发布时间:2026/10/15 18:55:35
你的听歌数据为什么要自己掌握?自托管Scrobbler 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点击查看免费下载Koito 是一款现代、可换主题的自托管 Scrobbler听歌打点服务兼容 ListenBrainz 协议能让你把听歌历史、播放统计和音乐数据完整掌握在自己手里。无论你的音乐播放器是否支持自定义 ListenBrainz 地址都可以把打点数据导入 Koito获得漂亮的收听统计面板还能中继relay到你原有的打点服务做到先试水、不折腾。本文将带你从零开始用不到 10 分钟完成安装、接入播放器和数据导入。为什么听歌数据应该自己掌握你可能正使用 Maloja、ListenBrainz 或 Last.fm 记录每天听了什么歌。这些服务很好但有几个共同问题数据不在自己手里账号停服、政策变化时你几年的听歌记录说没就没隐私交给第三方每天听什么歌是很私密的习惯画像界面和主题有限想换一种风格、想自定义统计维度基本无解。自托管 Scrobbler 就是解法服务跑在你自己的服务器上数据存在你自己的 SQLite 数据库里见 db/migrations_sqlite/001_initial_schema.sql想备份随时备份想删除随时删除。Koito 能做什么核心功能一览Koito 用 Go 编写后端cmd/api/main.go、React 编写前端client/主打快、美、能迁移⚡高性能比同类自托管软件更快单容器即可运行兼容一切 ListenBrainz 打点源Navidrome、Maloja 客户端、自制插件……任何能填自定义 ListenBrainz URL Token的程序都能接入一键中继可以同时把数据转发到你原有的 ListenBrainz 服务器平滑过渡零风险历史数据导入支持从 Spotify、Maloja、LastFM、ListenBrainz 一键导入导入逻辑在 internal/importer/️12 套内置主题 自定义主题界面可深度换肤数据可编辑改名aliases、换封面、合并重复条目数据质量自己说了算。Docker 三步快速安装 Koito最推荐的方式是 Docker 部署整个安装只需一份 Compose 文件。在服务器上创建compose.yamlservices: koito: image: gabehf/koito:latest container_name: koito ports: - 4110:4110 volumes: - ./koito:/etc/koito restart: unless-stopped启动后打开浏览器访问http://你的服务器IP:4110即可进入 Koito。首次登录的默认账号是admin/changeme登录后请务必第一时间修改密码。不想用 Docker 也可以从源码编译需要先安装make、yarn、libvips-devgit clone https://gitcode.com/gh_mirrors/ko/Koito cd Koito make build ./koito完整步骤参考 安装指南编译脚本见 Makefile。最快接入方式5 分钟连上 Navidrome如果你用 Navidrome或任何 Subsonic 兼容服务器接入流程非常短打开 Navidrome 的 ListenBrainz 打点设置环境变量ND_LISTENBRAINZ_ENABLEDtrue和ND_LISTENBRAINZ_BASEURL你的Koito地址/apis/listenbrainz/1在 Navidrome 界面打开开关进入Settings → Personal把 Scrobble to ListenBrainz 打开如图所示填入 Koito 的 API Key在 Koito 中点击设置按钮或按\键→API Keys选项卡复制自动生成的 API key粘贴到 Navidrome 的 Token 输入框保存。之后你每播放一首歌Navidrome 就会自动把打点发给 Koito。更多细节见 Navidrome 快速上手 和 Scrobbler 配置指南。把过去的听歌历史导入 Koito只有从今天开始的记录太可惜。Koito 支持从四个来源导入历史数据操作方式都是导出文件 → 丢进 import 文件夹 → 重启容器自动识别、自动入库详见 数据导入指南来源文件要求文件名需包含Spotify隐私页面导出的Streaming_History_AudioJSONStreaming_History_AudioMaloja管理页 Export 导出的 JSONmalojaLastFMghan.nl 工具导出的recenttracksJSONrecenttracksListenBrainz官网导出工具生成的 zip 包listenbrainz以 Spotify 为例先到 Spotify 账号隐私页面申请完整流媒体历史Extended streaming history导出勾选后等待生成拿到.json文件后放进./koito/import/目录重启 Koito历史数据就会自动开始入库。注意ListenBrainz 和 LastFM 的大体量导入会受 MusicBrainz 限流每秒 1 次影响而较慢可在导入期间通过配置临时关闭 MusicBrainz 加速参见 配置参考。让数据更干净别名、换图与合并自托管的最大好处是数据可以精修。登录 Koito 后在任意歌手/专辑/歌曲页右上角都有编辑入口编辑功能源码位于 client/app/components/modals/EditModal/Alias Manager别名管理为条目添加别名并设为主名称非拉丁文字母的歌曲如日文、韩文标题也能轻松搜索和匹配这是打点归一的关键更换封面图直接把本地图片拖拽到页面上即可替换也可以填入图片 URL 让 Koito 抓取合并重复条目同一首歌的日文版和罗马音版搜索目标条目后一键 Merge所有子项专辑、歌曲、打点记录会自动归并且支持反向合并删除条目不需要的记录可直接删除不可逆操作前确认好。完整教程见 数据编辑指南。不想放弃现有服务用中继平滑过渡担心换掉现有打点服务有风险Koito 支持中继relay所有发往 Koito 的打点会原样转发给你指定的 ListenBrainz 兼容服务器等于双写、零损失。只需在 Compose 中增加三个环境变量并重启environment: - KOITO_ENABLE_LBZ_RELAYtrue - KOITO_LBZ_RELAY_URL你的目标服务器ListenBrainz端点完整路径 - KOITO_LBZ_RELAY_TOKEN目标服务器的用户token这也是作者本人在整个开发期使用的方案可以放心参考。常见问题速查默认端口是多少默认监听4110可通过KOITO_LISTEN_PORT修改怎么换主题环境变量KOITO_DEFAULT_THEME设置默认主题如black用户也可在界面右下角切换要不要公开统计设置KOITO_LOGIN_GATEtrue可要求登录后才显示任何数据封面图从哪来Koito 会自动从 Deezer、Cover Art Archive、Subsonic 音乐服务器等来源抓取图片并缓存可用KOITO_DISABLE_DEEZER等变量关闭指定来源。全部配置项请参考 配置参考文档 与 README。小结Koito 把自己的听歌数据自己做主这件事变得非常轻一个 Docker 容器、一个 Compose 文件就拥有了自托管的打点服务、精美的收听统计、历史数据导入和灵活的转发能力。装好后你听过的每一首歌都真正属于你自己了 赞分享【免费下载链接】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点击查看免费下载相关推荐weloveinterns社区生态PLCT实验室与甲辰计划的协同创新模式weloveinterns社区生态PLCT实验室与甲辰计划的协同创新模式 weloveinterns社区作为GitHub加速计划的重要组成部分是PLCT实验Blinko隐私保护深度剖析为什么你的数据应该自托管Blinko隐私保护深度剖析为什么你的数据应该自托管 在当今数据泄露频发的时代 Blinko 作为一款开源自托管的个人AI笔记工具为你的隐私安全提供了终极后端前端人工智能大模型RAG知识库桌面应用Akka.NET入门指南为什么.NET开发者需要掌握Actor模型Akka.NET入门指南为什么.NET开发者需要掌握Actor模型 Actor模型作为构建高并发、分布式系统的 终极解决方案 正在改变.NET开发者处理并发后端微服务创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考