项目地址:
https://github.com/bywenshu/qmusic-search
本项目使用 Flask 框架作为网页后端,就两个 Python 文件,让它常驻后台就好了。使用时反代加域名即可。能实现搜索、在线播放和选择音质等功能。
本项目仅调用 QQ 音乐接口,不存在破解行为,供大家使用和参考。VIP 歌曲仅可通过会员 Cookies 获取。
我的项目借鉴了其它大佬的开源项目,已经在 README 中注明。大部分代码都是用 ChatGPT 写的,所以代码可能是屎堆。
1
oyps 162 天前
1. 如果这个项目以播放音乐为主,那么上传到对象存储纯属多余,只会浪费时间和金钱
2. 如果这个项目以下载音乐为主,因为浏览器的同源策略,你上传对象存储能解决的也只是能够自定义文件名和触发浏览器下载文件 3. 浏览器有同源,存在不便,我的话还是推荐开发非 Web 客户端,用后端语言去发请求和下载文件,以及实现批量下载 4. 对于你这个项目,我的建议是:取消对象存储的介入,浏览器前端只提供播放功能,并且提供下载引导,将需要批量下载的音乐列表以 JSON 或者 Base64 字符串导出,用户复制后,打开你开发的下载器客户端,导入下载。或者用自定义协议,在浏览器上用户触发批量下载时,跳转你的原生下载器。 |
2
kerb15 162 天前
👍
|
3
bywenshu OP @oyps
1. 项目面向国人,使用国内厂家服务器部署,在服务器只有 3Mbps 上行带宽(而大部分服务器默认下行速度是 100Mbps )的情况下,使用内网上传到对象存储再从对象存储下载可以增加速度。再者,这也可以顺便节省服务器硬盘空间,利用对象存储弹性计费。 2. 只是凭借兴趣爱好开发,暂时不会,谢谢指路,我会学习的。 |
4
oyps 162 天前
@bywenshu 你抓取到的音乐文件 URL 做了防盗链没,没有防盗链的话,可以直接把 URL 返回给前端去用,不需要做中转都可以的,返回专辑和单曲信息,返回封面歌词,就可以了。推荐一个播放器组件不错: https://github.com/DIYgod/APlayer
|
5
bywenshu OP @oyps 谢谢推荐。QQ 音乐没做防盗链。我感觉我的网页播放器还算美观,就暂时不考虑了用这个组件了。近期我会再美化一下我的播放器界面。
|
6
Jiubia 161 天前
不是很懂,如果只是播放,不做缓存的情况下为啥要传到对象存储呢,我记得 QQ 音乐的歌曲可以在网页上直接请求,没有跨域问题,可以参考我的玩具
https://github.com/YangZxi/Spanner-Next |