【要約】gallery-dl で『お気に入りSNSアカウントを丸ごとローカルに一括バックアップ』するツールを作った [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者は、SNSの投稿がアカウントの削除や凍結によって消失するリスクに直面した。既存の手段には以下の課題があった。
- ・公式のブックマーク機能は、アカウントの状態に依存するため永続性が低い。
- ・既存のダウンロードサイトは、広告が多く、1投稿ずつの取得に手間がかかる。
- ・gallery-dl などのCLIツールは強力だが、毎回コマンドを打つのは面倒である。
// Approach
開発者は、gallery-dl の機能をGUIから操作できる、軽量なローカルWebアプリを構築した。具体的な手法は以下の通りだ。
- ・バックエンドに Python の ThreadingHTTPServer を用い、極限まで軽量化した。
- ・subprocess と threading を活用し、ジョブの起動や進捗管理を制御した。
- ・認証には gallery-dl --cookies-from-browser chrome を利用し、ログイン状態を流用した。
- ・SQLite を用いてアーカイブ管理を行い、次回実行時の差分取得を自動化した。
// Result
開発者は、技術的なトラブルを解決し、実用的なメディアアーカイブ環境を構築した。主な改善点は以下の通りだ。
- ・動画再生問題に対し、画質より互換性を優先して H.264 + AAC 形式を選択した。
- ・大量の画像描画によるブラウザの負荷に対し、60件ずつのページングを導入した。
- ・macOS のゴミ箱移動の不安定さを、アプリ内専用フォルダへの移動方式に変更した。
Senior Engineer Insight
> gallery-dl をラップする設計は、車輪の再発明を避けた合理的な判断だ。認証にブラウザのCookieを流用する手法は、実装コストを抑えつつ実用性を確保する優れたハックといえる。一方で、本ツールはローカル実行を前提としており、大規模な並列処理やスケーラビリティは考慮されていない。個人利用の自動化ツールとしては完成度が高いが、商用利用や大規模なデータ収集には、認証管理やリクエスト制御の観点から再設計が必要となるだろう。