DDM3U8 是一个轻量的 Web M3U8 下载工具,基于 Flask 和 N_m3u8DL-RE。它提供网页任务管理、下载目录浏览、本地合并、任务状态轮询和基础鉴权,适合部署在 NAS 或家庭服务器上长期运行。
当前镜像路线:
- 基础镜像:
python:3.11-alpine - 合并工具:
ffmpeg - 支持架构:
linux/amd64、linux/arm64、linux/armv7l
| 架构 | 镜像标签 | 下载核心 |
|---|---|---|
| amd64 / arm64 | latest |
N_m3u8DL-RE |
| armv7l | armv7l |
yt-dlp |
- Web 页面提交 M3U8 下载任务
- 支持 Basic Auth 访问保护
- 支持并发下载数量限制
- 下载任务状态自动刷新
- 支持
/downloads保存视频 - 本地缓存合并工具
- 容器重启后自动恢复任务
docker pull ghcr.io/pelico/ddm3u8:latest
# 国内镜像加速
docker pull ghcr.nju.edu.cn/pelico/ddm3u8:latestdocker run -d \
--name ddm3u8 \
-p 8080:8080 \
-v ./downloads:/downloads \
-e TZ=Asia/Shanghai \
-e WEB_USER=admin \
-e WEB_PASS=admin \
--restart unless-stopped \
ghcr.io/pelico/ddm3u8:latestdocker pull ghcr.io/pelico/ddm3u8:armv7l
# 国内镜像加速
docker pull ghcr.nju.edu.cn/pelico/ddm3u8:armv7ldocker run -d \
--name ddm3u8 \
-p 8080:8080 \
-v ./downloads:/downloads \
-e TZ=Asia/Shanghai \
-e MAX_DOWNLOADS=2 \
-e WEB_USER=admin \
-e WEB_PASS=admin \
--restart unless-stopped \
ghcr.io/pelico/ddm3u8:armv7larmv7l 版本说明:使用 yt-dlp 替代 N_m3u8DL-RE 作为下载核心,功能与主版本一致。建议将
MAX_DOWNLOADS设为 2 以适应 arm 设备性能。
浏览器访问:
http://你的服务器IP:8080/
如果设置了 WEB_USER 和 WEB_PASS,浏览器会弹出登录框。
查看日志:
docker logs -f ddm3u8| 变量 | 默认值 | 说明 |
|---|---|---|
PORT |
8080 |
Web 服务监听端口 |
MAX_DOWNLOADS |
2 |
最大并发下载数 |
TZ |
Asia/Shanghai |
容器时区 |
WEB_USER |
空 | Web 登录用户名,留空则不启用鉴权 |
WEB_PASS |
空 | Web 登录密码,留空则不启用鉴权 |
PUID |
0 |
容器内运行用户 UID |
PGID |
0 |
容器内运行用户 GID |
群晖上如果遇到下载目录权限问题,可以设置 PUID 和 PGID 为宿主机对应用户的 ID。
基础健康检查:
curl -u admin:admin http://localhost:8080/health服务就绪检查:
curl -u admin:admin http://localhost:8080/ready/ready 会返回 ffmpeg、下载核心(N_m3u8DL-RE 或 yt-dlp)、下载目录、任务记录加载状态。
vendor/里的两个压缩包必须上传到 GitHub,否则 GitHub Actions 构建会失败。entrypoint.sh必须保持 Linux LF 换行;Dockerfile 已在构建时自动去除 CRLF。- Flask 当前使用内置开发服务器,适合个人 NAS 和内网环境使用。
- 不建议暴露到公网;如果必须公网访问,请放在反向代理后面并启用 HTTPS。