南强小屋 Design By 杰米
今天逛论坛的时候发现了一篇关于B站视频爬取的帖子
求助抓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站个人主页下手
经过一番努力,我成功找到了以下内容
记一次查找bilibili视频API的经历

1.png

api_1


记一次查找bilibili视频API的经历

1 (1).png

api_2


甚至发现了奇怪的东东
记一次查找bilibili视频API的经历

1 (2).png

api_3


记一次查找bilibili视频API的经历

1 (3).png

json_1


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

2.png

getvideo


很可惜并没有很重要的内容,于是转而去研究play.so,同样没有重要的数据,但是绝对在里面有重要的内容,不可奈何打不开
记一次查找bilibili视频API的经历

TIM图片20200629144150.png

play.so


记一次查找bilibili视频API的经历

2.2.png

fangwen


这就很难下手,于是尝试了对m4s文件分析一下
对文件大小排序,拿到源文件片段
记一次查找bilibili视频API的经历

2.10.png

m4s


记一次查找bilibili视频API的经历

2.11.png

m4s


记一次查找bilibili视频API的经历

2.12.png

m4s


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

2.22.png


如果没有就会出949,显然没有其他可以研究的路了
看了看m4s的乱码内容,没有丝毫头绪了,点开Initator,点开其中一个js
记一次查找bilibili视频API的经历

xiwang.png

js


突然找到的希望,这肯定不是凭空来的,又找了下js内的内容
记一次查找bilibili视频API的经历

js.png

js


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

demo.png

demo


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

TIM截图20200629135439.png

end


果然抓到了!
打开内容看了一眼
记一次查找bilibili视频API的经历

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'
标签:
记一次查找bilibili视频API的经历

南强小屋 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
南强小屋 Design By 杰米

评论“记一次查找bilibili视频API的经历”

暂无记一次查找bilibili视频API的经历的评论...

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。