V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
bywenshu
V2EX  ›  程序员

[开源项目] QQ 音乐搜索与在线播放。

  •  
  •   bywenshu · 162 天前 via Android · 1684 次点击
    这是一个创建于 162 天前的主题,其中的信息可能已经有所发展或是发生改变。

    项目地址:
    https://github.com/bywenshu/qmusic-search

    本项目使用 Flask 框架作为网页后端,就两个 Python 文件,让它常驻后台就好了。使用时反代加域名即可。能实现搜索、在线播放和选择音质等功能。

    本项目仅调用 QQ 音乐接口,不存在破解行为,供大家使用和参考。VIP 歌曲仅可通过会员 Cookies 获取。  

    我的项目借鉴了其它大佬的开源项目,已经在 README 中注明。大部分代码都是用 ChatGPT 写的,所以代码可能是屎堆。

    7 条回复    2024-07-19 05:22:01 +08:00
    oyps
        1
    oyps  
       162 天前
    1. 如果这个项目以播放音乐为主,那么上传到对象存储纯属多余,只会浪费时间和金钱
    2. 如果这个项目以下载音乐为主,因为浏览器的同源策略,你上传对象存储能解决的也只是能够自定义文件名和触发浏览器下载文件
    3. 浏览器有同源,存在不便,我的话还是推荐开发非 Web 客户端,用后端语言去发请求和下载文件,以及实现批量下载
    4. 对于你这个项目,我的建议是:取消对象存储的介入,浏览器前端只提供播放功能,并且提供下载引导,将需要批量下载的音乐列表以 JSON 或者 Base64 字符串导出,用户复制后,打开你开发的下载器客户端,导入下载。或者用自定义协议,在浏览器上用户触发批量下载时,跳转你的原生下载器。
    kerb15
        2
    kerb15  
       162 天前
    👍
    bywenshu
        3
    bywenshu  
    OP
       162 天前 via Android
    @oyps
    1. 项目面向国人,使用国内厂家服务器部署,在服务器只有 3Mbps 上行带宽(而大部分服务器默认下行速度是 100Mbps )的情况下,使用内网上传到对象存储再从对象存储下载可以增加速度。再者,这也可以顺便节省服务器硬盘空间,利用对象存储弹性计费。
    2. 只是凭借兴趣爱好开发,暂时不会,谢谢指路,我会学习的。
    oyps
        4
    oyps  
       162 天前
    @bywenshu 你抓取到的音乐文件 URL 做了防盗链没,没有防盗链的话,可以直接把 URL 返回给前端去用,不需要做中转都可以的,返回专辑和单曲信息,返回封面歌词,就可以了。推荐一个播放器组件不错: https://github.com/DIYgod/APlayer
    bywenshu
        5
    bywenshu  
    OP
       161 天前 via Android
    @oyps 谢谢推荐。QQ 音乐没做防盗链。我感觉我的网页播放器还算美观,就暂时不考虑了用这个组件了。近期我会再美化一下我的播放器界面。
    Jiubia
        6
    Jiubia  
       160 天前
    不是很懂,如果只是播放,不做缓存的情况下为啥要传到对象存储呢,我记得 QQ 音乐的歌曲可以在网页上直接请求,没有跨域问题,可以参考我的玩具

    https://github.com/YangZxi/Spanner-Next
    bywenshu
        7
    bywenshu  
    OP
       160 天前 via Android
    @Jiubia 谢谢分享。关于上传对象存储,可以看我项目的 README 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3745 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 10:32 · PVG 18:32 · LAX 02:32 · JFK 05:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.