V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
cyrbuzz
V2EX  ›  分享创造

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

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

    @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
        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:12 +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   ·   实用小工具   ·   1410 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 17:30 · PVG 01:30 · LAX 09:30 · JFK 12:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.