DockerでStreamLinkを使う

StreamLinkのDockerイメージの使い方が分からなくてちょっと困ったのでメモしておきます。いろいろいじって二通りの使い方を見つけました。

標準出力を使う方法

$ docker run --rm -it rayou/streamlink "$URL" best -O > hoge.mp4

取得先を標準出力に指定し、ファイルにリダイレクトします。

シンプルに記載でき分かりやすい反面、取得に失敗した場合でも0byteのファイルが作られてしまったり、ファイルが存在していても強制的に上書きされてしまうデメリットがあります。気になる場合は次の方法を使うと良いでしょう。

ファイル名を指定する方法

$ docker run --rm -it -v "$PWD":/output rayou/streamlink "$URL" best -o /output/hoge.mp4

カレントパスをDockerコンテナ内にマウントして、そこに出力させます。

/output のところは何でもよいのですが、 /etc などDockerコンテナ内に実在するディレクトリは避ける必要があります。こだわりがなければオマジナイとして /output と書いておきましょう。

なお、Dockerの-vオプションの /output とstreamlinkの-oオプションの /output は一致していなければならないので気を付けてください。