南强小屋 Design By 杰米
今天逛论坛的时候发现了一篇关于B站视频爬取的帖子
求助抓B站视频接口 (出处: 吾爱破解论坛)
B站视频的爬取已经多到烂大街了,原理也有很多种,最常见的还是用ffmpeg或者别的方法将视频流碎片m4s合并起来
而这个API居然直接可以爬取到完整的视频
[Python] 纯文本查看 复制代码
因此,我去抓包试了下,但是对API的来源同样难以找到
在b站找了下最近新的API分享:
https://www.bilibili.com/read/cv3430609
里面没有关于 api.bilibili.com/x/player/playurl 的内容
根据经验我尝试从B站个人主页下手
经过一番努力,我成功找到了以下内容


甚至发现了奇怪的东东


但是很可惜,因为其中一点关于视频播放的东西都没有.
无可奈何走一遍别人走过的路,老老实实点开视频抓包~
首先想到的当然还是和video有关的

很可惜并没有很重要的内容,于是转而去研究play.so,同样没有重要的数据,但是绝对在里面有重要的内容,不可奈何打不开


这就很难下手,于是尝试了对m4s文件分析一下
对文件大小排序,拿到源文件片段



改了改其中的参数,列如
deadline: 1593419974
发现结果没有两样,只是片段m4s的地址,又试着将参数删了部分,最后摸索出来如果有nsb=1就会出403

如果没有就会出949,显然没有其他可以研究的路了
看了看m4s的乱码内容,没有丝毫头绪了,点开Initator,点开其中一个js

突然找到的希望,这肯定不是凭空来的,又找了下js内的内容

发现这种API是有很多类似的,应该是为了PC,app等不同的配备,还有新版旧版的区别
翻上去一看是我自己的bilibili Evolved脚本代码,白高兴一场,但是同时也明白了肯定在什么地方会有这个API,或者是旧版本的接口,或者是其他地方里面拼接的比较隐蔽,
这时候加载的视频也放完了

看着刷出来的推荐视频的链接,突然想到,会不会在这个时候的视频链接没有被封装直接是API,
找了下最后一段时间抓到的包

果然抓到了!
打开内容看了一眼

居然是很多个片段的地址!!!
由此终于找到了API的来源:源自视频加载完后的视频推存,这时候会调用的是完整的裸露的API,可以直接调用来使用爬虫下载
心急吃不了热豆腐,虽然js中一定可以分析出这个API,但是毕竟是动态的加载,加载完之后的视频推荐或者跳转到下一个视频可能就是关键~
[Python] 纯文本查看 复制代码
求助抓B站视频接口 (出处: 吾爱破解论坛)
B站视频的爬取已经多到烂大街了,原理也有很多种,最常见的还是用ffmpeg或者别的方法将视频流碎片m4s合并起来
而这个API居然直接可以爬取到完整的视频
[Python] 纯文本查看 复制代码
api_url = 'https://api.bilibili.com/x/player/playurl?cid={}&avid={}&qn={}&otype=json&requestFrom=bilibili-helper'
因此,我去抓包试了下,但是对API的来源同样难以找到
在b站找了下最近新的API分享:
https://www.bilibili.com/read/cv3430609
里面没有关于 api.bilibili.com/x/player/playurl 的内容
根据经验我尝试从B站个人主页下手
经过一番努力,我成功找到了以下内容

1.png
api_1

1 (1).png
api_2
甚至发现了奇怪的东东

1 (2).png
api_3

1 (3).png
json_1
但是很可惜,因为其中一点关于视频播放的东西都没有.
无可奈何走一遍别人走过的路,老老实实点开视频抓包~
首先想到的当然还是和video有关的

2.png
getvideo
很可惜并没有很重要的内容,于是转而去研究play.so,同样没有重要的数据,但是绝对在里面有重要的内容,不可奈何打不开

TIM图片20200629144150.png
play.so

2.2.png
fangwen
这就很难下手,于是尝试了对m4s文件分析一下
对文件大小排序,拿到源文件片段

2.10.png
m4s

2.11.png
m4s

2.12.png
m4s
改了改其中的参数,列如
deadline: 1593419974
发现结果没有两样,只是片段m4s的地址,又试着将参数删了部分,最后摸索出来如果有nsb=1就会出403

2.22.png
如果没有就会出949,显然没有其他可以研究的路了
看了看m4s的乱码内容,没有丝毫头绪了,点开Initator,点开其中一个js

xiwang.png
js
突然找到的希望,这肯定不是凭空来的,又找了下js内的内容

js.png
js
发现这种API是有很多类似的,应该是为了PC,app等不同的配备,还有新版旧版的区别
翻上去一看是我自己的bilibili Evolved脚本代码,白高兴一场,但是同时也明白了肯定在什么地方会有这个API,或者是旧版本的接口,或者是其他地方里面拼接的比较隐蔽,
这时候加载的视频也放完了

demo.png
demo
看着刷出来的推荐视频的链接,突然想到,会不会在这个时候的视频链接没有被封装直接是API,
找了下最后一段时间抓到的包

TIM截图20200629135439.png
end
果然抓到了!
打开内容看了一眼

awo.png
json_2
居然是很多个片段的地址!!!
由此终于找到了API的来源:源自视频加载完后的视频推存,这时候会调用的是完整的裸露的API,可以直接调用来使用爬虫下载
心急吃不了热豆腐,虽然js中一定可以分析出这个API,但是毕竟是动态的加载,加载完之后的视频推荐或者跳转到下一个视频可能就是关键~
[Python] 纯文本查看 复制代码
api_url = 'https://api.bilibili.com/x/player/playurl?cid={}&avid={}&qn={}&otype=json&requestFrom=bilibili-helper'
南强小屋 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
南强小屋 Design By 杰米
暂无记一次查找bilibili视频API的经历的评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。