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

1,706 阅读2分钟

小知识,大挑战!本文正在参与“ 程序员必备小知识 ”创作活动

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

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

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

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

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

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

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();
        }
    }


}

需要引用的第三方pom依赖

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

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

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