下载网页中blob格式视频的方法
之所以称这类视频为blob格式的格式,是因为视频在一个 <video>
标签中,类似于这样:
<video preload="preload" autoplay="autoplay" src="blob:https://player.bilibili.com/afa68414-faa3-496f-a560-94b2ac1d5928" style="width: 100%; height: 100%;"></video>
话不多说,有2种方法。
1 linux中youtube-dl
命令下载
首先我参考了这篇文章:https://blog.csdn.net/weixin_42875245/article/details/109097082
其中,其他方法都无效,就 youtube-dl
这个方法有效。github地址:https://github.com/ytdl-org/youtube-dl/blob/master/README.md#readme
但是其中也有一个坑,我填平了。
下载方法:
# 下载该文件即可使用,不用安装 sudo wget -c https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl # 给下载下来的youtube-dl 文件 追加 读和执行的权限 sudo chmod a+rx /usr/local/bin/youtube-dl # 真正的下载一个blob格式视频 # (注意:下面的链接是我随便写的例子,无法使用,只是一个这种类型链接的格式,大家一定要在网页源代码中找到这种格式的链接) youtube-dl -o fileName1 https://www.bilibili.com/20211019/adsfjsdf/test.m3u8 # -o参数自定义下载的文件名称 # 此时有一个坑,报错内容为:ERROR: m3u8 download detected but ffmpeg or avconv could not be found. Please install one. # 需要安装 ffmpeg 或 avconv,安装命令如下: sudo apt-get install -y ffmpeg # 之后继续执行youtube-dl命令即可成功下载
优点:使用相对简单,谁都能会用。
缺点:1 需要在linux命令行环境下使用(windows的git-bash应该也可以安装该命令使用,不过我没试过,我的电脑直接就是Ubuntu系统);2 下载速度比较慢;3 中途可能会断开,然后就会卡住,然后需要重新下载。
2 使用java代码
-- 2022-03-19
打开视频所在网页,按 F12 打开 开发人员工具,然后打开“网络”选项卡,找到 .m3u8
请求(一般是 index.m3u8
),然后复制其链接地址:
复制出来的链接地址示例如下:https://ukzy.ukubf3.com/20220207/eGqwvbNY/index.m3u8
然后把这个链接地址放到下面的Java类中(具体放在哪里,你一看代码就知道了):
https://gitee.com/mediocrep/javaUtils/blob/master/src/main/java/com/util/m3u8/main/M3u8Main.java
然后就直接运行main方法即可下载。
这种方法的下载速度只要1分钟左右,比第一种方法快了十几20倍,如果会Java的小伙伴们强烈建议用第二种方法,不会的话就用第一种方法。
我打算再优化下这个代码,使他能够循环遍历多个网页的内容,自动寻找网页中的 .m3u8链接,然后下载。优化好了会在这里更新。
注:我的代码也不是自己写的,是参考这个链接:https://blog.csdn.net/qq494257084/article/details/103551293 。 在这个链接的代码的基础上做了优化。
-- 20220320
代码已经优化,从 单次下载m3u8视频 优化为 一次下载多个m3u8视频。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理