YouTube视频和音频分离,使得用一键命令安装youtube-dl的同时,还要安装FFmpeg等工具来合并视频,本博客之前记录过一篇使用教程(传送门)。现在似乎有个更方法的安装方法,使用Docker。

当然了,仁者见仁,Docker的使用还是有所限制,至少OpenVZ平台安装Docker似乎很是麻烦;再者,虽然不安装FFmpeg,但是还是要安装Docker,当然对于我来说,Linux下,Docker是必备。本篇博客只做笔记。

安装 Docker

Docker一键安装命令(不适用于OpenVZ架构的VPS):

curl -sSL https://get.docker.com/ | sh

CentOS下还需要:

# 启动 Docker
systemctl start docker.service

# 设置开机自启动
systemctl enable docker.service

设置 alias 指令别名

alias yt='docker run --rm -u $(id -u):$(id -g) -v $PWD:/data vimagick/youtube-dl'

如需alias指令别名常驻系统,需编辑~/.bashrc

使用youtube-dl

以YouTube站点为例:

# 列出所有格式
yt -F nVjsGKrE6E8

# 下载视频
yt nVjsGKrE6E8
yt -f 137+140 nVjsGKrE6E8

# 下载视频列表
yt PLpOa-OrneXm1UHzqY99-PTO7seznpCFho
yt -f 137+140 PLpOa-OrneXm1UHzqY99-PTO7seznpCFho
yt -f 137+140 -o '%(title)s.%(ext)s' PLpOa-OrneXm1UHzqY99-PTO7seznpCFho

youtube-dl的使用命令是:youtube-dl [OPTIONS] URL [URL...]
而基于Docker使用youtube-dl的命令是:yt [OPTIONS] URL [URL...]
如你所见,仅需替换命令中的youtube-dlyt,其他与使用youtube-dl基本无异。

更多使用教程参阅官方文档:传送门

补充

首次使用,系统会自动从Docker官方拉取镜像(vimagick/youtube-dl),之后无需;Docker镜像中已包含FFmpeg视频合并工具;其他跟使用youtube-dl无异。

自动合并后的格式:例如137(mp4视频) + 140(m4a音频) = mp4;再例如137(mp4视频) + 251(webm音频) = mkv。

额外再记录下vimagick/youtube-dl镜像(GitHub)的Dockerfile:

FROM alpine
MAINTAINER kev <noreply@easypi.pro>

RUN set -xe \
    && apk add --no-cache ca-certificates \
                          ffmpeg \
                          openssl \
                          python3 \
    && pip3 install youtube-dl

WORKDIR /data

ENTRYPOINT ["youtube-dl"]
CMD ["--help"]