動かざることバグの如し

近づきたいよ 君の理想に

bilibili動画をダウンロードするならannieがベスト

youtube-dl消されて以降の方がプロジェクト活発で草

bilibili動画とは

ニコニコ動画の中国版、以上

動画をダウンロード

まあ滅多に無いけどbilibiliの中国動画をダウンロードしたい場合

真っ先に出てくるのは、一度消されたアプリこと「youtube-dl

実はyoutube-dlもbilibili動画に対応しており、ダウンロードすることができる。

しかし、1つ欠点があってbilibili独自の仕様に対応できていないこと

bilibili動画では動画によってはプレイリスト形式になっており、GETパラメーターで動画が変わる

が、youtube-dlはこれに対応していないので、GETパラメーターを渡してもプレイリストの1番最初の動画しかダウンロードすることができない。。

結構昔から指摘されているが、直る気配はなさそう

github.com

よって今回はyoutube-dlではなくannieを使う

ダウンロード

Releases · iawia002/annieから最新版のバイナリファイルをダウンロード

Goで書かれているが、バイナリ化されているファイルを使う場合は環境にGo langがインストールされてなくても動く。

Macの場合は brew install annie が早い気がする。

また、映像と音声の別々ファイルでのダウンロードになってしまい、最後結合するのにffmpegもインストールしておく必要がある。

ダウンロード

引数にダウンロードしたいURLを渡すだけ

annie -i https://www.bilibili.com/video/av21877586

で、プレイリストの中の特定の動画だけインストールしたい場合は以下のオプションを活用する。

-start
        Playlist video to start at (default 1)
-end
        Playlist video to end at
-items
        Playlist video items to download. Separated by commas like: 1,5,6,8-10

例えば

annie -i -items 2 https://www.bilibili.com/video/av21877586

だと2番の動画だけダウンロードできる。

Docker化した

手元にffmpegインストールして環境汚したくなかったので、雑にDockerイメージ作った

docker run --rm -w /app -v $(pwd):/app amanekey/annie 'https://www.bilibili.com/video/BV1Ct411L7Kd'

で使える。

github.com