功能更强劲的 MusicPlayer, 现在已支持 网易云, 虾米, QQ 音乐的音乐资源~。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
cyrbuzz
V2EX    分享创造

功能更强劲的 MusicPlayer, 现在已支持 网易云, 虾米, QQ 音乐的音乐资源~。

  •  1
     
  •   cyrbuzz
    HuberTRoy 2017-09-26 14:42:06 +08:00 6637 次点击
    这是一个创建于 2942 天前的主题,其中的信息可能已经有所发展或是发生改变。

    @lights 借鉴了一些 listen1 已经分析好的 API。

    旧的支持:

    • 网易云账号的登陆。
    • 歌曲缓存。
    • 本地音乐。

    新的功能:

    支持网易云,虾米,QQ 音乐的歌单系统。

    QQ 音乐歌单

    虾米音乐歌单

    支持网易云,虾米,QQ 音乐的歌曲搜索系统。

    音乐搜索

    关于歌词:

    网易云与虾米的歌曲可以获取到歌词,QQ 音乐暂时无法获取。

    关于 QQ 音乐播放问题:

    QQ 音乐的音乐格式是 m4a, Qt 使用的解码器是根据系统所支持的变换的。如果无法播放需要下载相应的解码器。

    关于歌曲下载:

    目前不提供直接在内部进行歌曲下载。

    可直接修改播放时的逻辑获取歌曲地址使用其他下载工具下载。

    关于安装:

    基础依赖可直接运行相关文件夹内的 requirements.txt 进行安装 pip install -r requirements.txt。 目前额外依赖(主要是 Linux 下的 Qt 插件)还需要手动安装。

    最后:

    github: MusicPlayer

    更新日志:MusicPlayer 更新日志

    感谢各位的支持~。

    33 条回复    2017-11-11 01:26:41 +08:00
    dyxang
        1
    dyxang  
       2017-09-26 21:37:38 +08:00 via Android
    m
    jiangfan
        2
    jiangfan  
       2017-09-26 22:33:51 +08:00   1
    你好,我在运行您的程序过程中碰到了一个模块导入的问题。
    music.py 中导入模块代码是:
    sys.path.append('widgets')
    sys.path.append('networks')
    sys.path.append('features')
    sys.path.append('apis')
    但是在我的环境中运行时不能正常导入相关的模块,只有将上面的导入修改为绝对路径后才能正常运行,不知道这个问题是不是只有我碰到过?
    cyrbuzz
        3
    cyrbuzz  
    OP
       2017-09-26 22:47:32 +08:00
    @jiangfan
    感谢反馈,一直没有注意这个。做了修复,现在会将工作目录切换到文件所在目录。
    麻烦再次下载或在 music.py 头部添加以下代码:
    ```
    import os
    import os.path

    os.chdir(os.path.split(os.path.realpath(__file__))[0])
    ```
    lights
        4
    lights  
       2017-09-27 15:58:32 +08:00   1
    大兄弟 666
    i2y
        5
    i2y  
       2017-09-28 02:41:37 +08:00 via Android   1
    借鉴了
    wspsxing
        6
    wspsxing  
       2017-09-28 12:17:18 +08:00
    播放歌曲的 bkps 一般是多少啊? 128/192/320kbps?
    cyrbuzz
        7
    cyrbuzz  
    OP
       2017-09-28 18:59:10 +08:00
    @wspsxing
    这个我也不太清楚啊。这个要如何查看?
    wspsxing
        8
    wspsxing  
       2017-09-29 22:42:53 +08:00
    得到音乐文件就可以用 ffmpeg 或播放器或其它工具看啊,
    光从文件大小,10M 左右应该是 320.
    fengyunkkx
        9
    fengyunkkx  
       2017-10-04 13:11:45 +08:00
    看界面感觉很不错,试一下
    cyrbuzz
      &nbp; 10
    cyrbuzz  
    OP
       2017-10-04 13:27:55 +08:00
    @fengyunkkx 感谢支持~。
    whitewatch1992
        11
    whitewatch1992  
       2017-10-04 15:59:59 +08:00
    这个要……怎么下载?
    cyrbuzz
        12
    cyrbuzz  
    OP
       2017-10-04 19:24:48 +08:00
    @whitewatch1992
    首先需要下载 Python3.5 或以上的版本。
    然后下载对应的 PyQt5.5 以上的版本。

    之后下载 github 里的文件。
    Windows 下在那个目录里执行
    ```
    python setup.py install
    ```
    Linux 下执行
    ```
    sudo python3 setup.py install
    ```

    之后就可以用
    ```
    (sudo) musicplayer
    ```
    运行啦~。
    carmark
        13
    carmark  
       2017-10-09 11:32:10 +08:00
    海外可以用么?
    cyrbuzz
        14
    cyrbuzz  
    OP
       2017-10-10 10:36:11 +08:00
    @carmark
    这个不太清楚,API 是国内环境抓取的(没有海外环境,见谅)。
    carmark
        15
    carmark  
       2017-10-10 11:34:56 +08:00   1
    @cyrbuzz 搞个 vpn,看看能不能播放呢?
    我赶脚在国外听歌是一个比较大的刚需,虽然我不在国外 ;-)
    olbb
        16
    olbb  
       2017-10-10 13:06:26 +08:00   1
    mark 下 看起来挺棒的
    cyrbuzz
        17
    cyrbuzz  
    OP
       2017-10-10 17:33:12 +08:00
    @carmark
    -,- 突然想到是有代理的。看到您的回复马上测试了下。

    结果如下:
    节点: 新加坡,日本,美国,韩国,台湾,香港(这两个应该算国内不过有点差别)。

    虾米和 QQ 可以正常播放。
    在上面的任何一个节点都可以,QQ 有一小点延迟,虾米基本一样。

    网易云的资源在上面的任何一个节点都不可以播放包括台湾和香港。
    一开始在 web 上测试提示的是版权问题,之后直接请求了下 mp3 地址,网易云的服务器对这些请求全都拒绝。


    后面准备加入多个平台的账号同步(稍有不同),创建歌单(本地),网易云上的资源应该大部分都能在虾米和 QQ 上找到 :)。
    cyrbuzz
        18
    cyrbuzz  
    OP
       2017-10-10 17:37:55 +08:00
    @olbb 感谢支持~。
    CryMeatel
        19
    CryMeatel  
       2017-10-12 10:13:43 +08:00   1
    赞诶,支持~
    CryMeatel
        20
    CryMeatel  
       2017-10-12 10:15:38 +08:00
    可以使用 PyInstaller 把所有依赖和 Python 全都打到 exe 里边,或者用个软件安装包打包然后释放,这样会方便很多哦
    lhjl1314
        21
    lhjl1314  
       2017-10-12 10:23:20 +08:00
    运行报错是 python 版本的问题吗
    cyrbuzz
        22
    cyrbuzz  
    OP
       2017-10-12 15:05:04 +08:00
    @lhjl1314
    报什么错呢?
    cyrbuzz
        23
    cyrbuzz  
    OP
       2017-10-12 15:05:24 +08:00
    @CryMeatel
    感谢支持~。
    加入 TODO。
    lhjl1314
        24
    lhjl1314  
       2017-10-12 16:12:2 +08:00
    @cyrbuzz 返回值类型不对,变量不可迭代之类的 python3.6
    cyrbuzz
        25
    cyrbuzz  
    OP
       2017-10-12 16:54:19 +08:00
    @lhjl1314
    请问可以再具体些吗,比如完整的报错信息。感谢。
    没有登录是会有报错信息的,不过不影响使用,也不会强行退出。
    lhjl1314
        26
    lhjl1314  
       2017-10-12 17:06:02 +08:00
    @cyrbuzz 例如
    File "F:\Python\Python36-32\lib\site-packages\music_player-1.0.0-py3.6.egg\MusicPlayer\apis\qqApi.
    py", line 37, in httpRequest
    return html.text
    AttributeError: 'bool' object has no attribute 'text'

    File "F:\Python\Python36-32\lib\site-packages\music_player-1.0.0-py3.6.egg\MusicPlayer\features\co
    nfigQQFeatures.py", line 16, in getSings
    for i in self.api.playList(ein=self.ein):
    TypeError: 'bool' object is not iterable

    后面还有没有就不知道了
    cyrbuzz
        27
    cyrbuzz  
    OP
       2017-10-12 19:50:09 +08:00
    @lhjl1314

    似乎是你的网络有问题?
    请求 QQ 的最新歌单时没有收到正确的回应。
    requests 有没有正确安装?
    或者有没有设置了代理?
    lhjl1314
        28
    lhjl1314  
       2017-10-13 00:38:47 +08:00 via iPhone   1
    @cyrbuzz 估计是网络的问题了,公司有代理
    cyrbuzz
        29
    cyrbuzz  
    OP
       2017-10-13 11:49:15 +08:00
    @lhjl1314
    做了些错误过滤,现在没有请求到歌单不会退出。
    lhjl1314
        30
    lhjl1314  
       2017-10-13 11:51:50 +08:00
    @cyrbuzz 赞 try try
    tikivilla
        31
    tikivilla  
       2017-11-11 00:58:34 +08:00
    谢谢- -。win10 x64 下,我安装完成后,在 cmd 里输入 musicplayer, 显示不是内部或外部命令,能具体的讲下如何运行吗。 新手- -
    tikivilla
        32
    tikivilla  
       2017-11-11 00:59:21 +08:00
    @cyrbuzz 忘了 at
    tikivilla
        33
    tikivilla  
       2017-11-11 01:26:41 +08:00
    @cyrbuzz 运行成功了,在登陆的时候我用的 163 邮箱,登陆显示 ip 高频。只能用手机号吗?谢谢
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     960 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 41ms UTC 22:35 PVG 06:35 LAX 15:35 JFK 18:35
    Do have faith in what you're doing.
    ubao msn 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