八発白中

技術ブログ、改め雑記

自分のTwitpicの画像・動画をダウンロードできるスクリプトを書きました

Twitpicの公式ブログで、Twitpicが今月終了することが告知されているようです。

追記 (2014/09/19): Twitpicが買収されたので終了しない、ということを公式Twitterアカウントでツイートしています。 詳細は今後公開されると思いますが、終了に向けてのダウンロードの必要はなくなりそうです。
追記 (2014/10/17): Twitpicの買収が失敗したようで、再び終了する告知が出ています。

僕は昔少し使っていた程度ですが、それでもサービスが無くなるのは寂しいですね。ブコメで誰か書いているのを見ましたが、こうしてデータが消えていくと文化が後世に残らないので数十年後困ると思う。

ともかく今月の話なので、昔の写真が上がってるからダウンロードしておかないとなー、と思ってバックアップ用スクリプトを書いてみました。

※ちなみに終了告知には「数日中にデータのエクスポート機能を提供する予定」、と書かれているので待っていれば公式のダウンロード機能が使えそうです。

追記 (2014/09/09):

Twitpic公式で写真/動画のエクスポート機能が追加されました。


設定ページの一番下でエクスポートリクエストができ、準備ができたらダウンロードリンクが表示されるようです。


ダウンロードしてみたら、写真や動画だけでなく投稿時のツイート内容がtweets.txtに保存されています。それに倣って僕のスクリプトも同様の内容を出力するようにしました。


投稿日時情報がファイル名に含まれていないのが残念かな……重要だと思うんだけど。

重要そうな機能

  • 動画にも対応しています
  • 投稿日時がファイル名になっているのでいつ投稿したかがわかります
  • ファイル名の最後5ケタはTwitpicのIDです
    • http://twitpic.com/{ID} にアクセスすると対応するTwitpicのページが見られます。
  • 投稿時のコメントをテキストファイルに出力します

必要なもの

使うにはCommon Lisp処理系とQuicklispが必要です。

Common Lisp処理系

特にこだわりがなければSBCLClozure CLがおすすめです。

Mac OSならHomebrewで簡単にインストールできます。

$ brew install sbcl

Ubuntuならapt-getでインストールできるはずです。

$ sudo apt-get install sbcl

Quicklisp

Quicklispをインストールします。

公式サイトの言うとおりにインストールしてもいいですが、以下のコマンドを叩けば一発でインストールできます。

$ (curl -L http://beta.quicklisp.org/quicklisp.lisp && echo '(progn (quicklisp-quickstart:install) (ql:add-to-init-file))') | sbcl

ダウンロード

以下のリンクを右クリックして「リンク先を保存」します。

実行

以下のコマンドを実行します。twitpic-dl.lispの部分は先ほどダウンロードしたファイルのパスです。

$ sbcl --noinform --load twitpic-dl.lisp

f:id:nitro_idiot:20140906105714p:plain

するとユーザ名を聞かれるので自分の名前を入れてEnterを押します。

f:id:nitro_idiot:20140906105549p:plain

ダウンロードが始まります。ファイル名は投稿日時になっています。途中サーバエラーが出た場合は間隔をおいて自動でリトライします。

Ctrl-Cでいつでも終了できます。途中で終了した場合、再度実行すればダウンロードしていないファイルのみダウンロードを再開します。

何か問題があったら@nitro_idiotにご連絡ください。

ソースコード

Gistに上がっています。ライセンスはPublic Domainなのでご自由にご利用ください。

Twitpic backup script