GitHub - iuliandita/digarr: 基于 AI 的音乐发现工具,专为你的 *arr 套件打造
GitHub - iuliandita/digarr: 基于 AI 的音乐发现工具,专为你的 *arr 套件打造
一个专为你的 arr 套件设计的音乐发现工具。Digarr 从你的收听源构建品味画像,向你的 AI 提供商请求候选艺术家,为它们打分,并为你提供审查队列。你可以从那里将艺术家批准到 Lidarr 或播放列表目标,运行情绪搜索,保存发现订阅,生成播放列表,以及按流派浏览。UI 和 AI 辅助推理支持 15 种语言。它是自托管的,因此数据始终掌握在你手中。
警告
这是 Beta 软件,正在向 v1.0 努力。你今天就可以使用它,但预计会有一些粗糙的地方。版本发布可能很快,有时一天内多次,因此请在更新前查看 releases 页面和 CHANGELOG.md。如果你遇到问题,请提交 issue 或发送功能建议。
永远免费开源。Digarr 本身不会追踪你。如果你选择托管的 AI 提供商(Anthropic,OpenAI,Gemini)或者将本地提供商选项指向远程主机,你的发现提示将根据该提供商的条款发送给它。使用 localhost 上的 Ollama 或本地的 OpenAI 兼容端点,让所有内容保留在你的服务器上。
由 AI 构建。人类负责设定路线图、设计架构和审查输出;大部分代码和测试由 AI 生成。
Digarr 的与众不同之处
7 阶段 AI 流水线
Digarr 从最多 8 个源获取信号,通过 AI 辅助流水线处理,使用可配置的权重对候选者进行评分,跨批次去重,并从你的批准或拒绝中学习。
情绪发现
输入类似“像 Boards of Canada 但更暗黑”或“适合公路旅行的 90 年代流行快歌”,Digarr 会将其转化为结果集。你无需先通过过滤器来转换你的想法。
发现模式
从 Discover -> Discovery Modes (/discover/modes) 运行专注的发现流程,支持已内置的模式:ListenBrainz(艺术家电台、用户电台、标签电台、快速和深度相似用户)、Release Radar、相似艺术家网页、艺术家关系(MusicBrainz 合作/成员/别名图)和厂牌(通过 Discogs 的同厂牌艺术家;需要关联的 Discogs 账户)。手动运行时会在任务被接受前预检查无效的艺术家电台种子,每个被接受的任务会立即记录在 Jobs 中,从而可以观察到快速后台失败。可用的发现模式可以保存为订阅,这些订阅现在会复用与你配置的手动运行相同的提供商/回退路径。
自动播放列表
从批准的建议构建播放列表,并将其发送到 Navidrome、Jellyfin、Emby、Plex 或 Spotify,或导出为 M3U/XSPF 格式。内置的播放列表类型包括:每周摘要、流派聚焦、情绪混音和重新发现。
你的 AI,你做主
使用 Anthropic、OpenAI、Google Gemini、Ollama 或任何 OpenAI 兼容端点。推荐卡片包含一段简短的解释,说明为什么某位艺术家被选中。
多语言 UI 和 AI 输出
Digarr 现在内置了 15 种语言的本地化目录,在登录前后都有可见的语言切换器,持久化每个用户的地区偏好,以及针对情绪发现、快速发现和全面扫描的地区感知 AI 推理。
翻译在仓库内审查,并检查缺失或未翻译的目录值。如果你发现用词别扭或缺少上下文,请提交 issue 或发送包含修复的 PR。
灵活的设置
设置向导支持三种起始点:Lidarr、Emby 或仅发现模式。如果你连接了 Lidarr,批准的艺术家将以你选择的质量和元数据配置文件添加。批准可以监控所有专辑、未来专辑、选定专辑,或通过 Spotify 解析的 top 3 热门专辑发行。如果你从 Emby 开始,Digarr 会保存服务器连接用于库同步,并在设置期间创建一个 Emby 播放列表目标。如果你跳过两者,你仍然可以运行发现,稍后在设置中添加目标,包括播放列表导出。slskd 目标在 Settings > Targets 中稍后配置,支持独立队列或关联的 Lidarr 切换。
slskd 集成
slskd 目标支持两种批准模式:
- 独立批准:直接在 slskd 中队列匹配的发行。
- 组合 Lidarr + slskd 批准:先将艺术家添加到 Lidarr,然后当目标关联到 Lidarr 目标时,在 slskd 中队列选定的发行。
除了基于批准的队列外,Digarr 现在还为关联的 Lidarr 目标运行后台 slskd 工作器。它轮询 Lidarr 的想要发行,为每个目标创建去重的 slskd 任务,通过搜索和传输状态推进它们,并且仅在导入验证后才标记由 Lidarr 支持的任务为完成。管理员可以从 API 触发手动同步并检查活跃的 slskd 任务。
跨平台搜索
跨 Spotify、Deezer、MusicBrainz、TIDAL 和 Bandcamp 一次性搜索。Digarr 合并结果、去重,并允许你从任何匹配项启动快速发现。
功能特性
- 8 个数据源:ListenBrainz、Last.fm、Spotify(OAuth)、Deezer(OAuth)、Plex、Jellyfin、Emby 和 Discogs
- 智能评分:基于共识、相似度、流派重叠、AI 置信度、反馈学习和流行度的加权复合评分
- 自动批准:将高分推荐自动发送到你的目标
- 发现模式:针对 ListenBrainz(艺术家电台、用户电台、标签电台、快速/深度相似用户)、Release Radar、相似艺术家网页、艺术家关系(MusicBrainz 图)和厂牌(Discogs 同厂牌艺术家)的手动和订阅流程
- 订阅:来自发现模式、Spotify 喜欢歌曲、播放列表和榜单、Deezer 收藏、关注的艺术家和 Flow、Last.fm 标签和榜单、ListenBrainz 订阅、流派搜索和相似艺术家种子的定时发现
- 流派深入:按流派浏览,包含推荐、趋势和深度挖掘标签
- 库同步和核对:后台艺术家和专辑同步、每个源的状态、专辑同步覆盖率、未核对的艺术家和专辑检查、推荐卡片上的专辑覆盖率徽章,以及 6 项自动化健康检查与一键修复
打开 http://localhost:3000 并完成设置向导。你可以从 Lidarr、Emby 或仅发现模式开始。或者,在 .env 中填写服务环境变量,首次启动时设置会自动完成。数据库迁移会在每次启动时自动运行。
附带的 docker-compose.yml 拉取 docker.io/iuliandita/digarr:stable,这个频道仅在版本发布至少七天无后续补丁后才会移动。如果你想要发布线的最新版本,请跟踪 :latest(或固定到特定补丁版本,如 :0.44.0)。
对于零接触启动,设置 DIGARR_INITIAL_USERNAME、DIGARR_INITIAL_PASSWORD、AI_PROVIDER 和 AI_MODEL。收听源仍然是可选的,但请在运行发现前至少连接一个。Lidarr 仍然是可选的:省略 LIDARR_URL / LIDARR_API_KEY 以仅运行发现模式。Emby 可以在设置向导中或在设置中稍后添加。
流水线阶段
- 收集:获取你的 Lidarr 库,或在发现模式下跳过
- 分析:从所有连接的源构建品味画像
- 发现:查询 Last.fm 相似艺术家、Discogs 流派、AI 推荐和库种子
- 解析:对照 MusicBrainz 验证,获取元数据和图片,并进行流派感知的消歧
- 评分:应用加权评分公式
- 过滤:移除库中已有的重复项、已拒绝且有冷却期的艺术家以及低分结果
- 存储:保存批次及其推荐
你可以按计划运行流水线,手动运行,通过订阅进行定向发现,或从 Discover -> Discovery Modes 运行。