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

B站音频爬取失效 #12

Open
qwe5283 opened this issue Nov 30, 2024 · 5 comments
Open

B站音频爬取失效 #12

qwe5283 opened this issue Nov 30, 2024 · 5 comments

Comments

@qwe5283
Copy link

qwe5283 commented Nov 30, 2024

B站在2024年11月底更新了前端网页,之前的爬取方法已经失效了

@qwe5283
Copy link
Author

qwe5283 commented Nov 30, 2024

backend/music.py中的bili_get_playinfo(vid)方法改一下应该就好了,只需要改这一个地方🎉B站现在不在播放页面html中返回baseurl了,换个方式获取一下吧

def bili_get_playinfo(vid):  # 获取播放链接
    url = f"https://api.bilibili.com/x/web-interface/view?aid={vid[2:-4]}"
    r = requests.get(url, headers=header)
    data = json.loads(r.text)["data"]
    bvid = data["bvid"]
    cid = data["pages"][0]["cid"]
    url = f"https://api.bilibili.com/x/player/playurl?bvid={bvid}&cid={cid}&qn=0&fnver=0&fnval=4048&fourk=1"
    r = requests.get(url, headers=header)
    return json.loads(r.text)

@flwfdd
Copy link
Owner

flwfdd commented Dec 3, 2024

但我试了下MergeMusic网页端也还能正常用、、为什么呢

@qwe5283
Copy link
Author

qwe5283 commented Dec 4, 2024

我猜测因为你使用了阿里云OSS将b站的音频保存下来进行分发🤔截止2024年11月更新之前,在网站使用过程中,OSS已经保存了大部分音频,所以这首歌只要不是第一次播放,都能从缓存中进行分发播放👀但如果你点的是之前没有人播放过的歌,后端就下载不了新的歌保存进OSS了,直接在网页中弹出snackbar消息显示"出错了QwQ"

@flwfdd
Copy link
Owner

flwfdd commented Dec 4, 2024

我猜测因为你使用了阿里云OSS将b站的音频保存下来进行分发🤔截止2024年11月更新之前,在网站使用过程中,OSS已经保存了大部分音频,所以这首歌只要不是第一次播放,都能从缓存中进行分发播放👀但如果你点的是之前没有人播放过的歌,后端就下载不了新的歌保存进OSS了,直接在网页中弹出snackbar消息显示"出错了QwQ"

我是清空了对象存储后才进行测试的,另外前几天腾讯云函数计算环境更新导致后端挂了几天,现在已经修好了。
我又在本地检查了一下也是可以正常运行的,看了下B站的页面源码也还是有baseUrl的呀🧐

@qwe5283
Copy link
Author

qwe5283 commented Dec 4, 2024

可能是b站又暗改回去了😂我的确三天前在b站返回的html里面搜playinfo__和baseurl都搜不到结果,但现在又能搜到了🎉

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