# m3u8-dl **Repository Path**: htqs_admin/m3u8-dl ## Basic Information - **Project Name**: m3u8-dl - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-02 - **Last Updated**: 2026-04-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [![@lzwme/m3u8-dl](https://nodei.co/npm/@lzwme/m3u8-dl.png)][npm-url] # @lzwme/m3u8-dl [![NPM version][npm-badge]][npm-url] [![node version][node-badge]][node-url] ![license MIT](https://img.shields.io/github/license/lzwme/m3u8-dl) [![build status](https://github.com/lzwme/m3u8-dl/actions/workflows/node-ci.yml/badge.svg)](https://github.com/lzwme/m3u8-dl/actions/workflows/node-ci.yml) [![npm download][download-badge]][download-url] [![GitHub issues][issues-badge]][issues-url] [![GitHub forks][forks-badge]][forks-url] [![GitHub stars][stars-badge]][stars-url] > **语言**: [English](README.md) | [中文简体](README.zh-CN.md) 一个免费开源功能强大的 m3u8 视频批量下载工具,支持多线程下载、边下边播、WebUI 管理、视频解析等多种功能。支持 CLI命令行、浏览器、PC客户端、Docker 部署以及 Node.js API 调用等多种使用方式。 ## ✨ 功能特性 ### 🚀 核心下载功能 - **多线程下载**:采用线程池模式,支持自定义线程数,大幅提升下载速度 - **边下边播模式**:支持使用已下载的 ts 缓存文件在线播放,无需等待完整下载 - **批量下载**:支持指定多个 m3u8 地址批量下载,支持文本文件批量导入 - **缓存续传**:下载失败会保留缓存,重试时只下载失败的片段,节省带宽和时间 - **AES 加密支持**:自动识别并解密常见的 AES-128 加密视频流 - **格式转换**:自动将下载的 ts 片段合并转换为 mp4 格式(需安装 [ffmpeg](https://ffmpeg.org/download.html)) - **多格式支持**:支持下载 mp4、mkv 等格式的视频文件 - **片段过滤**:支持忽略指定时间段的视频片段(如跳过片头片尾) ### 🌐 WebUI 下载管理 - **现代化界面**:基于 Vue 3 + TypeScript 构建的现代化 Web 界面 - **实时进度**:通过 WebSocket 实时显示下载进度和状态 - **任务管理**:支持暂停、恢复、删除下载任务,支持批量操作 - **下载中心**:集中管理所有下载任务,支持搜索和筛选 - **配置管理**:可视化配置下载参数(线程数、保存目录等) - **访问控制**:支持设置访问密码(token)保护服务 ![](examples/img/m3u8dl-webui-new.jpg) ### 🎬 视频解析功能 - **多平台支持**:支持抖音、微博、皮皮虾等平台的视频分享链接解析 - **无水印下载**:自动提取无水印视频地址并下载 - **智能识别**:自动识别视频平台并选择合适的解析器 ### 🔍 m3u8 地址智能提取功能 - **网页提取**:支持从视频播放页面自动提取 m3u8 地址 - **深度搜索**:支持多层级页面搜索,自动发现视频链接 - **批量提取**:一次提取多个视频链接,支持批量下载 ![](./examples/img/m3u8dl-web-browser.jpg) ### 🎯 浏览器油猴脚本抓取器 - **自动抓取**:自动拦截和抓取网页中的 m3u8 和 mp4 视频链接 - **实时监控**:监控网络请求(XMLHttpRequest、fetch、Performance API),自动发现视频链接 - **智能识别**:自动识别视频类型(M3U8/MP4),并提取视频名称 - **一键跳转**:支持一键跳转到 M3U8-DL WebUI 进行下载 - **灵活配置**:支持配置排除网址规则,避免在特定页面抓取 - **拖拽面板**:支持拖拽移动面板位置,自动保存位置 - **链接管理**:支持复制链接、清空列表等操作 > 这是一个 Violentmonkey/Tampermonkey/Greasemonkey 用户脚本,可在浏览器中自动抓取视频链接,配合 M3U8-DL WebUI 使用,实现无缝下载体验。 ### 📺 视频搜索功能 - **采集站支持**:支持标准采集站 API,通过命令行交互搜索和下载 - **缓存机制**:自动缓存搜索历史,支持继续未完成的下载 ![](./examples/img/m3u8dl-search-demo.png) ### ▶️ 视频播放 - **内置播放器**:WebUI、桌面客户端均内置轻量级视频播放器,可直接在线播放已下载的或下载中的视频,无需等待全部完成。 - **边下边播**:支持 ts 缓存片段自动拼接,边下载边可播放,实现“即下即看”体验。 - **多格式支持**:播放器支持 mp4、ts 等主流视频格式播放,并可拖动、倍速、全屏、画中画等操作。 - **历史记录**:自动记录播放进度,可断点续播,方便长视频追剧。 > 无需依赖第三方播放器,即可在浏览器或客户端内直接观看下载内容,提升使用便捷性。 ![](./examples/img/m3u8dl-video-play.jpg) ### 💻 多种使用方式 - **命令行工具**:提供完整的 CLI 命令,支持各种参数配置 - **Node.js API**:提供编程接口,方便集成到其他项目 - **Web 服务**:支持启动为 Web 服务,通过浏览器管理下载 - **Docker 部署**:提供 Docker 镜像,一键部署到服务器 - **Electron 桌面应用**:支持打包为桌面应用,包含内置浏览器功能 ### 🌍 国际化支持 - 支持中文和英文多语言 - 命令行和 WebUI 均支持语言切换 ## 📦 安装 **方式一:使用 Node.js 全局安装** 作为 CLI 命令行工具使用。 ```bash npm i -g @lzwme/m3u8-dl m3u8dl -h ``` 或者使用 `npx` 直接运行: ```bash npx @lzwme/m3u8-dl -h ``` **方式二:桌面应用下载** 安装为电脑客户端使用。使用难度低,适合大多数普通用户,并且有内置浏览器自动提取视频地址的增强功能。可访问如下地址之一下载最新版本: - [https://m3u8-player.lzw.me/download.html](https://m3u8-player.lzw.me/download.html) - [https://github.com/lzwme/m3u8-dl/releases](https://github.com/lzwme/m3u8-dl/releases) ## 📖 使用指南 > **提示**:如需要下载并转换为 `mp4` 视频格式,您需全局安装 [ffmpeg](https://ffmpeg.org/download.html)。 > 或者使用 `--ffmpeg-path` 参数指定 ffmpeg 的路径。 ### 作为 CLI 命令行工具使用 查看所有可用命令和选项: ```bash m3u8dl --help ``` #### 基础下载 ```bash # 下载单个 m3u8 文件 m3u8dl https://example.com/video.m3u8 # 指定文件名和保存目录 m3u8dl https://example.com/video.m3u8 --filename "我的视频" --save-dir "./downloads" # 启用边下边播模式 m3u8dl https://example.com/video.m3u8 --play # 设置线程数(默认 4) m3u8dl https://example.com/video.m3u8 --thread-num 8 # 不转换为 mp4(仅下载 ts 片段) m3u8dl https://example.com/video.m3u8 --no-convert # 忽略指定时间片段(如跳过前 30 秒和最后 60 秒) m3u8dl https://example.com/video.m3u8 --ignore-segments "0-30,END-60" ``` #### 批量下载 **方式一:命令行参数** ```bash # 下载多个文件,使用 | 分隔文件名和 URL m3u8dl "第1集|https://example.com/ep1.m3u8" "第2集|https://example.com/ep2.m3u8" --filename "剧集名称" ``` **方式二:文本文件批量导入** 创建 `剧集列表.txt` 文件,格式如下(使用 `$` 分隔文件名和 URL): ```txt 第1集$https://example.com/ep1.m3u8 第2集$https://example.com/ep2.m3u8 第3集$https://example.com/ep3.m3u8 ``` 然后执行: ```bash m3u8dl 剧集列表.txt --filename "剧集名称" ``` #### 视频解析下载 支持抖音、微博等平台的分享链接: ```bash # 抖音视频分享链接 m3u8dl "https://v.douyin.com/xxxxx/" --type parser # 微博视频分享链接 m3u8dl "https://weibo.com/xxxxx" --type parser ``` #### 从网页提取 m3u8 地址 ```bash # 从视频播放页面自动提取 m3u8 地址并下载 m3u8dl "https://example.com/play/12345" --type web ``` #### 视频搜索下载 ```bash # 查看搜索命令帮助 m3u8dl search --help # 指定采集站 API 并搜索下载(会缓存 API 地址) m3u8dl search -u https://api.example.com/provide/vod/ # 直接搜索关键词 m3u8dl search "关键词" -u https://api.example.com/provide/vod/ ``` > **声明**:以上仅作示例,请自行搜索查找可用的采集站 API。本工具仅用作技术研究学习,不提供任何具体资源类信息。 #### 常用命令行选项 | 选项 | 说明 | |------|------| | `-f, --filename ` | 指定文件名 | | `-n, --thread-num ` | 设置下载线程数(默认 4) | | `-p, --play` | 启用边下边播模式 | | `-C, --cache-dir ` | 指定缓存目录 | | `-S, --save-dir ` | 指定保存目录 | | `--no-convert` | 不转换为 mp4 | | `--no-del-cache` | 下载完成后不删除缓存 | | `--ffmpeg-path ` | 指定 ffmpeg 路径 | | `-H, --headers ` | 设置请求头(JSON 格式) | | `-I, --ignore-segments