M3U8 是Unicode版本的 M3U,用UTF-8编码。“M3U” 和 “M3U8” 文件都是苹果公司使用的HTTP Live Streaming(HLS) 协议格式的基础,这种协议格式可以在 iPhone 和Macbook等设备播放。
ffmpeg下载m3u8文件
比较原始的下载方式
# 普通下载
ffmpeg -i https://xxx.com/test.m3u8 -c copy save.mp4
# 加速下载
ffmpeg -i https://xxx/xx.m3u8 -c copy -bsf:a aac_adtstoasc out.mp4
m3u8Downloader
Chrome浏览器的m3u8Downloader插件也可以下载。
N_m3u8DL-CLI
N_m3u8DL-CLI是一款用于下载m3u8的命令行工具,基于.NET Framework 4.6框架开发,调用系统类库进行HTTP下载,支持常见的m3u8格式下载,支持从视频中选择一部分下载,还提供丰富的命令行选项以增强其功能。
N_m3u8DL-CLI "http://xx/小猪佩奇第一集.m3u8" --saveName "小猪佩奇第一集"
M3U8批量下载器
● 使用Aria2作为下载引擎,避免网络波动导致下载卡死
● 允许插件接管部分步骤,以兼容不同加密的处理
● 提供丰富的选项以供自定义
● 针对本地缓存优化,可快速合并浏览器缓存
Python调用
import requests
import base64
def posttom3u8(key, title, url):
data = '#KEY,{0}\r\n{1},{2}'.format(key, title, url) if key else '{0},{1}'.format(title, url)
try:
response = requests.post('http://127.0.0.1:8787/', data={"data": base64.b64encode(data.encode('GBK')).decode()}).json()
print('推送成功') if response['message'] == 'success' else print('推送失败')
except:
print('推送失败')
参考
https://nilaoda.github.io/N_m3u8DL-CLI/https://www.52pojie.cn/thread-1631141-1-1.html