1.2.2 • Published 10 months ago

@lzwme/m3u8-dl v1.2.2

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

@lzwme/m3u8-dl

@lzwme/m3u8-dl

NPM version node version license MIT

build status npm download GitHub issues GitHub forks GitHub stars

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

npm.io

功能特性(Features)

  • 多线程下载。线程池模式的多线程下载。
  • 边下边播模式。支持使用已下载的 ts 缓存文件在线播放。
  • 支持指定多个 m3u8 地址批量下载。
  • 支持缓存续传。下载失败会保留缓存,重试时只下载失败的片段。
  • 支持常见的 AES 加密视频流解密。
  • 自动转换为 mp4。需全局安装 ffmpeg
  • 支持指定采集站标准 API,以命令行交互的方式搜索和下载。
  • [NEW!] 新增下载中心,支持启动为 webui 服务方式进行下载管理。
  • [NEW!] 新增支持抖音、微博视频分享地址解析及无水印下载。

安装(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。本工具仅用作技术研究学习,不提供任何具体资源类信息。

命令行方式启动 webui

# 安装 server 需要的依赖
npm i -g express ws
# 启动 server
m3u8dl server -p 6600

然后浏览器访问: http://localhost:6600

npm.io

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);
}

基于 Docker 部署

基于 docker 命令:

# docker pull ghcr.io/lzwme/m3u8-dl:latest
docker pull renxia/m3u8dl-dl:latest

docker run --rm -it \
  -v ./cache:/app/cache \
  -v ./downloads:/app/downloads \
  -p 6600:6600 \
  renxia/m3u8dl-dl:latest

也可以基于 docker-compose.yml 部署:

services:
  web:
    image: renxia/m3u8-dl:latest
    volumes:
      - ./downloads:/app/downloads
      - ./cache:/app/cache
    ports:
      - '6600:6600'
    environment:
      DS_PORT: '6600'
      DS_SAVE_DIR: '/app/downloads'
      DS_CACHE_DIR: '/app/cache'
      DS_SECRET: '' # 设置访问密码
      DS_DEBUG: ''
    # command: >
    #   sh -c "node cjs/server/index.js"
    restart: unless-stopped

部署成功后,浏览器访问 http://dockerip:6600 即可。

注: docker 部署模式同时包含了 AriaNg 静态资源。

开发(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.

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

1.2.0

11 months ago

1.1.1

11 months ago

1.1.0

11 months ago

1.0.0

11 months ago

0.0.10

11 months ago

1.2.2

10 months ago

1.1.3

11 months ago

1.2.1

10 months ago

1.1.2

11 months ago

0.0.9

2 years ago

0.0.8

2 years ago

0.0.7

2 years ago

0.0.5

3 years ago

0.0.6

3 years ago

0.0.3

3 years ago

0.0.4

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago