jixunmoe/cuwcl4c

最近出现的网页版网易云音乐的问题

Closed this issue · 32 comments

启用脚本后灰色歌曲倒是可以点击播放了,但很多歌曲缓冲半天后显示播放失败。(一个月之前左右还不是这样)不仅如此,启用脚本后很多本来没下架的歌曲也没法播放了,一样的缓冲失败。

希望提供具体的连接 谢谢。

On Tue, 5 Apr 2016 04:01 Adiwon, notifications@github.com wrote:

启用脚本后灰色歌曲倒是可以点击播放了,但很多歌曲缓冲半天后显示播放失败。(一个月之前左右还不是这样)不仅如此,启用脚本后很多本来没下架的歌曲也没法播放了,一样的缓冲失败。


You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
#29

@RukinoSaki
第一首是因为歌曲下架了,获取不到地址;
第二首可以正常播放。

测试时,脚本启用了所有海外用户选项。

最近常常有撥到一半 撥放器就會卡住 手動換下一首歌又好的情形

@tripall 应该是代理质量不好… 载入前半段是一个 proxy,后一段换成了坏的 proxy 就爆炸了

@jixunmoe 最近有看到用反向代理的 可以拨放下架的歌曲 我这边用了 也可以work 不过不是用网页版 要用网易的客户端

来源:https://github.com/Chion82/163-music-unlock
似乎是从这个API 去拿到资料
这脚本有机会强化一下吗?

想到办法绕过限制了。

更新至最新版,在选项 勾上 海外用户 以及取消勾选 自己代理 m*.music.126.net,刷新网页即可体验。

手机能用因为流量是加密后的,服务器直接反带相关 API。不过如果要弄成和手机一样的效果,要想办法提取 AES 密钥出来。不过我怀疑客户端还用了 RSA 加密,就和网页版一样?

不过有一些音乐感觉彻底没救了,比如 Only My Railgun

上面那首利用反向代理 好像还是可听的

Hi 我朋友那边好像是可以听的

他可以取得歌曲网址如下
http://219.138.27.20/m10.music.126.net/20160414124030/acfb06ee5aea1c9f0736f64018495120/ymusic/390a/819f/4ed5/9ca3ad0b2d6a3ab2249e043b8a7909cf.mp3?wsiphost=local

我用了一下似乎可以连
但我这边从网页都没办法...

Hi 我这里用代理无法连接。

如果可以的话 帮我问一下你的朋友 有没有登陆账号,以及什么特别的操作来听歌的?

我这里找国内服务器反带还是无法获取到有效曲目信息。

谢谢。

看了下,国内 ip 读手机版接口可以无视版权信息。

然而.. 一坨加密不会构造,等菊苣给 demo。

感觉是网路环境的关系... 看来有特定的IP可以拿到曲目信息

@tripall 如果某些特定的 ip 地址能够获取的话,请务必告诉我这个 ip :D

@tripall 新版本加了一个实验性的功能,从第三方服务器获取目前无法正常获取的曲目信息 (可能涉及用户隐私因此要求手动在选项启用)。例如之前在 #29 (comment) 提到的 Only My Railgun 可以正常播放。

但是第三方服务不知道能存活到什么时候。

Hi, 我测试了一下我这边Firefox 无法正常Work, Chrome的话在切换歌曲方面 有些问题 例如换歌单时 第一首歌曲好像都会没办法正常切过去 要按下一首才行

切歌有时候傻傻的 不清楚是不是脚本带来的问题,我也没法关掉脚本测试。。

火狐的兼容暂时不准备修,现在在用 ts 重构,将尽量多使用火狐狸进行测试。

感谢反馈~

On Thu, 9 Jun 2016 12:05 tripall, notifications@github.com wrote:

Hi, 我测试了一下我这边Firefox 无法正常Work, Chrome的话在切换歌曲方面 有些问题 例如换歌单时
第一首歌曲好像都会没办法正常切过去 要按下一首才行


You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
#29 (comment),
or mute the thread
https://github.com/notifications/unsubscribe/AFcslTh6Lg7elwoy0ElJxOqe0aPNPcUIks5qJ_OLgaJpZM4H_s87
.

@jixunmoe 能不能经常的清空一下localStorge里的缓存啊。比如在版本升级或者更改过设置之后。因为有一次不能放收费歌曲,直到我手动清空了一下localStorage.removeItem('track-queue-cache'),可能有时候缓存的mp3是错的(blank.mp3)。

不太清楚现在怎么样设置,我勾了所有选项,现在下架歌曲还是不能听,提示播放失败,比如http://music.163.com/#/song?id=412327035

@RukinoSaki 我可以播放。虽然不是那么容易,因为一开始我也不能播放。
先去设置页面,勾选“海外用户”,这个选项经常会自动关闭。
在music.163.com的控制台执行一下localStorage.removeItem('track-queue-cache')
播放歌曲。
如果不能播放,再添加几首其它歌曲,点上一首下一首按钮切换几下。

@heroboy 执行后输出undefined

看来要多做个检测 如果是空白占位符就重新获取

目前准备用 TypeScript 重构,可否禁用当前脚本,然后试试 TS 版 (并重新在设置页面启用相关选项)?

https://github.com/JixunMoe/cuwcl4c/raw/master-ts/out/cuwcl4c-ts.user.js

@jixunmoe 新的安装之后在脚本里看不到啊 不清楚是不是装上了
还有个问题 我用的opera浏览器,配置界面经常打不开,提示“正在重设设定,稍后将自动刷新该页面。”

Hi 我找到一些TS版的问题
第一个是歌词都无法显示
第二个是Fx的上面无法拨放这歌单的第二首 在chrome上面正常拨放
http://music.163.com/#/playlist?id=392770308

image

我这里的 Firefox 能正常播放?也有可能刚更新的代码莫名其妙修好了这个问题 (修复歌词无法正常播放)..

不好意思打擾開發者, 但我在chrome上面使用這個插件失效, log如下:

[CUWCL4C][日志] 脚本开始执行。
[CUWCL4C][日志] 域名: 163.com; 完整地址: http://music.163.com/; 请求参数: {}
[CUWCL4C][日志] 脚本版本 [ 3.0.575 ] , 如果发现脚本问题请提交到 [ https://greasyfork.org/forum/post/discussion?Discussion/ScriptID=2600 ] 谢谢。
[CUWCL4C][日志] onStart 准备阶段 :: 开始
[CUWCL4C][日志] 应用 [网易音乐下载解析] 的样式表…
[CUWCL4C][信息] 执行规则: 网易音乐下载解析<ID: music.163>[事件: onStart]
[CUWCL4C][日志] onStart 准备阶段 :: 结束
[CUWCL4C][日志] onBody 阶段 :: 开始
[CUWCL4C][信息] 执行规则: 网易音乐下载解析<ID: music.163>[事件: onBody]
[CUWCL4C][日志] onBody 阶段 :: 结束
[CUWCL4C][错误] [H.waitUntil] Callback for 3.0.575 had an error: Cannot read property 'prototype' of undefined 
错误追踪Error
    at Object.eval (eval at v (eval at exec (unknown source)), <anonymous>:11848:63)
    at Object.eval (eval at v (eval at exec (unknown source)), <anonymous>:12134:7)
    at <anonymous>:2:95
    at f.string.d.(anonymous function) (eval at exec (unknown source), <anonymous>:48:204)

edit: 使用TS版正常了, 辛苦作者啦

现在那些版权问题而变灰的歌曲好像绕不过去了吧?那是否能不要再在UI上移除变灰呢,这样至少知道哪些听不了也不用费劲去点了

而且现在国内和海外用户变灰的歌曲都一样了(都是只有版权下线变灰,海外用户不会多变灰一些(原来会),只是不用脚本播不了而已)。

一个范例:
http://music.163.com/#/playlist?id=4165125
http://music.163.com/#/song?id=297780

@fireattack 开脚本选项,大部分能播,例如你给的歌单的光辉岁月还是能播的。

纯用户脚本无法绕过,因为有一个很蠢的设定:除非网页资源加载成功,否则不会返回跳转后的地址。

「我会好好的」这首歌通过第三方返回的地址是 m2.music.126.net 的,如果搭建本地代理,播放没有问题。

$ curl -v -L -H "Range: bytes=0-2" http://api.itwusun.com/music/songurl/wy_320_297780.mp3?sign=048b07b9e2e6d89a4e856f865de9f6bc
*   Trying 115.28.141.111...
* Connected to api.itwusun.com (115.28.141.111) port 80 (#0)
> GET /music/songurl/wy_320_297780.mp3?sign=048b07b9e2e6d89a4e856f865de9f6bc HTTP/1.1
> Host: api.itwusun.com
> User-Agent: curl/7.49.1
> Accept: */*
> Range: bytes=0-2
>
< HTTP/1.1 302 Found
< Cache-Control: private
< Content-Type: text/plain
< Location: http://m2.music.126.net/1R2ojLx8jFxjXxV7Opi8qQ==/1029142883604897.mp3
< Vary: Accept
< Server: Microsoft-IIS/7.0
< X-Powered-By: ServiceStack/4.050 Win32NT/.NET
< X-AspNet-Version: 4.0.30319
< X-Powered-By: ASP.NET
< Date: Thu, 04 Aug 2016 15:02:00 GMT
< Content-Length: 0
<
* Connection #0 to host api.itwusun.com left intact
* Issue another request to this URL: 'http://m2.music.126.net/1R2ojLx8jFxjXxV7Opi8qQ==/1029142883604897.mp3'
*   Trying 127.0.0.1...
* Connected to m2.music.126.net (127.0.0.1) port 80 (#1)
> GET /1R2ojLx8jFxjXxV7Opi8qQ==/1029142883604897.mp3 HTTP/1.1
> Host: m2.music.126.net
> User-Agent: curl/7.49.1
> Accept: */*
> Range: bytes=0-2
>
< HTTP/1.1 301 Moved Permanently
< Date: Thu, 04 Aug 2016 15:02:00 GMT
< Server: Apache/2.4.16 (Win32) OpenSSL/1.0.2d PHP/7.0.0beta3
< Location: http://p2.music.126.net/1R2ojLx8jFxjXxV7Opi8qQ==/1029142883604897.mp3
< Content-Length: 388
< Content-Type: text/html; charset=iso-8859-1
<
* Ignoring the response-body
* Connection #1 to host m2.music.126.net left intact
* Issue another request to this URL: 'http://p2.music.126.net/1R2ojLx8jFxjXxV7Opi8qQ==/1029142883604897.mp3'
*   Trying 151.249.94.25...
* Connected to p2.music.126.net (151.249.94.25) port 80 (#2)
> GET /1R2ojLx8jFxjXxV7Opi8qQ==/1029142883604897.mp3 HTTP/1.1
> Host: p2.music.126.net
> User-Agent: curl/7.49.1
> Accept: */*
> Range: bytes=0-2
>
< HTTP/1.1 206 Partial Content
< Date: Thu, 04 Aug 2016 15:02:01 GMT
< Server: PWS/8.1.38
< X-Px: ms h0-s42.p6-lhr ( h0-s57.p6-lhr), ht-d h0-s57.p6-lhr.cdngp.net
< ETag: dea65140bb9660f40a0ce1cd39f2f95b-1
< Cache-Control: max-age=31536000
< Expires: Fri, 04 Aug 2017 14:34:30 GMT
< Age: 1651
< Accept-Ranges: bytes
< Content-Length: 3
< Content-Type: image/jpg; charset=UTF-8
< Content-Disposition: inline; filename="1R2ojLx8jFxjXxV7Opi8qQ%3D%3D%2F1029142883604897"
< Last-Modified: Thu, 10 Dec 2015 23:35:14 Asia/Shanghai
< Content-Range: bytes 0-2/10842588
< Connection: keep-alive
<
ID3* Connection #2 to host p2.music.126.net left intact

127.0.0.1 是我的本地地址,如果不嫌弃的话你也可以搭建。教程我就不放了,网络上一堆,nginx 或 apache 跳转都可以。

Apache 的 .htaccess:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^m1\.music\.126\.net [NC]
RewriteRule ^(.*)$ http://p1.music.126.net/$1 [NC,R=301]

RewriteCond %{HTTP_HOST} ^m2\.music\.126\.net [NC]
RewriteRule ^(.*)$ http://p2.music.126.net/$1 [NC,R=301]

另外如果有新的问题请新建 Issue... 每次看报告都要翻好久..