【Docker推荐】metube 视频下载

【Docker推荐】metube 视频下载
zephyryoutube-dl 的 Web GUI(使用yt-dlp fork)具有播放列表支持。允许您从 YouTube 和许多其他网站下载视频。
写在开头
meTube
是一个开源的在线视频平台,旨在为用户提供一个简洁、快速、安全的 YouTube 视频下载和播放体验。
Github项目地址 –> 链接直达
Docker 安装
使用Docker安装
1 | docker run -d -p 8081:8081 -v /path/to/downloads:/downloads ghcr.io/alexta69/metube |
使用Docker compose安装
1 | services: |
主要环境变量
环境变量 | 描述 | 默认值 |
---|---|---|
UID |
运行 meTube 的用户 ID |
1000 |
GID |
运行 meTube 的组 ID |
1000 |
UMASK |
meTube 使用的 umask 值 |
022 |
DEFAULT_THEME |
UI 的默认主题(light、dark 或 auto) | auto |
DOWNLOAD_DIR |
视频下载存储路径 | /downloads (Docker 镜像中) |
AUDIO_DOWNLOAD_DIR |
音频文件下载存储路径 | DOWNLOAD_DIR |
DOWNLOAD_DIRS_INDEXABLE |
是否允许下载目录在 Web 服务器上被索引 | false |
CUSTOM_DIRS |
是否启用自定义下载目录 | true |
CREATE_CUSTOM_DIRS |
是否允许自动创建不存在的目录 | true |
STATE_DIR |
队列持久化文件的存储路径 | /downloads/.metube (Docker) |
TEMP_DIR |
中间下载文件的存储路径 | /downloads (Docker 镜像中) |
DELETE_FILE_ON_TRASHCAN |
是否在从 UI 删除已下载文件时删除服务器上的文件 | false |
URL_PREFIX |
Web 服务器的基本路径 | / |
PUBLIC_HOST_URL |
完成文件的下载链接基础 URL | 本地 URL |
HTTPS |
是否启用 HTTPS (需要证书文件和密钥文件) | false |
CERTFILE |
HTTPS 证书文件路径 | 无 |
KEYFILE |
HTTPS 密钥文件路径 | 无 |
PUBLIC_HOST_AUDIO_URL |
音频下载文件的下载链接基础 URL | 本地 URL |
OUTPUT_TEMPLATE |
视频下载文件的文件名模板 | %(title)s.%(ext)s |
OUTPUT_TEMPLATE_CHAPTER |
分章下载文件的文件名模板 | %(title)s - %(section_number)s %(section_title)s.%(ext)s |
OUTPUT_TEMPLATE_PLAYLIST |
播放列表下载文件的文件名模板 | %(playlist_title)s/%(title)s.%(ext)s |
DEFAULT_OPTION_PLAYLIST_STRICT_MODE |
是否默认启用严格播放列表模式 | false |
DEFAULT_OPTION_PLAYLIST_ITEM_LIMIT |
播放列表下载项目的最大数量 | 0(无上限) |
YTDL_OPTIONS |
传递给 youtube-dl 的额外选项,格式为 JSON | 无 |
YTDL_OPTIONS_FILE |
加载的 YTDL_OPTIONS JSON 文件路径 | 无 |
ROBOTS_TXT |
robots.txt 文件路径 |
无 |
## YTDL_OPTIONS && OUTPUT_TEMPLATE
在 meTube
的环境变量配置中,YTDL_OPTIONS
和 OUTPUT_TEMPLATE
是两个非常重要的配置项,分别用于调整 youtube-dl 下载行为和设置文件名的生成规则。
YTDL_OPTIONS
示例
YTDL_OPTIONS
:用于在 meTube
中为 youtube-dl
配置下载选项和后处理步骤,可以包括字幕语言、文件权限、视频格式转换等设置。
1 | environment: |
解释:
- **
writesubtitles: true
**:启用下载视频的字幕。 - **
subtitleslangs: ["en", "-live_chat"]
**:下载英文字幕,并排除 “live_chat”(直播聊天)字幕,-
用于排除特定的字幕。 - **
updatetime: false
**:下载视频时不更新文件的修改时间。 - **
postprocessors
**:定义了下载后的处理步骤:- **
Exec
**:执行一个命令,这里指定了在文件移动后执行chmod 0664
命令来修改文件权限。 - **
FFmpegEmbedSubtitle
**:如果视频已经有字幕,且未嵌入字幕,则使用 FFmpeg 工具将字幕嵌入到视频中。 - **
FFmpegMetadata
**:使用 FFmpeg 工具添加视频的章节信息。
- **
OUTPUT_TEMPLATE
示例
OUTPUT_TEMPLATE
:定义下载的视频文件命名规则,允许用户通过格式化字符串插入视频的元数据(如标题、上传者、日期等)来定制文件名。
1 | environment: |
解释:
- **
%(playlist_title|)
**:如果视频属于一个播放列表,则使用播放列表的标题。如果没有播放列表,则不显示任何内容。|
后面的内容表示默认值。 - **
%(playlist_uploader& by |)
**:如果播放列表有上传者信息,则在上传者名称前加上 “by”。如果没有上传者信息,则什么也不显示。 - **
%(playlist_autonumber& - |)
**:如果视频属于播放列表并有自动编号,则在编号前加上一个连字符 “ - “。 - **
%(uploader,creator|UNKNOWN_AUTHOR)
**:如果有上传者信息,则使用上传者的名字;否则使用 “UNKNOWN_AUTHOR”。 - **
%(title|UNKNOWN_TITLE)
**:如果视频有标题,则使用视频标题;否则使用 “UNKNOWN_TITLE”。 - **
%(release_date>%Y-%m-%d,upload_date>%Y-%m-%d|UNKNOWN_DATE)
**:如果视频有发布日期,则使用该日期(格式为YYYY-MM-DD
)。如果没有发布日期,则使用上传日期。如果两者都没有,则显示 “UNKNOWN_DATE”。 - **
%(ext)s
**:视频的扩展名(如.mp4
或.mkv
)。
最终的文件名可能会是如下格式:
1 | PlaylistName by Uploader - 001 of 10 - Uploader - VideoTitle - 2024-12-01.mp4 |
使用
填写视频网站链接即可开始下载视频到服务器/download
文件夹下
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果