作品 · 03

OmniDL · 万能ダウンローダー

Python · yt-dlp · android · offline-first

汎用メディア取得エンジン —— どんなリンクを貼っても自動識別、1000 以上のサイトから画像・動画を一括ダウンロード。Android 上でローカル実行 ・ 完全オフライン ・ サーバー不要。Kotlin + Python + yt-dlp 駆動。

なぜ作ったか

きっかけはとても具体的な不満でした。画像を 1 枚保存するためにアプリを入れ、動画を保存するために別のアプリを入れ、特定サイトの透かし入りのためにさらに 3 つ目のツールを探す。ダウンロードという行為がサイトごとに細切れであるべきではない——それはエンジン 1 つとシェル 1 枚で済むはずのことです。

yt-dlp は「1 つのエンジンでウェブ全体を食べる」ことが可能だと証明していましたが、コマンドラインツールです。私がやったのは、このエンジンをポケットに入れること:Android 上でローカル実行し、いかなるサーバーも経由しない。

アーキテクチャの選択

難しいところ

最大の課題は Python ランタイムの Android 移植でした。機種ごとに ABI、ストレージ権限、バックグラウンド生存戦略の流儀が違う。最終的な答えは、Python 環境を自己診断できるリソースパックとして梱包し、起動時に項目ごとに健康診断を行い、足りないものを補う——主プログラムに if-else を積むのではなく。

現状

← すべての作品