V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
PythoneerDev6
V2EX  ›  程序员

网易云音乐助手 ncmbot 一个 Python 的三方组件,用 Python 玩转网易云音乐

  •  
  •   PythoneerDev6 ·
    xiyouMc · 2017-06-23 10:07:15 +08:00 · 8542 次点击
    这是一个创建于 2720 天前的主题,其中的信息可能已经有所发展或是发生改变。

    GitHub license

    NCMBot

    NeteaseCloudMusic Bot for Philharmonic™

    文档说明

    源代码

    简介

    • ncmbot 是 NeteaseCloudMusicBot (网易云音乐助手) 的简称
    • ncmbot 是一个 Python 的第三方组件,用 Python 玩转网易云音乐
    • 实现了 网易云音乐 的 API 封装
    • 提供了轻量化的接口,高效的扩充音乐库
    • 同时,提供了私人 FM 等接口,你可以通过分析准确的找到自己喜欢的音乐

    安装

    • pip install ncmbot
    • easy_install ncmbot

    环境、架构

    开发语言:Python2.x

    开发环境:MacOS 系统、4G 内存

    • 主要使用了 Requests 开源库
    • 基于网易云音乐 API 的定义,完成 Python 组件的封装
    • 轻量化的接口设计

    接口列表

    1. 登录
    2. 获取用户歌单
    3. 获取用户电台
    4. 获取用户关注列表
    5. 获取用户粉丝
    6. 获取用户动态
    7. 获取用户播放列表
    8. 获取好友的动态
    9. 获取精品歌单
    10. 获取歌单中的所有音乐
    11. 获取音乐的下载地址
    12. 搜索
    13. 获取歌词
    14. 获取音乐的评论
    15. 获取歌曲详情
    16. 获取私人 FM
    17. ...

    使用

    import ncmbot
    bot = ncmbot.login(phone='xxx', password='yyy')
    bot.content # bot.json()
    

    联系我

    • 关注微信公众号: DeveloperPython
    图片名称
    第 1 条附言  ·  2017-06-23 11:02:22 +08:00

    标题太长了。

    这是 在线文档

    这是 源代码

    第 2 条附言  ·  2017-06-24 11:50:21 +08:00
    老铁们的邮箱登录 暂时有问题。晚点修复。
    49 条回复    2017-08-18 14:40:38 +08:00
    PythoneerDev6
        1
    PythoneerDev6  
    OP
       2017-06-23 10:08:48 +08:00
    顶一下试试
    wangsir001
        2
    wangsir001  
       2017-06-23 10:14:51 +08:00
    这个怎么用啊
    PythoneerDev6
        3
    PythoneerDev6  
    OP
       2017-06-23 10:16:37 +08:00
    @wangsir001 正文中有文档说明
    PythoneerDev6
        4
    PythoneerDev6  
    OP
       2017-06-23 11:02:56 +08:00
    忘了开启标题党模式。
    am241
        5
    am241  
       2017-06-23 11:26:36 +08:00 via Android
    收藏了,可以用在我的树莓派小音箱里
    PythoneerDev6
        6
    PythoneerDev6  
    OP
       2017-06-23 11:57:58 +08:00
    @am241 妥妥的 没毛病
    xxghost
        7
    xxghost  
       2017-06-23 13:14:54 +08:00
    你确定 login 接口可以用?网易最近在 login 接口中加了新的东西
    jeffersonpig
        8
    jeffersonpig  
       2017-06-23 13:21:23 +08:00
    2.x
    Lycnir
        9
    Lycnir  
       2017-06-23 13:52:50 +08:00
    支持 不过可能会转为 python3
    PythoneerDev6
        10
    PythoneerDev6  
    OP
       2017-06-23 13:53:33 +08:00
    @Lycnir
    @jeffersonpig 后面可以支持 3 目前是 0.1.0 版本
    PythoneerDev6
        11
    PythoneerDev6  
    OP
       2017-06-23 13:53:49 +08:00
    @xxghost 必须能用啊。 截图就是返回结果
    xxghost
        12
    xxghost  
       2017-06-23 16:49:33 +08:00
    你的截图????

    你确定你的截图不是假数据?

    不要让我打你脸好吧。

    id 为 111111 的用户 username 并不是叫 111111
    PythoneerDev6
        13
    PythoneerDev6  
    OP
       2017-06-23 17:07:32 +08:00
    @xxghost 老铁,你觉得我把我的账号 ID 放截图合适吗。 拜托,动动你的脑子。
    其次,等你运行代码了,再来这里喷,不迟啊。
    PythoneerDev6
        14
    PythoneerDev6  
    OP
       2017-06-23 17:14:51 +08:00
    @xxghost 兄弟,你为什么不喷下 xxx yyy。 来打我脸啊
    xxghost
        15
    xxghost  
       2017-06-23 19:10:03 +08:00 via iPhone
    谁告诉你我没有运行代码,我是准备贴代码的
    后来我账号截图懒得打马赛克

    我就是因为运行了代码,我是 login 不了我才回复的
    lxml
        16
    lxml  
       2017-06-23 19:17:59 +08:00 via iPhone
    又可以命令行美滋滋听歌了这是?但 angry 的是居然不上 3 ?
    PythoneerDev6
        17
    PythoneerDev6  
    OP
       2017-06-23 19:43:57 +08:00
    @lxml 一直在 2 上跑。 还没支持呢
    PythoneerDev6
        18
    PythoneerDev6  
    OP
       2017-06-23 19:44:36 +08:00
    @xxghost 呵呵呵 废话真是多。 有这功夫 早上截图了
    xxghost
        19
    xxghost  
       2017-06-23 20:23:49 +08:00 via iPhone
    可是你的代码还是不能 loginヽ(゚Д゚)ノ
    PythoneerDev6
        20
    PythoneerDev6  
    OP
       2017-06-23 20:25:57 +08:00
    @xxghost 我在我的所有机器都试了。都是可以的。 你不妨截图发出来我看下 错误是啥。
    gdrk
        21
    gdrk  
       2017-06-23 20:28:59 +08:00 via Android   ❤️ 1
    @xxghost 有问题直接说问题或者贴图嘛,绕那么大弯干嘛
    owlsec
        22
    owlsec  
       2017-06-23 21:51:51 +08:00 via iPhone   ❤️ 1
    @xxghost 有问题以友好的方式提出问题,然后贴报错。这才是正确解决方法啊。你这一上来就无脑喷,连个报错都不铁,你咋脾气这么大?
    lxml
        23
    lxml  
       2017-06-23 22:41:45 +08:00
    @PythoneerDev6 #17 对了问下你知道网易云旧版的接口么?我看很多第三方服务用这个可以访问被下架的歌曲?
    mingyun
        24
    mingyun  
       2017-06-24 00:11:05 +08:00
    期待支持 py3
    imcczy
        25
    imcczy  
       2017-06-24 00:19:11 +08:00 via iPhone
    这个没有版权方面的问题么
    Natsumoku
        26
    Natsumoku  
       2017-06-24 03:27:11 +08:00 via Android
    可以获取自己每周的听歌排行吗
    PythoneerDev6
        27
    PythoneerDev6  
    OP
       2017-06-24 08:28:28 +08:00 via iPhone
    @Natsumoku 可以
    aaronzjw
        28
    aaronzjw  
       2017-06-24 08:53:41 +08:00
    看来群主看了不少 requests 库
    PythoneerDev6
        29
    PythoneerDev6  
    OP
       2017-06-24 09:22:42 +08:00 via iPhone
    @aaronzjw 哈哈哈哈碰见熟人了?
    aksoft
        30
    aksoft  
       2017-06-24 09:24:08 +08:00
    不是会员能下载无损不?
    Rocka
        31
    Rocka  
       2017-06-24 11:06:53 +08:00
    不能用邮箱登录。

    https://img.vim-cn.com/46/a3af353cef91bf0df20688c943194023404474.png

    网易云音乐的邮箱登录和手机号登录用的请求地址其实是不一样的,但代码里面并没有作判断,文档中也没有作区分。希望还是再测试完善一下吧。
    xxghost
        32
    xxghost  
       2017-06-24 11:36:17 +08:00 via iPhone
    喏,我就说吧,你说你什么都测试成功了,结果我提出来了 login 里面缺了参数,你不信,喷了我一顿,我懒得跟你吵,不知道怎么那么自信,上面有人上图了吧
    xxghost
        33
    xxghost  
       2017-06-24 11:38:20 +08:00 via iPhone
    @aksoft 不是会员现在下不了无损,只有会员的账号里面,获取歌曲的 api 才会返回无格式的 url,不会网易的歌多半是假无损。不知道收藏
    PythoneerDev6
        34
    PythoneerDev6  
    OP
       2017-06-24 11:43:37 +08:00 via iPhone
    @Rocka 谢谢提醒。我的粗心 因为我的账号是手机 真是忘了测邮箱。晚上修复
    PythoneerDev6
        35
    PythoneerDev6  
    OP
       2017-06-24 11:45:25 +08:00 via iPhone
    @xxghost 谁知道你在说啥。废话半天。你直接说邮箱登录有问题 不就得了。问题都描述不清楚。 是我测试疏忽 没测邮箱。其次 我的文章中例子也是手机登录的。
    xxghost
        36
    xxghost  
       2017-06-24 11:50:13 +08:00 via iPhone
    @PythoneerDev6 我从第一句就说了你的 login 有问题,缺参数,而且是最近新加的,麻烦你确定一下

    你倒好,无敌自信,开喷我,你到现在还是这样的态度,那我就真没有办法了
    PythoneerDev6
        37
    PythoneerDev6  
    OP
       2017-06-24 11:51:36 +08:00 via iPhone
    @xxghost 那你去试试手机登录吧。
    PythoneerDev6
        38
    PythoneerDev6  
    OP
       2017-06-24 11:54:31 +08:00 via iPhone
    @xxghost 其次,麻烦你再看看谁先喷的。睁大你的眼睛。来 打我脸啊。
    xxghost
        39
    xxghost  
       2017-06-24 11:55:34 +08:00 via iPhone
    @PythoneerDev6 我都试了,手机登录没有问题,走的那个接口因为要照顾手机客户端这边,客户端升级成本的一些问题,就没有加入新参,我早都研究过了。结果还被你喷,惹不起
    qq316107934
        40
    qq316107934  
       2017-06-24 14:23:17 +08:00   ❤️ 1
    感谢分享,不友善言论楼主可以选择性忽略,不必要浪费时间。
    XueSeason
        41
    XueSeason  
       2017-06-24 18:06:59 +08:00 via iPad   ❤️ 1
    @xxghost 是不是楼主欠你钱了,一上来就要打楼主脸,好歹去项目提 issue,描述下问题,而不是在论坛里引战。
    yinflying
        42
    yinflying  
       2017-06-24 20:29:43 +08:00
    咦?这个和 musicbox 有什么关系?
    musicbox: python 版 netease-music CLI client...
    PythoneerDev6
        43
    PythoneerDev6  
    OP
       2017-06-24 20:59:13 +08:00 via iPhone
    @yinflying 这是有交互的吧。我的直接是组件
    ctsed
        44
    ctsed  
       2017-06-24 21:04:08 +08:00
    期待兼容 python3
    uuair
        45
    uuair  
       2017-06-24 23:16:17 +08:00
    我看过好多好多的 shell 下网易云音乐,但我使用微博登录的。。。。。没绑定邮箱手机,就算绑定了耶没有密码啊。。。。所以怎么办?
    PythoneerDev6
        46
    PythoneerDev6  
    OP
       2017-06-25 13:46:42 +08:00 via iPhone
    @uuair 这个可以研究下。
    numoone
        47
    numoone  
       2017-08-14 21:53:59 +08:00
    命令执行完只返回<Response [200]>,想问一下怎么才能得到返回来的具体信息?

    ```
    ncmbot.user_play_list(uid='270863895')
    Out[277]: <Response [200]>

    ncmbot.top_playlist_highquality(cat='华语')
    Out[278]: <Response [200]>

    ncmbot.Response()
    Out[279]: <Response [None]>
    ```
    numoone
        48
    numoone  
       2017-08-14 22:42:33 +08:00
    我真蠢。。。搞定了。应该要将命令的返回赋给一个变量才能得到详细信息。另外,请问如何获得用户的听歌排行?
    PythoneerDev6
        49
    PythoneerDev6  
    OP
       2017-08-18 14:40:38 +08:00
    @numoone 目前接口貌似还不支持。 可以扩展
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3699 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 04:26 · PVG 12:26 · LAX 20:26 · JFK 23:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.