Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
dbarobin opened this issue Feb 18, 2017 · 16 comments
Closed

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

dbarobin opened this issue Feb 18, 2017 · 16 comments

Comments

@dbarobin
Copy link

该工具提供了 -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
Copy link
Owner

sk1418 commented Feb 19, 2017

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

@sk1418
Copy link
Owner

sk1418 commented Feb 20, 2017

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

@dbarobin
Copy link
Author

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

@sk1418
Copy link
Owner

sk1418 commented Feb 21, 2017 via email

@dbarobin
Copy link
Author

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

@sk1418
Copy link
Owner

sk1418 commented Feb 23, 2017

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

@dbarobin
Copy link
Author

这是下载链接的文件:

collect.txt

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

@sk1418
Copy link
Owner

sk1418 commented Feb 24, 2017

刚才看了一下, 随便在你那里选择了一首个. 好久不去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
Copy link
Owner

sk1418 commented Feb 26, 2017

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

  • 根据xiami的改动做了一些修改, 现在可以copy 新的xiami url给zhuaxia, zhuaxia来下载相关资源
  • 修改了获取HQ音质链接部分. 但是有的它虽然标出是320kbps, 可连接下来还是128的, 这个就没办法了
  • 还有个意外的事情, 好像有些320kbps资源, 不登录也可以下载到, 比如我在略过登录情况下载了这首: http://www.xiami.com/song/b4TIoc6653-H, 下来的是320kbps

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

谢谢

@dbarobin
Copy link
Author

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

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
Copy link
Owner

sk1418 commented Feb 28, 2017

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

@dbarobin
Copy link
Author

dbarobin commented Mar 4, 2017

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

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

@sk1418
Copy link
Owner

sk1418 commented Mar 4, 2017

@dbarobin

  • 单独下载一首歌曲是不下载专辑图片的. 所以专辑图不会被下载. 你说的缩略图我不知道是什么
  • 你可以把下载的MP3在播放器里查看歌曲信息, 据我自己测试, 是320kbps. 码率可以有软件查看的.

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

@dbarobin
Copy link
Author

dbarobin commented Mar 5, 2017

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

  • 12.5M 的歌曲,是用 zx 下载的。
  • 12.6M 的歌曲,是网页版虾米下载的(选择的高品质)

good-night

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

test1

test2

@sk1418
Copy link
Owner

sk1418 commented Mar 6, 2017

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

@sk1418 sk1418 closed this as completed Mar 6, 2017
@dbarobin
Copy link
Author

dbarobin commented Mar 7, 2017

@sk1418 非常感谢,辛苦了。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants