本文最后更新于 2025年12月31日。
Navidrome的API是公开的,但其核心实现基于Subsonic API协议(一个成熟的开源音乐流媒体API标准)。以下是关键信息总结:
1. API协议与兼容性
- Navidrome完全兼容Subsonic/Airsonic协议,支持所有Subsonic客户端(如DSub、Ultrasonic、play:Sub等)。
- 协议基于HTTP/HTTPS,支持XML和JSON数据格式,涵盖认证、音乐库浏览、搜索、流媒体传输等功能。
2. API实现细节
- 模块化设计:API代码位于
server/subsonic/目录,包含核心功能模块: api.go:路由和入口system.go:系统状态接口(如ping)browsing.go:音乐库浏览media_retrieval.go:流媒体传输searching.go:搜索功能- 支持实时转码、多用户权限管理、智能播放列表等扩展功能。
3. 开发对接建议
- 认证机制:需使用Subsonic标准认证(基于令牌或基本认证),请求头需携带
x-nd-authorization和x-nd-client-unique-id。 - 文档参考:
- 官方未提供完整API文档,但可通过抓包分析接口(如登录接口
POST /auth/login)。 - Subsonic协议规范是主要参考依据。
- 开源代码:直接查阅GitHub仓库的API实现逻辑。
4. 注意事项
- 版本兼容性:0.55.0版本后接口有重大重构,需注意版本差异。
- 性能优化:建议关注流媒体传输和元数据处理的性能调优。
结论
你可以直接基于Subsonic协议规范开发App对接Navidrome,无需额外授权。其开源特性与协议兼容性为开发者提供了充分支持。建议结合官方代码库和Subsonic文档进行开发。