最近玩 NAS 比较多,手撸一个音乐流媒体服务 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
memcache
V2EX    分享创造

最近玩 NAS 比较多,手撸一个音乐流媒体服务

  •  1
     
  •   memcache 182 天前 2727 次点击
    这是一个创建于 182 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前言

    近来玩了很多 nas 服务,发现私有音乐服务都做的不是很用心,厂商的关注点都在影视上。基于此,萌生了写一个音乐流媒体服务的想法。以下是最初的一些想法: -轻量级部署、低负载; 可以在小 nas 上玩 -支持大约几万的私有音乐库 -基本的搜索、歌单能力界面美观简易使用

    目前已经有了 1.0 版本,小弟自己已经在使用了,不过也还在继续优化迭代中.

    项目地址

    https://github.com/chenqimiao/qm-music

    介绍

    目前需要配合支持 subsonic 的客户端来使用,我是使用了音流,这是一款商用 app ,不过免费的功能足够我使用了,本来做这个项目也是以玩的心态出发,所以开源出来,希望大家可以多给提提意见或者一起参与来完善。

    当然啦,有条件的小伙伴可以给我个 star 吗, 鼓励下我继续用爱发电~ 大恩不言谢 hh~

    下面是一些功能列表

    已支持

    • docker 部署
    • subsonic 协议兼容
    • 智能转码
    • 多格式支持
    • 多用户
    • 歌单
    • 收藏喜欢
    • 专辑列表
    • 艺术家列表
    • 歌曲、艺术家、专辑搜索
    • 相似歌手、歌曲检索
    • 歌曲风格检索
    • 歌词智能匹配
    • 搜索能力(简繁体互搜)

    TODO

    • 图片资源(艺术家、歌曲、专辑)缓存
    • last.fm api 接入
    • Spotify api 接入
    • 客户端开发
    • unitest 补充(减少修改引入) ...
    28 条回复    2025-09-20 22:20:08 +08:00
    muzihuaner
        1
    muzihuaner  
       182 天前 via Android
    有时间试试
    makizhang
        2
    makizhang  
       182 天前 via Android
    目前,用的 navidrome
    lazyrm
        3
    lazyrm  
       182 天前 via iPhone
    todo 能多做一个么? 就是根据歌曲进行推荐()/
    vicalloy
        4
    vicalloy  
       182 天前
    我用的 https://github.com/epoupon/lms
    服务跑着路由器上,对内存很敏感。
    lms 用 cpp 写的,内存占用低。
    xiaoz
        5
    xiaoz  
       182 天前 via Android
    @makizhang #2 ,这个不支持重命名文件和删除就很蛋疼。
    xiaoz
        6
    xiaoz  
       182 天前 via Android
    建议 README.md 加一些截图展示,这样可以给用户留下第一印象。
    Aixtuz
        7
    Aixtuz  
       182 天前
    同在用 navidrome ,但会尝试一下。
    chenplum
        8
    chenplum  
       182 天前
    感谢开发者,很不错的项目,有几个问题:
    1. 刷新曲库的时间太长了,800 曲库用时
    2. 支持检查文件目录变动,曲库自动增量更新
    chenplum
        9
    chenplum  
       182 天前
    @chenplum 800 曲库用了 20 分钟
    zhengfan2016
        10
    zhengfan2016  
       182 天前
    智能转码怎么实现的,我也正在做类似的轮子,但是像 jellyfin 这样的点播动态转码还没找到比较好的方案 ,看其他人大多数实现都是直接用 ffmpeg 全部转码一遍存 sql
    memcache
        11
    memcache  
    OP
       181 天前
    @muzihuaner 谢谢
    memcache
        12
    memcache  
    OP
       181 天前
    @makizhang 嗯,我想的是多做一些中文歌曲的特性,比如繁体简体之类搜索分类支持
    memcache
        13
    memcache  
    OP
       181 天前
    @lazyrm 已经有了哈,欢迎试用
    memcache
        14
    memcache  
    OP
       181 天前
    @xiaoz 好的,后面会补充下
    memcache
        15
    memcache  
    OP
       181 天前
    @chenplum
    1.刷新这块会持续优化,这可能跟 cpu 配置也有些关系,目前 2c 3.5Ghz 测试下来,25 分钟差不多可以刷 1w 多首歌
    2.嗯,后期会加定时任务,目前文件目录变动需要手动刷新
    memcache
        16
    memcache  
    OP
       181 天前
    @Aixtuz 嗯,我想的是多做一些中文歌曲的特性,比如繁体简体之类搜索分类支持
    memcache
        17
    memcache  
    OP
       181 天前
    @zhengfan2016 需要一些检测机制在结合客户端配置
    memcache
        18
    memcache  
    OP
       181 天前
    @xiaoz navidrome 确实感觉是相对封闭一些的 哈哈,作者管控力比较强
    dann73580
        19
    dann73580  
       180 天前
    有考虑过不用 sql 外置数据库么?几十万首音乐会很卡很卡...navidrome 就有这个毛病
    memcache
        20
    memcache  
    OP
       180 天前
    @dann73580 good idea ,会考虑列入议程!
    dann73580
        21
    dann73580  
       180 天前
    @memcache pqsql 就很好哈哈,现在我用 navidrome 搜索歌曲有时候就卡卡的,感觉 sqlite 有点扛不住
    memcache
        22
    memcache  
    OP
       179 天前
    @dann73580 可以,到时候我再调研下 哈哈哈
    memcache
        23
    memcache  
    OP
       172 天前
    目前已经完成了 last.fm 、spotify 公用 api 的接入。
    - 歌曲元数据展示和歌曲推荐能力大有提升
    memcache
        24
    memcache  
    OP
       168 天前 via iPhone
    最近一直在迭代没有太注意消息统一回复下

    1.目前已经有了 navdrome 、plex 类似的产品了,为什么要再做一个
    第一个当然还是兴趣啦,第二个原因还是这些产品对中文歌支持一般,举一个例子,比如你想用陈奕迅搜索到“ 奕迅”,简繁体互搜这类功能,外国朋友还是比较难 get 到这个点的。毕竟中华文化博大精深嘛
    2.近期做了不少迭代
    * 定时刷新曲库
    * 优化了搜索,现在效率蛮高的
    * 支持了多生态,spotify lastfm ,
    * 即使你的歌曲文件内的信息不太完善,也能做不少补充
    * 做了一些图片资源的缓存
    * 整体的数据接口快了很多,进而页面的体验提升不少
    * 等等
    3.最后希望朋友们可以体验一下,继续提提意见,最好能来 issue 提,这样讨论的人会更多一些 https://github.com/chenqimiao/qm-music/issues
    再次感谢大家的支持!
    xyz5378
        25
    xyz5378  
       166 天前
    音乐推荐如果能搞得智能点就更好了,曲库有点大,很多不感兴趣的音乐,也懒得删除
    memcache
        26
    memcache  
    OP
       163 天前 via iPhone
    @xyz5378 嗯,是个发力的方向!先列到 roadmap 里先!感谢!
    dann73580
        27
    dann73580  
       23 天前
    自从上次看到 qm-music 已经好久啦。恭喜做的越来越完善!我这边有几十万的曲库,不知道能不能取得一些联系方式,我们可以一起测试和优化下性能?同时也很乐意分享我的曲库公开发者体验和测试,谢谢。
    memcache
        28
    memcache  
    OP
       19 天前
    @dann73580
    d3gtNjI1NTQ4MTg2
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5349 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 08:56 PVG 16:56 LAX 01:56 JFK 04:56
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86