sk1418 / zhuaxia

download mp3 files/albums from xiami.com and music.163.com
Other
410 stars 83 forks source link

无法下载 320kbps 音质的歌曲 #49

Closed dbarobin closed 7 years ago

dbarobin commented 7 years ago

该工具提供了 -H 选项:

-H : 首选 HQ 质量(320kbps),
        > 虾米音乐 <
            - 配置文件中需给出正确登录信箱和密码, 登录用户需拥有 VIP 身份
            - 用户需在 XiaMi Vip 设置页面设置默认高音质
            - 此选项对不满足上两项情况无效,仍下载 128kbps 资源

上述两种要求均满足,并且下载时提示登录成功,但下载下来的歌曲还是 128kbs 的资源。

[虾] 登录虾米...
/Library/Python/2.7/site-packages/requests/packages/urllib3/connectionpool.py:843: 
InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate 
verification is strongly advised. 
See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
  InsecureRequestWarning)
[虾][Login] 用户: xxx (id:xxxxxxxx) 登录成功.

谢谢。

sk1418 commented 7 years ago

你好, 因为我没有xiami的vip账号, 所以, 没办法调试和测试, 导致这个功能很早就没办法验证是不是高音质了. 不好意思, 没法帮你测试.

sk1418 commented 7 years ago

今天误点了一下你的用户, 发现你在酷狗工作.. 好像就用不着到网易啊, 虾米下载歌了吧? :-)

dbarobin commented 7 years ago

哈哈哈,表示已经离职了。再者,即使在酷狗工作,我也基本不用哈,都是用虾米、网易。你的虾米 ID 是多少?要不我赠送 VIP 给你?

sk1418 commented 7 years ago

好啊, 要是你没有损失我可以试试. xiami网易现在对海外IP封的挺厉害, 代理有时候也不太好用. 我已经很少登录了. 我的id是kent.yuan at gmail dot com. 我可以试试, 高音质的那个链接, 但不保证能解决.

2017-02-21 1:58 GMT+01:00 Robin Wen notifications@github.com:

哈哈哈,表示已经离职了。再者,即使在酷狗工作,我也基本不用哈,都是用虾米、网易。你的虾米 ID 是多少?要不我赠送 VIP 给你?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/sk1418/zhuaxia/issues/49#issuecomment-281216063, or mute the thread https://github.com/notifications/unsubscribe-auth/AAWb-bJCpifSEdiqDij_s0rvQSIkMqlvks5rejbIgaJpZM4MFCOw .

dbarobin commented 7 years ago

公司网络禁了虾米,用手机流量开热点上的虾米。给你的虾米 ID 充了一个月 VIP 会员哈,得闲的时候看下这个问题,辛苦了,感谢!

sk1418 commented 7 years ago

@dbarobin , 谢谢, 看到我有一个月vip了, 你能把你测试的链接发一下吗? 我看看是不是能程序解决的问题

dbarobin commented 7 years ago

这是下载链接的文件:

collect.txt

通过链接下载和通过文件下载都试过,我这边还是只能下载普通音质的。

sk1418 commented 7 years ago

刚才看了一下, 随便在你那里选择了一首个. 好久不去xiami, 他们歌曲的链接形式都改了, 不是把歌曲id写在url里了, 而是经过编码的, 而且, id是在html里的checkbox上, 好像得解析下这个html.

比如你那里有一首歌: 宋一の覚悟 链接是: http://www.xiami.com/song/xLutqRbf387 可见后面不是数字的歌曲id了, 真实id是1770383569 现在如果直接copy歌曲url, zhuaxia可能没法下载xiami的歌曲... 等哪天有空我再看吧, 而且这涉及到所有xiami下载的功能, 都要多了这一步: 解析显示的html页面,获取ID

你说下载下来还是128K, 这个我挺奇怪.. 应该是没法下载才对嘛...:-D 还是说只有海外ip才把链接里的id又一次编码了?

sk1418 commented 7 years ago

@dbarobin 做了一些改动, 详细如下. 请你测试一下bleeding branch

上述所有改动都已经merge到了bleeding branch里, 请测试一下汇报情况.

谢谢

dbarobin commented 7 years ago

公司网络把虾米禁了,只能回家测。刚测了,有错误信息:

Traceback (most recent call last):
  File "/usr/local/bin/zx", line 4, in <module>
    __import__('pkg_resources').run_script('zhuaxia==3.2.0', 'zx')
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/
Extras/lib/python/pkg_resources/__init__.py", line 742, in run_script
    self.require(requires)[0].run_script(script_name, ns)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/
Extras/lib/python/pkg_resources/__init__.py", line 1667, in run_script
    exec(code, namespace, namespace)
  File "/Library/Python/2.7/site-packages/zhuaxia-3.2.0-py2.7.egg/
EGG-INFO/scripts/zx", line 122, in <module>
    commander.shall_I_begin(option)
  File "/Library/Python/2.7/site-packages/zhuaxia-3.2.0-py2.7.egg/
zhuaxia/commander.py", line 68, in shall_I_begin
    from_url_xm(xiami_obj, option.inUrl)
  File "/Library/Python/2.7/site-packages/zhuaxia-3.2.0-py2.7.egg/
zhuaxia/commander.py", line 163, in from_url_xm
    collect = xm.Collection(xm_obj, url)
  File "/Library/Python/2.7/site-packages/zhuaxia-3.2.0-py2.7.egg/
zhuaxia/xiami.py", line 241, in __init__
    self.collection_id = xiami_obj.get_real_id(url, r'(?<=/collect/)[^?]+')
NameError: global name 'xiami_obj' is not defined
sk1418 commented 7 years ago

发现问题了. 有一些精选集是"未公开"的, 解析时候没做这个判断, 所以下载时出了异常. 还有一些别的copy/paste错误也修复了. 你再测试一下. 我随便选择了你的一个精选集, 可以下载320kbps 已merge到bleeding

dbarobin commented 7 years ago

今天测试下载了一个精选集,然后手动下载了精选集里的一首高品质歌曲,从文件大小来看,应该是 320 kbps 的,不过两个文件还是有点差异,手动下载的高品质歌曲,大小为 12.6M,还可以看到歌曲专辑缩略图,用工具下载的同一首歌曲,大小为 12.5M,没有缩略图。

测试精选集链接:http://www.xiami.com/collect/262477938 测试单曲:http://www.xiami.com/song/8GxZKce2c99

sk1418 commented 7 years ago

@dbarobin

要是你测试没问题, 我就merge到master 了.

dbarobin commented 7 years ago

我所说的缩略图,就是专辑图片。

good-night

可以看到,两个文件,12.5M 的没有缩略图,12.6M 的有。具体的区别一个是在文件列表显示专辑图片,一个是在播放时,有缩略图的会在播放时显示专辑图片。

test1 test2
sk1418 commented 7 years ago

@dbarobin 多谢你测试. 用zhuaxia下载单首歌曲, 并不下载你所谓的专辑封面到歌曲信息(mp3tag)中, 所以这也是正常情况. 目前mp3tag里的信息(如果能获取到), 只有歌曲名, 演唱者, 专辑名. 如果码率以及下载没问题, 这个issue就算解决了.
至于更多的mp3tag信息, 可以算个feature request, 看以后是不是能加进来. 所有改动已经merge到master branch中.

dbarobin commented 7 years ago

@sk1418 非常感谢,辛苦了。