CSDN直播BlOB视频流下载,JAVA实现下载直播视频

简介: CSDN直播BlOB视频流下载,JAVA实现下载直播视频

 在网上找了更多,下载直播视频的博文,发现其办法都太过麻烦,于是我钻研了一下,成功实现用java下载直播视频到本地的办法。

原理:直播视频基本原理,是将视频进行视频切片成多个几秒的小视频,其格式多为.ts文件或着.m2u8文件

下面以CSDN为例子讲解如何下载CSDN网站上的直播视频

image.gif编辑

1.打开直播视频页,按F12进入开发者模式,切换到Network,

image.gif编辑

2.用“m3u8”过滤请求,复制第二请求的 URL地址

image.gif编辑

3.放入代码中(API变量后面)请求,得到的4K、高清、标清、流畅四种视频的请求源

image.gif编辑

4.用上个请求地址(截取到最后一个“/”)拼接你想要下载的分辨率的视频源地址,放入url变量中,code如下

注意:连接有时效性,不能下载的时候,请获取最新的连接

import cn.hutool.http.HttpUtil;
import java.io.FileOutputStream;
import java.io.IOException;
public class BlobVideo {
    //要下载的创建的视频地址
    public  final static String fileSavePath="d:/ts/new.mp4";
    //视频源
    public final static String url="https://video.csdnimg.cn/73c634ff71c1479f96b7fb7b1f9292de/video/f00e7e9b70e8445e81bad8ce322869cd-655657db1aadfdcf51ed91e91162df27-video-fd.m3u8?auth_key=1608615189-bb8508ae73dc4dfaa9e63d6f5e5edab7-0-e559005aad8ec494b10224351977a268";
    public static void main(String[] args) {
        String API="https://video.csdnimg.cn/73c634ff71c1479f96b7fb7b1f9292de/f00e7e9b70e8445e81bad8ce322869cd.m3u8?auth_key=1608622392-407a739bc488462a9c1781fe208e1fb9-0-9625912f0ef91ae3150fb8ac66cbc6b4";
        String result= HttpUtil.get(API);
        System.out.println(result);
        downVideo(url,fileSavePath);
    }
    public static void downVideo(String url,String fileSavePath){
        try {
            String result= HttpUtil.get(url);
            String[] lines= result.split("\n");
            url= url.substring(0,url.indexOf("/video/")+7);
            FileOutputStream fs = new FileOutputStream(fileSavePath);
            for (String line : lines) {
                if(!line.contains("#")){
                    byte [] bytes= HttpUtil.downloadBytes(url+line);
                    fs.write(bytes);
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

image.gif

需要引用的第三方pom依赖

<!-- hutool工具类-->
    <dependency>
      <groupId>cn.hutool</groupId>
      <artifactId>hutool-all</artifactId>
      <version>5.3.6</version>
    </dependency>

image.gif

5.下载结果,可以正常播放

image.gif编辑

未经本人同意,不得转载和用于商业用途!!!

相关文章
|
3天前
|
Java 数据安全/隐私保护
Java ffmpeg 实现视频加文字/图片水印功能
【10月更文挑战第22天】在 Java 中使用 FFmpeg 实现视频加文字或图片水印功能,需先安装 FFmpeg 并添加依赖(如 JavaCV)。通过构建 FFmpeg 命令行参数,使用 `drawtext` 滤镜添加文字水印,或使用 `overlay` 滤镜添加图片水印。示例代码展示了如何使用 JavaCV 实现文字水印。
|
26天前
|
Java
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
49 2
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
|
1月前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的反诈视频宣传系统
基于Java+Springboot+Vue开发的反诈视频宣传系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的反诈视频宣传管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
60 4
基于Java+Springboot+Vue开发的反诈视频宣传系统
|
18天前
|
存储 前端开发 Java
Java后端如何进行文件上传和下载 —— 本地版(文末配绝对能用的源码,超详细,超好用,一看就懂,博主在线解答) 文件如何预览和下载?(超简单教程)
本文详细介绍了在Java后端进行文件上传和下载的实现方法,包括文件上传保存到本地的完整流程、文件下载的代码实现,以及如何处理文件预览、下载大小限制和运行失败的问题,并提供了完整的代码示例。
114 1
|
2月前
|
Java
Java通过HttpClient从外部url下载文件到本地
该Java程序旨在通过URL将外部网络文件(如图片)下载至本地,并解决防盗链问题。首先,它通过`HttpGet`请求获取远程文件,并通过设置`Referer`头防止防盗链。然后,根据响应内容类型确定文件后缀并保存至指定路径。测试表明,程序能够成功下载文件。
331 8
Java通过HttpClient从外部url下载文件到本地
|
1月前
|
存储 缓存 监控
Java——图片文件位于 bin 目录下,下载新图片会导致应用程序重启
【9月更文挑战第22天】在Java应用中,若图片位于bin目录下且下载新图片导致应用重启,可能是因为部署方式不当或资源监控机制过于敏感。解决方法包括:更改图片存储位置至独立目录;配置应用服务器减少资源监控敏感度;使用独立资源服务器托管静态资源;优化代码减少资源重复加载。具体方案需根据应用实际情况和技术栈调整。
|
1月前
|
JSON 前端开发 JavaScript
java中post请求调用下载文件接口浏览器未弹窗而是返回一堆json,为啥
客户端调接口需要返回另存为弹窗,下载文件,但是遇到的问题是接口调用成功且不报错,浏览器F12查看居然返回一堆json,而没有另存为弹窗; > 正确的效果应该是:接口调用成功且浏览器F12不返回任何json,而是弹窗另存为窗口,直接保存文件即可。
78 2
|
15天前
|
Java
java 文件上传和下载
java 文件上传和下载
15 0
|
4天前
|
安全 Java UED
Java中的多线程编程:从基础到实践
本文深入探讨了Java中的多线程编程,包括线程的创建、生命周期管理以及同步机制。通过实例展示了如何使用Thread类和Runnable接口来创建线程,讨论了线程安全问题及解决策略,如使用synchronized关键字和ReentrantLock类。文章还涵盖了线程间通信的方式,包括wait()、notify()和notifyAll()方法,以及如何避免死锁。此外,还介绍了高级并发工具如CountDownLatch和CyclicBarrier的使用方法。通过综合运用这些技术,可以有效提高多线程程序的性能和可靠性。
|
4天前
|
缓存 Java UED
Java中的多线程编程:从基础到实践
【10月更文挑战第13天】 Java作为一门跨平台的编程语言,其强大的多线程能力一直是其核心优势之一。本文将从最基础的概念讲起,逐步深入探讨Java多线程的实现方式及其应用场景,通过实例讲解帮助读者更好地理解和应用这一技术。
21 3