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

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

  •  
  •   KentY ·
    sk1418 · 2014-07-26 22:43:26 +08:00 · 4395 次点击
    这是一个创建于 3804 天前的主题,其中的信息可能已经有所发展或是发生改变。
    主页: 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信息,自动下载专辑封面, 专辑文本介绍(仅[虾])...等等

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

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

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

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

    回头有空了我想想有没有什么workaround.
    luckykong
        10
    luckykong  
       2014-07-30 11:25:30 +08:00
    @KentY 嗯。之前用海外的vps下载的~~
    试了一下,本地打开网页提取歌曲列表,生成每首歌的列表,再放到vps上下载成功~thanks~~~
    代理的话,有些难~vps是命令行版的centos,代理啥的不会配置~计算机小白伤不起,被windows惯坏的小白更悲剧~~
    KentY
        11
    KentY  
    OP
       2014-07-30 15:16:25 +08:00 via Android
    @luckykong 有个想法,在zx配置文件设置代理和选择是否使用。不影响环境变量。应该可行。有时间实现了它。关注更新吧。下次发现问题请直接到项目open issue,方便维护和跟踪
    KentY
        12
    KentY  
    OP
       2014-08-01 05:44:53 +08:00   ❤️ 1
    @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
        13
    jprovim  
       2014-08-08 00:33:44 +08:00
    @KentY, 支持.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5354 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 07:47 · PVG 15:47 · LAX 23:47 · JFK 02:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.