推荐一个下载流式媒体的开源库

在浏览器中用F12打开调试,找到网络一页,刷新页面,找到.M3U8的请求,并找到相关的引用项,比如

罗小黑战记2:https://www.66ss.org/e/DownSys/play/?classid=20&id=27261&pathid1=0&bf=0

里面的选项就是:

python 复制代码
M3U8_URL = "https://vip.dytt-cine.com/20251024/59985_d292974a/3000k/hls/mixed.m3u8"
OUTPUT = "output.mp4"

HEADERS = {
    "User-Agent": "Mozilla/5.0",
    # 如果你的合法资源需要 Referer / Cookie,可加
    "Referer": "https://vip.dytt-cine.com/share/d292974a12895cb3f54966cfc83576a8",
    # "Cookie": "session=xxxx",
}

如果使用ffmpeg下载,代码如下:

python 复制代码
import subprocess

M3U8_URL = "https://vip.dytt-cine.com/20251024/59985_d292974a/3000k/hls/mixed.m3u8"
OUTPUT = "output.mp4"

HEADERS = {
    "User-Agent": "Mozilla/5.0",
    # 如果你的合法资源需要 Referer / Cookie,可加
    "Referer": "https://vip.dytt-cine.com/share/d292974a12895cb3f54966cfc83576a8",
    # "Cookie": "session=xxxx",
}

def build_header_args(headers: dict):
    # ffmpeg 需要把 header 拼成字符串
    header_str = ""
    for k, v in headers.items():
        header_str += f"{k}: {v}\r\n"
    return header_str

cmd = [
    "ffmpeg",
    "-y",
    "-headers", build_header_args(HEADERS),
    "-i", M3U8_URL,
    "-c", "copy",
    "-bsf:a", "aac_adtstoasc",
    OUTPUT,
]

print("Running ffmpeg...")
subprocess.run(cmd, check=True)
print("Done:", OUTPUT)

但是这个东西实在是太慢了,

目前有开源的项目直接做了这个:

https://github.com/nilaoda/N_m3u8DL-RE

主页有详细的参数说明,那么一个命令行执行就可以了:

bash 复制代码
./N_m3u8DL-RE "https://vip.dytt-cine.com/20251024/59985_d292974a/3000k/hls/mixed.m3u8" --thread-count 6 --auto-select --binary-merge --save-name output --header "User-Agent:Mozilla/5.0" --header "Referer:https://vip.dytt-cine.com/share/d292974a12895cb3f54966cfc83576a8"

速度比ffmpeg快,而且输出更加清晰。

相关推荐
可乐鸡翅yeah_6 小时前
HLS 自动化拨测与手动调试分工,流媒体线上监控体系建设实践
运维·自动化·测试用例·音视频·媒体·m3u8·音视频在线播放
网络研究院1 天前
告别野蛮生长!苹果 Apple Music 重拳监管 AI 音乐
人工智能·媒体·音乐·标注·歌曲·执行·监管
小五兄弟1 天前
AI仿真人剧出海创收指南
经验分享·音视频·媒体
广州硅基技术官方2 天前
AIGK外贸工厂社媒引流实战教程:海外自媒体短视频AI矩阵获客玩法解析
人工智能·音视频·媒体
回眸&啤酒鸭4 天前
【回眸】沙盘营销方案
媒体
熊猫钓鱼>_>4 天前
MiniMax 深度观察:不是又一个大模型,是AI生产效率的范式革新
人工智能·ai·自然语言处理·媒体·benchmark·minimax·行业
AI人工智能集结号5 天前
中英文实体一致性:官网、媒体和产品页面中的跨语言关系越清楚,越容易正确归一
人工智能·媒体
刘广睿6 天前
断点续传与分片下载是怎么实现的?Range 请求在视频下载中的工程实践
okhttp·ffmpeg·音视频·下载·python3.11
天天进步20157 天前
Pixelle-Video 源码解析 #14:直连 API 媒体模型:OpenAI、Wan、Kling、Seedance 如何接入?
人工智能·媒体
Afans_fire7 天前
全媒体广告投放中关于“流量归因”与“边际效应递减”的几点思考
媒体