欢迎测试:zhuaxia(抓虾) 多线程从[虾米音乐]和[网易云音乐]抓取mp3音乐

由本社区发起的开源项目
sk1418
帖子: 229
注册时间: 2007-07-01 17:36
系统: (En):System
来自: (En):address
送出感谢: 2 次
接收感谢: 3 次
联系:

欢迎测试:zhuaxia(抓虾) 多线程从[虾米音乐]和[网易云音乐]抓取mp3音乐

#1

帖子 sk1418 » 2014-04-14 3:15

Features / 功能

- 自动解析URL (目前支持:歌曲,专辑, 用户收藏,精选集)
- 多线程(可配置线程池)解析URL
- 多线程(可配置线程池)下载歌曲
- 支持以VIP账户登录下载高音质(320kbps) mp3, 并不消耗VIP的下载额度
- 进度显示 (色彩高亮,终端宽度改变自动适应,总进度,下载线程进度...)
- 更新mp3 meta信息,自动下载封面...等等

更加详细(截图, 安装,使用)等请见:https://github.com/sk1418/zhuaxia

连个图:

图片

自己用下载了1k来首歌,还行,欢迎测试

更新至2.0

新加网易云音乐支持:

代码: 全选

Features / 功能

   - 自动识别解析URL. 目前支持:
        -[虾] 歌曲,专辑,精选集,用户收藏, 歌手热门
        -[易] 歌曲,专辑,歌单,歌手热门
    -下载歌手热门歌曲:数量可配置(小于30) ,默认Top10。 配置项: download.artist.topsong,需要艺人页面链接
    -支持包含音乐资源URL的文件作为输入进行批量下载. URL可以是[虾]和[易]混合, 可以不同音乐类型混合 (-f 参数)
    -当以文件作为输入批量下载时, 多线程(可配置线程池)解析URL
    -多线程(可配置线程池)下载歌曲
    -[虾]支持以VIP账户登录下载高音质(320kbps) mp3, 并不消耗VIP的下载额度 (-H 选项)
    -[易]支持下载高音质(320kbps) mp3 (-H 选项)
    -进度显示 (色彩高亮,终端宽度改变自动适应,总进度,下载线程进度...)
    -mp3文件重命名, 更新mp3 meta信息,自动下载专辑封面, 专辑文本介绍(仅[虾])...等等

更新至2.2.0(master) 2.3.0(bleeding)

因为虾米的api和链接格式最近做了挺大调整,所以2.1.x版本虾米部分的下载无法工作。 现在在修复过程中。 目前状态是:

代码: 全选

master branch: v2.2.0 除“用户收藏”和”专辑介绍文本“没修复,剩下虾米下载都修复
bleeding branch: v2.3.0 虾米下载都修复,但没进行充分测试
详细看bleeding branch 的readme:

https://github.com/sk1418/zhuaxia/tree/bleeding


更新master到2.4.0

虾,易的下载都已经修复。并加入 -p 实验性选项:

针对新的用户收藏的歌曲解析方法,http的请求比以前多了很多次,频繁请求会被虾ban 10分钟,加入实验性-p选项用proxy pool来解析和下载。此选项也用于[易]

长时间没更新这个帖子, zhuaxia已经更新到3.0.5

期间变化有:
  • -中英文命令行界面. 配置项 lang=en|cn 默认中文(cn)
    -下载歌曲的同时下载歌词,保存为同名lrc文件 (-l选项)
    -从v3.0.0开始zhuaxia维护一个下载历史记录, 支持增量下载(-i 选项). 增量下载时, 曾下载过的歌曲将被忽略
    -支持下载历史的导出(-e),清空(-d)
    -所有下载完成时显示/保存本次下载详情
上次由 sk1418 在 2016-02-18 17:34,总共编辑 4 次。
---
regards,

Kent
l10x
帖子: 447
注册时间: 2008-06-23 19:31
系统: debian+fedora+win10
送出感谢: 19 次
接收感谢: 3 次

Re: 欢迎测试:zhuaxia(抓虾) 多线程从xiami.com抓取mp3音乐

#2

帖子 l10x » 2014-04-14 8:48

:em38
jackingslayer
帖子: 3
注册时间: 2014-05-01 22:06
系统: ubuntu
送出感谢: 0
接收感谢: 0

Re: 欢迎测试:zhuaxia(抓虾) 多线程从xiami.com抓取mp3音乐

#3

帖子 jackingslayer » 2014-05-08 19:03

:em11 一直很需要,可惜不会写,目测完美.. 赞!+1
头像
wiewi
帖子: 628
注册时间: 2008-11-20 22:50
系统: ArchLinux
送出感谢: 0
接收感谢: 0

Re: 欢迎测试:zhuaxia(抓虾) 多线程从xiami.com抓取mp3音乐

#4

帖子 wiewi » 2014-05-23 17:27

界面很清爽 还以为是ncurses 原来是Python 赞~
===我的小窝===
无聊吗?点我吧,楼主迫切期待你的光临~~
又一个轮子
------------------------------------
这年头,没有1000贴都不好意思见人了
------------------------------------
献丑不如藏拙
------------
头像
wiewi
帖子: 628
注册时间: 2008-11-20 22:50
系统: ArchLinux
送出感谢: 0
接收感谢: 0

Re: 欢迎测试:zhuaxia(抓虾) 多线程从xiami.com抓取mp3音乐

#5

帖子 wiewi » 2014-05-23 17:28

界面很清爽 还以为是ncurses 原来是Python 赞~
===我的小窝===
无聊吗?点我吧,楼主迫切期待你的光临~~
又一个轮子
------------------------------------
这年头,没有1000贴都不好意思见人了
------------------------------------
献丑不如藏拙
------------
sk1418
帖子: 229
注册时间: 2007-07-01 17:36
系统: (En):System
来自: (En):address
送出感谢: 2 次
接收感谢: 3 次
联系:

Re: 欢迎测试:zhuaxia(抓虾) 多线程从xiami.com抓取mp3音乐

#6

帖子 sk1418 » 2014-06-08 5:56

wiewi 写了:界面很清爽 还以为是ncurses 原来是Python 赞~
理应用curses的, python也有相关库, 但是我懒的学那个了。就偷懒自己土法弄的界面,凑合用。


更新了一下,加了个小功能:

[新] 下载歌手热门歌曲:数量可配置(小于30) ,默认Top10。 配置项: download.artist.topsong,需要艺人页面链接
---
regards,

Kent
sk1418
帖子: 229
注册时间: 2007-07-01 17:36
系统: (En):System
来自: (En):address
送出感谢: 2 次
接收感谢: 3 次
联系:

Re: 欢迎测试:zhuaxia(抓虾) 多线程从[虾米音乐]和[网易云音乐]抓取mp3音乐

#7

帖子 sk1418 » 2014-06-24 19:53

更新到2.0 支持网易云音乐的抓取. 新的feature list 见首贴.
---
regards,

Kent
头像
Lavande
论坛版主
帖子: 5351
注册时间: 2008-12-21 15:27
来自: TARDIS
送出感谢: 1 次
接收感谢: 8 次

Re: 欢迎测试:zhuaxia(抓虾) 多线程从[虾米音乐]和[网易云音乐]抓取mp3音乐

#8

帖子 Lavande » 2014-06-24 22:57

试了一下下载网易的高音质
第一次运行说没有配置帐号
于是去configure里面看了一下
发现只有一个xiami user email的选项
没找到关于网易的
于是就把网易的帐号填到了虾米的地方
再次运行
说login failed,下载的还是128kbps的
头像
Lavande
论坛版主
帖子: 5351
注册时间: 2008-12-21 15:27
来自: TARDIS
送出感谢: 1 次
接收感谢: 8 次

Re: 欢迎测试:zhuaxia(抓虾) 多线程从[虾米音乐]和[网易云音乐]抓取mp3音乐

#9

帖子 Lavande » 2014-06-24 23:00

咦,奇怪,虽然界面提示是128k的
但是下载回来的文件我看了一下是320k的
sk1418
帖子: 229
注册时间: 2007-07-01 17:36
系统: (En):System
来自: (En):address
送出感谢: 2 次
接收感谢: 3 次
联系:

Re: 欢迎测试:zhuaxia(抓虾) 多线程从[虾米音乐]和[网易云音乐]抓取mp3音乐

#10

帖子 sk1418 » 2014-06-25 21:18

Lavande 写了:试了一下下载网易的高音质
第一次运行说没有配置帐号
于是去configure里面看了一下
发现只有一个xiami user email的选项
没找到关于网易的
于是就把网易的帐号填到了虾米的地方
再次运行
说login failed,下载的还是128kbps的
只有你需要下载xiami的320k音乐的时候才需要填写那个login, 而且你的用户必须有vip身份. 这在帮助文档里写了
网易不用login , 所以配置也没选项.
没配置帐号那个应该是个warning.

消息内容是以前版本的, 那时候没有163支持. 也许引起歧义. 刚刚我改了下,加了个[虾]表示只是xiami相关.并用中文显示.

网易的歌曲码率挺奇怪, 除了320k的是320k以外, 一般音质有128的, 192的,还有的是160的. 更低的还有96的,144的. 如果你不加-H ,就下载一般的, 如果一般的给你320k的, 那也没办法了, 我没去判断是不是128还是160. 但你-H,应该给你320的.

如果不是这样, 请提供测试的链接. 并请在项目网页的issue里open ticket.

多谢测试.
---
regards,

Kent
seeve
帖子: 3
注册时间: 2014-10-06 5:49
系统: ubuntu
送出感谢: 0
接收感谢: 0

Re: 欢迎测试:zhuaxia(抓虾) 多线程从[虾米音乐]和[网易云音乐]抓取mp3音乐

#11

帖子 seeve » 2014-10-06 11:13

不知道为什么我好像有Error
$ zx -H "http://www.xiami.com/album/51786"
[虾] 登录虾米...
WARNING: [虾] 登录失败, 略过登录, 虾米资源质量为 128kbps.
Traceback (most recent call last):
File "/usr/local/bin/zx", line 5, in <module>
pkg_resources.run_script('zhuaxia==1.0.0', 'zx')
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 528, in run_script
self.require(requires)[0].run_script(script_name, ns)
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 1394, in run_script
execfile(script_filename, namespace, namespace)
File "/usr/local/lib/python2.7/dist-packages/zhuaxia-1.0.0-py2.7.egg/EGG-INFO/scripts/zx", line 100, in <module>
commander.shall_I_begin(inUrl, is_hq=hq)
File "/usr/local/lib/python2.7/dist-packages/zhuaxia-1.0.0-py2.7.egg/zhuaxia/commander.py", line 41, in shall_I_begin
from_url_xm(xiami_obj, in_str)
File "/usr/local/lib/python2.7/dist-packages/zhuaxia-1.0.0-py2.7.egg/zhuaxia/commander.py", line 133, in from_url_xm
album = xm.Album(xm_obj, url)
File "/usr/local/lib/python2.7/dist-packages/zhuaxia-1.0.0-py2.7.egg/zhuaxia/xiami.py", line 103, in __init__
self.init_album()
File "/usr/local/lib/python2.7/dist-packages/zhuaxia-1.0.0-py2.7.egg/zhuaxia/xiami.py", line 106, in init_album
j = self.xm.read_link(url_album % self.album_id).json()['album']
File "/usr/lib/python2.7/dist-packages/requests/models.py", line 741, in json
return json.loads(self.text, **kwargs)
File "/usr/lib/python2.7/dist-packages/simplejson/__init__.py", line 488, in loads
return _default_decoder.decode(s)
File "/usr/lib/python2.7/dist-packages/simplejson/decoder.py", line 370, in decode
obj, end = self.raw_decode(s)
File "/usr/lib/python2.7/dist-packages/simplejson/decoder.py", line 389, in raw_decode
return self.scan_once(s, idx=_w(s, idx).end())
simplejson.scanner.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
linhao_214
帖子: 1
注册时间: 2014-09-14 20:13
系统: ubuntu
送出感谢: 0
接收感谢: 0

Re: 欢迎测试:zhuaxia(抓虾) 多线程从[虾米音乐]和[网易云音乐]抓取mp3音乐

#12

帖子 linhao_214 » 2014-10-27 22:33

:em11 :em11 ,虚心,努力
sk1418
帖子: 229
注册时间: 2007-07-01 17:36
系统: (En):System
来自: (En):address
送出感谢: 2 次
接收感谢: 3 次
联系:

Re: 欢迎测试:zhuaxia(抓虾) 多线程从[虾米音乐]和[网易云音乐]抓取mp3音乐

#13

帖子 sk1418 » 2014-12-02 20:59

因为虾米的api和链接格式最近做了挺大调整,所以2.1.x版本虾米部分的下载无法工作。 现在在修复过程中。 目前状态是:

master branch: v2.2.0 除“用户收藏”和”专辑介绍文本“没修复,剩下虾米下载都修复
bleeding branch: v2.3.0 虾米下载都修复,但没进行充分测试

详细看bleeding branch 的readme:

https://github.com/sk1418/zhuaxia/tree/bleeding
---
regards,

Kent
jinjiachen
帖子: 2095
注册时间: 2012-12-16 15:43
系统: debian
送出感谢: 8 次
接收感谢: 27 次

Re: 欢迎测试:zhuaxia(抓虾) 多线程从[虾米音乐]和[网易云音乐]抓取mp3音乐

#14

帖子 jinjiachen » 2014-12-02 21:14

刚想说界面干净 问哪个写的 原来是py 顶一个
vipheon
帖子: 27
注册时间: 2014-10-22 22:39
系统: rhel7.0, win8
送出感谢: 0
接收感谢: 0

Re: 欢迎测试:zhuaxia(抓虾) 多线程从[虾米音乐]和[网易云音乐]抓取mp3音乐

#15

帖子 vipheon » 2014-12-02 22:07

又见牛人
回复

回到 “开源小工具”