【技术交流】m3u8、ts 相关视频下载入门教程

因为专业的原因,我会经常在网上观看一些讲座、论坛、会议。也发了不少帖子询问怎样下载这些视频。也积累了一些经验,算是一个入门的教程,分享给大家。
大家都知道,IDM 可以在网页上截获并下载视频,就是这个按钮:
image
这些视频都是没有经过加密的,包括YouTube、Vimeo等还可以选择视频画质甚至字幕:
image
对于大多数网站,采用的是直链MP4,里面的文件是可以直接下载成MP4。
有些是提供的是m3u8文件,m3u8是一种文件格式,相当于文件列表,里面包含了大量ts视频文件,这些ts文件被下载下来后,可以组成一个大的ts文件,这就是我们所要的视频,也是我们今天要讨论的主要内容。

对于一般的视频,IDM完全可以轻松解决:
image
选择最上面的那个时间最长的即可。
下载下来的文件是这样的:

对于这个视频的下载,你最想要的结果是:下载成MP4。其实ts文件也可以播放,但是在播放到时候会出现卡顿的情况,所以MP4是最好的选择。
这个时候,你需要一个转换神器:魔力玄(Medlexo)


它会直接把ts文件,无损转换成MP4,小文件几乎是瞬间完成,大文件大概几分钟。
但是总有一些网站,会采用各种加密手段防治视频被下载。
这个时候,你需要一个下载神器:N_m3u8DL-CLI

只要找到并输入m3u8文件地址,就可以直接下载成MP4文件。
当然,这得是m3u8文件里面的key是可以访问的情况下,才能下载,否则,你就需要自己去网站上下载key文件,并拖入到上述软件的的【自定义KEY】输入框。
具体怎样获取key,就有些超出我的能力了,大家可以多发帖问问论坛里的大佬们。

1 个赞

@Qingwa 不要把这个推到网站上哦,我怕到时候会有人找我麻烦。

哪个?Medlexo?

我说的是这个教程,软件什么的人家巴不得你传播呢。
image

这能有啥麻烦…

你之前推的那个手搓大佬,我就怕会给他带来麻烦。
毕竟这是一个非常规操作,涉及到版权以及网络安全什么的。

:joy:

这个怎么说…手搓大佬之所以能成为大佬是有原因的。

我下载一般用浏览器扩展 猫抓

这个扩展已经被谷歌商店下架了.

下架原因 “协助用户擅自访问或下载受版权保护的内容或媒体。”

github上开源,可以自己开发者模式加载.

1 个赞

这东西能整块下载ts文件吗?我看到的都是ts片段。
试试这个链接

vlc播放器可以直接打开这些地址播放、保持本地吧

用这个软件下载,简洁明了。

???直接ffmpeg 一个命令就完事了,也不是什么难的问题啊,简单的命令没有必要找一个套壳软件

ffmpeg -i input.ts -c copy out.mp4

而且想要什么格式都行:

# 转换为mkv
ffmpeg -i input.ts -c copy out.mkv

小课堂:
-i 后为输入的文件
-c copy 意为编码不做修改
输出的文件封装格式会根据输出文件名的后缀自动决定

浏览器用的猫抓,有时候获取不到正确的m3u8地址就用的Alook,只要能播放就可以下载,然后在下载框里复制地址就可以

???
我直接拖进去1秒不到就能解决的事,为什么一定要花时间手敲代码?

ffmpeg -i m3u8_url -c copy new.mp4

直接搞定没加密的m3u8,不过下载速度偏慢,不如其他下载工具

一个bat脚本上去也是一秒不到,我真不觉得这种东西能称为”神器“

@echo off
SETLOCAL ENABLEEXTENSIONS
CHCP 65001
set /p in_ext="输入需要转换的后缀名"
set /p out_ext="输入转换后的后缀名"

:loop
set ATTR=%~a1
set DIRATTR=%ATTR:~0,1%
if /I "%DIRATTR%"=="d" (
	goto folder
) else (
	goto file
)
:back
shift
if not "%~1"=="" goto loop
pause
exit

:folder
cd /D "%1"
for %%f in ("*.%in_ext%") do (
	ffmpeg -y -i "%%f" -c copy "%%~nf.%out_ext%"
)
goto back

:file
cd /D "%~dp1"
ffmpeg -y -i "%%1" -c copy "%%~n1.%out_ext%"
goto back
1 个赞

ffmpeg能自动用key解密,
只是单线程,而且卡住后不会自动重新下载、断点再续(这个很难接受)

我一般用自己写的脚本,用wget下载ts文件并且合并,再用ffmpeg转码,比用ffmpeg下载快得多

100多M。。。。。解压出来300M
js也太狠了一点

Alook是指浏览器?但它不是手机端的么?