B站网页端下载视频,直接浏览器下载或者Java实现下载
B站网页端下载视频,只需要调用两个api即可
1、通过bv号查询视频信息,找到视频的cid:
http://api.bilibili.com/x/web-interface/view?bvid=BV1Zq4y1R7RV
2、找到cid后,再调用另一个api,bvid输入bv号,cid输入刚刚找到cid
https://api.bilibili.com/x/player/playurl?otype=json&fnver=0&fnval=2&player=1&qn=64&bvid=BV1Zq4y1R7RV&cid=419316130
3、在返回的json中,找到url,直接点击下载
不嫌麻烦的,也可以用java实现,处理一下返回的json数据就行
public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入BV号:");String url = getUrl(scanner.next());System.out.print("请输入视频名称:");download(url,scanner.next());}/*** 这里的HttpUtil、JSONUtil都是用的hutool的,因为我项目中刚好有这个依赖,就直接用了* 如果没有的话,用 HttpURLConnection 发送请求也可*/public static String getUrl(String bv){//根据bv号查询信息,得到cidString path = "http://api.bilibili.com/x/web-interface/view?bvid="+bv;//得到返回的json数据(HttpUtil.get() 直接发送一个get请求)JSONObject json1 = JSONUtil.parseObj(HttpUtil.get(path));//获取返回的data数据信息JSONObject data1 = JSONUtil.parseObj(json1.get("data"));//得到cidString cid = data1.get("cid").toString();String url = "https://api.bilibili.com/x/player/playurl?otype=json&fnver=0&fnval=2&player=1&qn=64&bvid="+bv+"&cid="+cid+"";JSONObject json2 = JSONUtil.parseObj(HttpUtil.get(url));JSONObject data2 = JSONUtil.parseObj(json2.get("data"));JSONArray durl = JSONUtil.parseArray(data2.get("durl"));JSONObject obj = JSONUtil.parseObj(durl.get(0));return obj.get("url").toString();}public static void download(String urlPath,String fileName) {try {long begin = System.currentTimeMillis();URL url = new URL(urlPath);//这里因为要设置请求的协议,无法直接使用HttpUtil.get(),所以还是用的 HttpURLConnection来请求的HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setRequestMethod("GET");conn.setRequestProperty("Content-Type", "application/json;charset=UTF-8");//这里必须要设置bilibili的协议,否则无法下载conn.setRequestProperty("Referer", "https://www.bilibili.com");conn.setRequestProperty("Sec-Fetch-Mode", "no-cors");conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36");conn.setConnectTimeout(10 * 1000);InputStream input = conn.getInputStream();FileUtils.copyInputStreamToFile(input, new File("C:\\Users\\Admin\\Downloads\\" + fileName + ".flv"));input.close();long end = System.currentTimeMillis();System.out.println("耗时:" + (end - begin) / 1000 + "秒");System.out.println("下载完成!");conn.disconnect();} catch (Exception e) {e.printStackTrace();}}
B站网页端下载视频,直接浏览器下载或者Java实现下载相关推荐
- bilibili登录页面代码html5,GitHub - Attect/Bilibili-HTML5-Random-Play: 基于TamperMonkey的B站网页端随机播放功能插件...
Bilibili-HTML5-Random-Play 基于TamperMonkey的B站网页端随机播放功能插件. B站新版网页看起来不错,但依然没有增加随机播放功能,一些分P巨多的音乐视频合集播放起来 ...
- 怎么用python下载视频_使用Python从直接URL下载视频
我想用 python下载视频.我尝试使用youtube-dl,但不支持我想从中下载视频的网站.如何在 Python中下载视频.首先,我尝试在关注此链接 http://www.kmcgraphics.c ...
- 百度网盘网页端的视频如何调节播放倍速?
文章目录 一.Chrome插件 二.浏览器脚本 一.Chrome插件 chrome插件,应用商店搜索[百度视频加速]下载插件,如图所示,安装后在百度网盘网页端,点击按钮即可调整播放倍速. 二.浏览器脚 ...
- linux浏览器无法下载,红芯浏览器目前已经无法正常下载到
自从红芯浏览器获得2.5亿融资的消息公布后,这款国产自主研发的浏览器受到了网友们极大的关注,很多网友们纷纷下载体验这款继微软IE.谷歌Chrome.苹果Safari及火狐之后的红芯浏览器.据红芯官方称 ...
- B站网页端视频旋转JS代码
有时b站up主上传的视频不是横屏的,电脑端看起来费脖子,可以用如下代码解决. F12打开浏览器console 粘贴下列代码并回车 其中-90(负数)是逆时针旋转的度数,正数是顺时针旋转,可以改成180 ...
- python3.0下载用什么浏览器_无法让Python下载网页源代码:“不支持浏览器版本”...
查看您列出的url,我执行了以下操作:使用wget下载了页面 将urllib与ipython一起使用并下载了页面 使用chrome,只保存了url 所有3个都给了我相同的结果文件(相同的大小,相同的内 ...
- 微信调用jssdk在网页端实现调用扫一扫,java+jsp
这篇文章以讲解的方式,帮助大家来理解微信官方的文档,同时给出调用扫一扫的例子. 微信官方技术文档jssdk:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e04 ...
- Bilibili 网页版下载视频 B站下载MP4格式视频(不用下载工具)
博主是为了给家里老人下载戏曲,一开始是单个单个解析然后下载,想多下载一些,然后用了批量方法下载很好用 通过网页版解析工具 解析单个视频 获得下载地址 复制视播放地址,如,复制播放视频时,上方的地址 然 ...
- 【下载网页上的视频】IDM显示无法将下载行为传输到IDM
安装了绿化版的IDM来下载网页上的视频,非常好用,但是下载之后却显示无法将下载行为传输到IDM. [解决办法]下载之前进行配置:运行IDM,下载-选项-常规下进行设置: 常规设置-勾选接管所有浏览器下 ...
- 新款众人帮任务帮威客兼职双端网页端悬赏任务源码蚂蚁聊天抖音快手头条点赞 下载
某站1500元购买,后台Tinkphp 前端可封装打包 网页端加安卓苹果 可封装小程序. 下载链接:https://pan.baidu.com/s/1ds_xFq1Rd1_xC4515BRGXw 提 ...
最新文章
- spring 两次进入拦截器_4.SpringBoot 拦截器Fliter,Interceptor,Controller……
- 如何在Laravel 中对大文件进行加密?
- python爬虫(四)_urllib2:handle处理器和自定义opener
- [导入]ASP.NET断点续传和多线程下载
- Hadoop YARN:调度性能优化实践【转】
- 已知一个掺杂了多个数字字符的中文名拼音,去掉所有数字字符之后,形式为“名”+空格+“姓”;并且名和姓的首字母大写,其他小写,要求输出姓名全拼,且全为小写。(后附详细样例说明)
- 远程拷贝代码 指定端口
- hdu4135容斥原理 组合遍历
- 搜索文献_搜索参考文献?6个搜索小技巧,搞科研需知!
- 你绝对猜不到 Java 14 有什么新特性?
- python中给文件改名
- 哨兵二号数据下载的手把手指导以及12.5米DEM数据下载
- CSDN超实用的浏览器插件—去自家网站/搜索广告、超快捷万能搜索、各种实用小功能等诸多功能等你探索
- 淘宝价格带卡位公式是什么?如何定价?
- 用图片签名时,如何解决签名的图片会盖住内容的问题
- 如何使用ArcGIS制作真实的植被
- idea中如何生成程序运行的时序图
- 推荐系统经典论文文献及业界应用
- 蚂蚁金服服务注册中心数据一致性方案分析 | SOFARegistry 解析
- 编写SPI DAC驱动程序
热门文章
- mysql占用CPU超过100%
- 怎么把音频转换成mp3格式?
- NOIP2016普及组复赛全国一等奖名单及排名(续表_919~1419名)
- 英语常用单词分类---1
- python在条件表达式中不允许使用_在条件表达式中不允许使用赋值运算符 = ,会提示语法错误。...
- IPS(入侵防御系统)技术
- 腐蚀rust服务器命令_服务器指令_腐蚀RUST基本指令及服务器指令大全_3DM单机
- PHP本地文件包含漏洞环境搭建与利用
- word设置背景色为护眼的绿色
- 图层蒙版和图层剪贴路径_PS蒙版使用教程、快速蒙版、剪切蒙版、矢量蒙版、图层蒙版要点...