# 下载工具
pip install yt-dlp
pip install browser-cookie3 pycryptodomex
# 检查安装
yt-dlp --version

javascript
打开 https://www.gyan.dev/ffmpeg/builds/
下载 ffmpeg-release-essentials.zip
解压,把里面的 bin\ffmpeg.exe 所在目录(如 C:\ffmpeg\bin)加入系统 PATH
重启 CMD / IDE
验证:ffmpeg -version

配置环境变量

检擦安装

建议优化改成批量下载,使用线程程
java
package com.ldj.springboot.importbean.utils;
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
/**
* User: ldj
* Date: 2026/1/24
* Time: 11:32
* Description: No Description
*/
public class BilibiliDownloader {
public static void main(String[] args) {
// 视频链接
String videoUrl = "https://www.bilibili.com/video/BV1SS421K7yX?spm_id_from=333.788.recommend_more_video.0&trackid=web_related_0.router-related-2206146-rj2c7.1769236186300.334&vd_source=fe0294a30f1e450793d2ae5e66c7975b";
// cookie文件
String cookiesPath = "src/main/resources/cookie/cookies.txt";
// 下载目录
String outputDir = "src/main/resources/video";
// 文件名格式
String outputFileName = "%(title)s.%(ext)s";
/**
* 先安装 pip install yt-dlp
* 使用yt-dlp 工具下载
* -o: 输出路径
* -f 选择分辨率(会自动合并音视频)
* --merge-output-format mp4: 合并后的格式
* --no-overwrites: 不覆盖已有文件
* 分片失败无限重试
* 同时下载 8 个分片(默认是 1)
*/
ProcessBuilder pb = new ProcessBuilder(
"yt-dlp",
"--cookies", cookiesPath,
"-o", outputDir + File.separator + outputFileName,
"-f", "30080+30280/30064+30280/b",
"--merge-output-format", "mp4",
"--no-overwrites",
"--fragment-retries", "infinite",
"--concurrent-fragments", "8",
videoUrl
);
// 设置工作目录
pb.directory(new File("."));
try {
System.out.println("开始下载任务...");
System.out.println("执行命令: " + String.join(" ", pb.command()));
// 启动进程
Process process = pb.start();
// 读取命令行输出(用于实时显示下载进度)
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
// 等待进程结束并获取结果
int exitCode = process.waitFor();
System.out.println("\n任务结束!状态码: " + outputDir);
} catch (Exception e) {
e.printStackTrace();
}
}
}