用js下载b站视频

用js下载b站视频

前言

为啥我要用js去下载b站视频呢?起因是因为我在b站快乐的学习的时候,用了一个比较小众的浏览器opera(加粗要考的,原因是chrome只能装在c盘,哪能啊),然后如图
在这里插入图片描述
一直缓冲,无法播放,我这个暴脾气,不能忍,于是换了谷歌浏览器试了一下,可以!但我还是不服!同样的信息为什么opera不能播放,只能说opera被国内厂商收购之后不思进取。
同样的信息如下:
失败
在这里插入图片描述
成功
在这里插入图片描述
事实证明,谷歌大法好。
失败报错是这样的:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
见谅,那是一台久远的电脑,我主要拿来看视频,一下子截不完整个错误。

能懒则懒

本着能懒则懒的原则,直接百度,百度无果,全是让去装flash,看来大家还是不适应失去flash的时代,现在都是h5(b站也是推荐这个播放器的,小破站都把flv.js开源了,赞)时代了。

另辟蹊径(半成功)
  1. 毕竟俺主要学习的是后端的,前端只知道一些基础的东西,然后想自己来解决一下,用啥方法呢,众所周知,浏览器技术,以换壳为主,Opera也是谷歌的内核,肯定可以装chrome插件的啊,然后俺去把chrome扩展去学了一下,然后我试了一下搞好的一个demo,直接将谷歌插件移植过去,有些是兼容的,有些不能,然后我就有点崩溃(心里骂了opera好久)
  2. 然后我想到了一个方法,直接把视频下载下来不就好了,我真机智,然后这才是噩梦的开始,查了一下网上都是python爬虫(本人一点也不喜欢python,只觉得这门语言是被某些机构炒起来的,主要用于科学计算领域,跟一些企业应用根本不搭边好吧,你那么好,为什么不用python做web?来自灵魂的质问),我傲娇,我偏不!!!
  3. 最后俺一边看网上对b站api的分析,一边尝试自己写js去下载,尝试之后,发现自己想多了,明白为什么要分前后端了(俺是个智障),研究了一番ajax,根本还是下载不下来。
  4. 但是,墙都不扶,就是不扶。还是有研究成果的:b站视频分为两种:.flv和.mp4(mp4这个要分解成流的形式,即.m4s),我选了一个简单的.flv。开始想其他的办法,转念间想到了一个大名鼎鼎的插件“油猴”,去看看有没有下b站视频的插件,果然有,还很成熟,然后我就起了好奇心,我顺藤摸瓜,在github上找到了该脚本的源码:https://github.com/htsuki/Bilibili-Evolved/blob/master/bilibili-evolved.user.js
  5. 接着我蒙了,我一个小菜鸡哪看过10000行的源代码,还没有注释,只能检索着看,还是很头疼,然后,我无意中发现了一个简版的,瞬间友好多了:https://github.com/htsuki/Bilibili-Evolved/blob/master/video/download-video/download-video.js,把两者对照着看,终于能摸着点头脑了,学习成熟的代码就是收获良多啊,经过不断的删减调试,发现自己还是不行啊,55555555555555555~,403错误,被禁止访问了(首先浏览器直接访问会被禁止,然后在js脚本中也还是被禁止,我明明都已经把请求头中的字节范围更改了,为什么还是不行),就在我快要放弃的时候,网上一篇博客是更改了请求的主机(host),抱着死马当活马医的想法,我这样蛮干了一下xhr.setRequestHeader("host", "api.bilibili.com");我去,居然可以了,不过最后下载下来的视频花屏,声音是正常的,原因未知。
    在这里插入图片描述
    俺研究的纯js下载.flv视频的源码已经上传github了:https://github.com/StupidTomCat/chrome_plugin_demo/tree/dev

参考文章:
https://blog.csdn.net/enderman_xiaohei/article/details/94591522?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-2&spm=1001.2101.3001.4242
https://www.bilibili.com/read/cv5245092/
https://www.bilibili.com/read/cv3729116没想到吧,我爬我自己
https://blog.csdn.net/enderman_xiaohei/article/details/100598003
https://blog.csdn.net/lovelovelovelovelo/article/details/102831707
https://blog.csdn.net/qq_27009517/article/details/108637797?spm=1000.2123.3001.4430
https://huajiakeji.com/dev/2019-01/1784.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值