averygan/reclip
yt-dlp に画面を1枚かぶせて、家族にも渡せる形にする
どういうものか
自分のマシンで動かす動画・音声のダウンローダ。ブラウザで開いた画面にURLを貼ると、MP4(映像)か MP3(音声だけ)で落ちてくる。複数のURLをまとめて貼れて、重複したものは自動でまとめられる。画質を選ぶ欄もある。対応サイトが「1000以上」と広いのは、中で yt-dlp を呼んでいるから。形式の変換は ffmpeg が担う。
中身は驚くほど薄い。サーバー側は Flask のPythonが約150行。画面側はフレームワークもビルド手順も無い、HTML・CSS・JavaScript が1ファイル。直接の依存は Flask と yt-dlp の2つだけと書かれている。つまりこのリポジトリが足しているのは、ダウンロード機能そのものではなく「画面」と「受付」の部分。 中核の仕事は、すでに定評のある2つの道具に任せきっている。
動かし方も軽い。Homebrew や apt で必要なものを入れて ./reclip.sh を叩くと、localhost の 8899 番で待ち受ける。Docker でも動く。
どんなときに使うか
コマンドを覚えていない人にも渡したいとき
yt-dlp はそれ自体で完成した道具だが、使うにはターミナルと引数の知識が要る。ここに画面が付くと、URLを貼るだけの操作になる。自分は困っていないが、家族や同僚が困っているという場面がいちばん当てはまりそうに見える。
広告や余計な導線を通したくないとき
同じことをするウェブサービスは多いが、素性の分からない広告や余計なボタンが付いて回る。手元で動かす形にすると、そこを切り離せる。中身が数百行しかないので、入れる前に自分で読み通せるのも小さくない。
注意点
使ってよいかは、落とす先の規約と著作権しだい。 作者も「個人的な利用を想定している。落とす先のサイトの規約と著作権を尊重してほしい」と明記し、誤った使い方の責任は負わないとしている。技術的に落とせることと、落としてよいことは別の話になる。
手元で動かす前提の作りに見える。 README にある起動方法は localhost の 8899 番で、認証やアクセス制限の話は出てこない。共有のサーバーや外から届く場所に置くつもりなら、前に何か挟む必要があると考えておいたほうがよい。
規模と体制は小さい。 関わっている人は少人数だ。薄い作りなので壊れても追いやすいが、長く面倒を見てもらえる前提では置かないほうがよい。 ライセンスは MIT。
GitHub の言語判定は HTML になっている。 画面が1ファイルにまとまっているためと見られ、実際に読む中身は Python とその中の JavaScript になる。