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

添加bb音乐来源 Add bbMusic provider #711

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

aynakeya
Copy link

Adds support for bilibili music.

Addtion information:

bbmusic require referer for validation,

add referer at hook.js and match.js

since connect method not allow referer, replace https with http.

添加了bilibili音频的source

bb音频,yyds!

只能说bb音频的曲库还挺牛的

@SpeedPartner
Copy link

大佬牛啤~

@SpeedPartner
Copy link

怎么使用呀?日志显示有歌的链接,但是播放不了,歌曲链接粘贴到网址打开后返回403 Forbidden

@aynakeya
Copy link
Author

怎么使用呀?日志显示有歌的链接,但是播放不了,歌曲链接粘贴到网址打开后返回403 Forbidden

See hook.js. add referer ='https://www.bilibili.com/' in the header.

请将referer ='https://www.bilibili.com/' 放到header中哦。

chrome可以使用插件来改,如果你要自己调用的话,就在请求的时候加上referer就行了。

@1715173329
Copy link

1715173329 commented Mar 1, 2021

请求时需要 referer 的话应该写在 bilibili.js 里面吧。。可以参考下其他的音源。

EDIT:看起来应该是有其他目的。

@aynakeya
Copy link
Author

aynakeya commented Mar 1, 2021

请求时需要 referer 的话应该写在 bilibili.js 里面吧。。可以参考下其他的音源。

EDIT:看起来应该是有其他目的。

是的,api不需要referer,但是请求音乐文件的时候需要referer

@1715173329
Copy link

似乎网易云音乐上面也播放不了(UWP),另外 m4a 的音质有点惨。。

@aynakeya
Copy link
Author

aynakeya commented Mar 1, 2021

似乎网易云音乐上面也播放不了(UWP),另外 m4a 的音质有点惨。。

我不知道欸,电脑端自己用的时候是可以的。

@1715173329
Copy link

这。。不知道是不是我操作问题 QAQ

$ curl -H 'referer: https://www.bilibili.com/' -H 'range: bytes=0-8191' 'http://upos-sz-mirrorks3.bilivideo.com/ugaxcode/m190717wsw47hashltjci2ujw2ee4z7c-192k.m4a?[drop]'
<html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>
<hr><center>kngx/1.10.2</center>
</body>
</html>

@aynakeya
Copy link
Author

aynakeya commented Mar 1, 2021

这。。不知道是不是我操作问题 QAQ

else if(req.url.includes("bilivideo.com")){
		// console.log("rewrite mitm")
		req.headers['referer'] = 'https://www.bilibili.com/'
		req.headers['host'] =  url.hostname
		req.headers['user-agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36'
	}

@1715173329
Copy link

else if(req.url.includes("bilivideo.com")){
		// console.log("rewrite mitm")
		req.headers['referer'] = 'https://www.bilibili.com/'
		req.headers['host'] =  url.hostname
		req.headers['user-agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36'
	}

我这里就很奇怪。。或许我得换成 PC 端试试

$ curl -H 'referer: https://www.bilibili.com/' -H 'host: www.bilibili.com' \
-A 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36' \
'http://upos-sz-mirrorks3.bilivideo.com/ugaxcode/m190717wsw47hashltjci2ujw2ee4z7c-192k.m4a?[drop]'
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Error>
    <Code>NoSuchBucket</Code>
    <Message>The specified bucket does not exist.</Message>
    <Resource>/gao-ks3/ugaxcode/m190717wsw47hashltjci2ujw2ee4z7c-192k.m4a?[drop]</RequestId>
</Error>

@aynakeya
Copy link
Author

aynakeya commented Mar 1, 2021

。。或许我得换成 PC 端试试

host换成xxxxxxxxxxxx.bilivideo.com 试试?我自己用pc的又试了试是可行的。

@1715173329
Copy link

host换成xxxxxxxxxxxx.bilivideo.com 试试?我自己用pc的又试了试是可行的。

感谢回复,看来我这里是缘分未到了 2333

@SpeedPartner
Copy link

其实我的网易云音乐客户端也播放不了,电脑和IOS上都一样,缓冲不上卡好久然后就跳下一首了,曲子链接复制到Chrome用插件改referer是可以的,emm....

@aynakeya
Copy link
Author

aynakeya commented Mar 1, 2021

其实我的网易云音乐客户端也播放不了,电脑和IOS上都一样,缓冲不上卡好久然后就跳下一首了,曲子链接复制到Chrome用插件改referer是可以的,emm....

我也不知道啊,我自己试了都可以的啊

N6838LW7}}0WW7G19(1H_BY

edit: 给一下歌曲id我看看

@SpeedPartner
Copy link

SpeedPartner commented Mar 1, 2021

我再测试了下,如果启动加上-s或-e就不行了,会反复MITM > upos-sz-mirrorks3.bilivideo.com几次后停止,可能是域名白名单的问题?

@aynakeya
Copy link
Author

aynakeya commented Mar 1, 2021

我再测试了下,如果启动加上-s或-e就不行了,会反复MITM > upos-sz-mirrorks3.bilivideo.com几次后停止,可能是域名白名单的问题?

有道理,我觉得是可能是header里host的原因。

@SpeedPartner
Copy link

SpeedPartner commented Mar 1, 2021

'upos-sz-mirrorks3.bilivideo.com',
加到hook.js中hook.target.host = new Set([下面

也就是

hook.target.host = new Set([
	'music.163.com',
	'interface.music.163.com',
	'interface3.music.163.com',
	'apm.music.163.com',
	'apm3.music.163.com',
	'upos-sz-mirrorks3.bilivideo.com',
	// 'mam.netease.com',
	// 'api.iplay.163.com', // look living
	// 'ac.dun.163yun.com',
	// 'crash.163.com',
	// 'clientlog.music.163.com',
	// 'clientlog3.music.163.com'
])

这样-s可以用了,但是-e还不行
而且host还没办法设定泛域名

@aynakeya
Copy link
Author

aynakeya commented Mar 1, 2021

而且host还没办法设定泛域名

我去加上,谢谢了。

对。他必须得是当前url的hostname。这点很烦。

@1715173329
Copy link

找到问题了,这个 hook 似乎不对。。
1715173329@26a8559

rbao123 added a commit to rbao123/UnblockNeteaseMusic that referenced this pull request May 21, 2021
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

Successfully merging this pull request may close these issues.

None yet

3 participants