/m3u8-dl

Batch download of m3u8 files

Primary LanguageTypeScriptMIT LicenseMIT

@lzwme/m3u8-dl

@lzwme/m3u8-dl

NPM version node version license MIT

build status npm download GitHub issues GitHub forks GitHub stars

一个 m3u8 文件视频批量下载工具。

功能特性(Features)

  • 多线程下载。线程池模式的多线程下载。
  • 边下边播模式。支持使用已下载的 ts 缓存文件在线播放。
  • 支持指定多个 m3u8 地址批量下载。
  • 支持缓存续传。下载失败会保留缓存,重试时只下载失败的片段。
  • 支持常见的 AES 加密视频流解密。
  • 自动转换为 mp4。需全局安装 ffmpeg
  • [NEW!]支持指定采集站标准 API,以命令行交互的方式搜索和下载。

安装(Install)

npm i -g @lzwme/m3u8-dl
m3u8dl -h

或者使用 npx

npx @lzwme/m3u8-dl -h

Useage

提示:如需要下载并转换为 mp4 视频格式,您需全局安装 ffmpeg

命令行方式(Command Line Interface)

m3u8dl --help

下载指定 URL 的 m3u8 文件:

m3u8dl https://lzw.me/x/m3u8-player/test.m3u8

批量下载示例一:

# 下载多个文件:
m3u8dl "第1集|https://s.xlzys.com/play/zbqMZYRb/index.m3u8" "第2集|https://s.xlzys.com/play/PdyJXrwe/index.m3u8" --filename "三体"

批量下载示例二:

新建文件 三体.txt,内容格式:

第1集$https://s.xlzys.com/play/zbqMZYRb/index.m3u8
第2集$https://s.xlzys.com/play/PdyJXrwe/index.m3u8
第3集$https://s.xlzys.com/play/oeE6x9Ka/index.m3u8

然后执行如下命令:

m3u8dl 三体.txt

提示:可创建并指定多个 txt 文件实现对多个影视剧集的一键批量下载。

指定采集站 API 搜索并下载

m3u8dl search -h

# 指定采集站 API url 地址(会缓存),然后按提示操作
m3u8dl s -u https://jyzyapi.com/provide/vod/

声明: 以上仅作示例,请自行搜索查找可用的采集站 API。本工具仅用作技术研究学习,不提供任何具体资源类信息。

API 调用

import { m3u8Download } from '@lzwme/m3u8-dl';

// 示例:单文件下载
m3u8Download('test/t.m3u8', { debug: true, filenmae: '测试视频' });

// 示例:批量下载
const fileList = ['第一集$$test/t.m3u8'];
for (const filepath of fileList) {
  const r = await m3u8Download(filepath, { debug: true, filenmae: '测试视频' });
  console.log('文件已下载:', r.filepath);
}

开发(Development)

本地二次开发:

git clone git@github.com:lzwme/m3u8-dl.git
pnpm install
pnpm dev
# npm link

或者 fork 本项目进行代码贡献。

欢迎贡献想法与代码。

References

License

@lzwme/m3u8-dl is released under the MIT license.

该插件由志文工作室开发和维护。