[Linux|Terminal|命令行]前些日子写了个从 xiami/网易下载歌的东西, 做个广告吧

2014-07-26 22:43:26 +08:00
 KentY
主页: https://github.com/sk1418/zhuaxia

一些功能:

自动识别解析URL. 目前支持:
[虾] 歌曲,专辑,精选集,用户收藏, 歌手热门
[易] 歌曲,专辑,歌单,歌手热门

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

支持包含音乐资源URL的文件作为输入进行批量下载. URL可以是[虾]和[易]混合, 可以不同音乐类型混合 (-f 参数)

当以文件作为输入批量下载时, 多线程(可配置线程池)解析URL
多线程(可配置线程池)下载歌曲
[虾]支持以VIP账户登录下载高音质(320kbps) mp3, 并不消耗VIP的下载额度 (-H 选项)
[易]支持下载高音质(320kbps) mp3 (-H 选项)
进度显示 (色彩高亮,终端宽度改变自动适应,总进度,下载线程进度...)
mp3文件重命名, 更新mp3 meta信息,自动下载专辑封面, 专辑文本介绍(仅[虾])...等等

截图以及更详细介绍进项目主页看。

欢迎测试,使用, 提意见。
4380 次点击
所在节点    分享创造
13 条回复
pcwuyu
2014-07-26 23:23:16 +08:00
可以添加下载豆瓣红心的功能么?
KentY
2014-07-26 23:34:28 +08:00
@pcwuyu 不怎么用豆瓣, 没什么需求。 最开始用xiami,后来xiami是浏览网站屏蔽海外ip,但是下载mp3没问题。这才换用网易。 要是xiami不屏蔽国外ip, 连网易都懒得弄 :D.

你有兴趣可以fork然后加入你新功能。
pcwuyu
2014-07-27 12:33:30 +08:00
@KentY 好吧。。我不是学计算机的,只是有兴趣而已,所以不会啊。总觉得筛选歌曲的话还是豆瓣的好。

以上!
luckykong
2014-07-30 02:49:14 +08:00
下载的文件在哪里?另外支持歌单么?
比如这种页面,如何下载?
luckykong
2014-07-30 02:49:37 +08:00
luckykong
2014-07-30 03:02:10 +08:00
好吧,我知道下载位置了~~没有仔细看config,我错了~~
不过歌单如何下载?地址放进去后,下载错误
KentY
2014-07-30 03:32:36 +08:00
虾米的歌单是支持的,至少曾经支持的。
我刚试了下你的连接,的确报错。 歌单我以前是测试过的, 有可能xiami改变了返回的json格式,或者改变了api的url。 现在麻烦的是, xiami屏蔽海外ip的浏览, 我没法调试。
KentY
2014-07-30 03:40:06 +08:00
@luckykong 是否能提供一个可用的国内代理, 我好测试一下?
KentY
2014-07-30 03:55:08 +08:00
@luckykong 问题弄明白了。 刚挂了个国内代理, 一切就正常了。
以前海外ip只是不能浏览xiami的网站, 获取json的连接和下载mp3资源都是可以的, 他们没做限制。
现在获取json返回的api链接海外ip也限制了, 直接404. 挂个国内代理,就显示json了。 你也在国外吧? 飞回国就解决问题了。 :D

回头有空了我想想有没有什么workaround.
luckykong
2014-07-30 11:25:30 +08:00
@KentY 嗯。之前用海外的vps下载的~~
试了一下,本地打开网页提取歌曲列表,生成每首歌的列表,再放到vps上下载成功~thanks~~~
代理的话,有些难~vps是命令行版的centos,代理啥的不会配置~计算机小白伤不起,被windows惯坏的小白更悲剧~~
KentY
2014-07-30 15:16:25 +08:00
@luckykong 有个想法,在zx配置文件设置代理和选择是否使用。不影响环境变量。应该可行。有时间实现了它。关注更新吧。下次发现问题请直接到项目open issue,方便维护和跟踪
KentY
2014-08-01 05:44:53 +08:00
@luckykong

已升级,自测该问题应该解决了,欢迎测试。

[NEW][虾]配置项xiami.proxy.http=ip:port 来设置国内的代理服务进行xiami连接的解析。详见:"Usage -> 海外IP下载xiami资源" 一节

海外IP下载xiami资源

xiami.com屏蔽了海外ip的http请求。在配置文件中添加(如果不存在的话)xiami.proxy.http=ip:port 可以让zhuaxia通过代理来解析xiami资源。 例如:

xiami.proxy.http=127.0.0.1:8080
这里ip:port构成的http代理是国内的代理服务器。 如果你的机器已经是国内的ip,请注释或删除这个选项。获取国内代理的简单方法:到http://proxy-list.org/ 搜索China的代理就好。


选项:


#--------------------------------------
# set a http proxy server for http request
# to xiami.com. format would be: ip:port.
# for example: 127.0.0.1:8080
#
# If you comment out the option, no proxy
# server would be used for xiami request.
# This option is only useful
# when you don't have a Chinese IP.
#
# 由于xiami屏蔽海外 # ip 的大部分http request,
# 所以,如果你的机器不是国内的ip,请设置成此选项。
# 否则xiami的连接可能不能被正常解析。
# 如要设置代理服务器,请设置以下格式: ip:port
# 例如:xiami.proxy.http=127.0.0.1:8080
# 如果删除(或注释掉)本选项,意味着发送到
# xiami.com的请求不通过任何代理服务器
#
# *Tip*, 可以到http://proxy-list.org获取中国代理
#--------------------------------------
#xiami.proxy.http=120.237.3.235:8080
jprovim
2014-08-08 00:33:44 +08:00
@KentY, 支持.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/124653

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX