格ゲーみたいにちょっとした連携やコンボをSNSでシェアするのが盛んなホビーをやっていると、クリップしておこうかなと思うような動画によく出会う。
ダウンロードサイト(SYNCERとか)で落としてくるのもありなんだけど、あの手のは消えたり、いつめんどくさい何かが仕込まれても文句を言えない。なので道具をこさえた。

ダウンロード用のツールと言うとlivedlyoutube-dlがあればだいたい要件を満たせそうだ。
niconicoはlivedlに、ほかはyoutube-dlにやってもらおう。
両方突っ込んだコンテナを用意。
niconicoはセッションIDがいるので、そのへんを外部ファイルにして渡せるように作りマウント。
DL済のファイルが置かれるフォルダもマウント。

ダウンロード実行はpythonで書く。
URLを渡すためローカルのテキストファイルをマウントしておいて、そこのURLを一行ずつ読むようにする。同じものを何度もDLしたくないので、動画のIDを保存しておいて参照して新規の動画のみ処理対象にする。
URLからDL方式を判別して、コマンドの文字列を作りsubprocess呼ぶ。

niconicoはうまく行かないこともあるっぽいのだが、もはや見に行くこともほぼないので積極的なメンテはしていない。見るときに困ったら直せばいいやという感じ。いっそ機能外してもいいかなくらい。

「こさえた」と書いたが、出来上がったのは1年くらい前で、改良しながら快適に使っている。
Youtube、Twitch、Twitter相手を問わずURLをコピってテキストに貼り、コンテナを起動するだけでよくなった。
全部のDL作業が終わったらコンテナはかってに落ちる。
楽でよいのだが、さいきんコンテナを起動して~の手順が面倒に思えてきた。
いっこバッチ叩いたら起動してくんないかなあ。
こちらも今朝なんとかなった。コマンドプロンプトでbashと叩くとシェルが起動するというのを知り、

bash -c <起動したい諸々>

を書くだけで終わった。いきなりbash呼べるの感動する。。。
最初はbatからwindows terminalを呼びそこからubuntuを呼ぼうとしていたが、そもそもそんなこと必要なかったですというのが学び。
これ以上になるとファイルにurl書いたら勝手に起動してDLしてコンテナ落とすとかになるけど、さすがにそこまではしないだろう。なんか常駐させておくのも邪魔だろうし。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です