風柳メモ

ソフトウェア・プログラミング関連の覚書が中心。

Twitter メディアダウンローダ:ユーザータイムラインの原寸画像や動画をまとめてダウンロードするユーザースクリプト(PC用Google Chrome・Firefox等対応)

Web 版公式 Twitter上で、あるユーザーの画像(メディアタイムライン上の画像)を原寸*1でまとめて(ZIP)保存することが出来るようになるユーザースクリプト/Chrome拡張機能/Firefox Quantum用アドオンです。
0.1.0.701より、動画もダウンロード可能となりました。



インストール

Chrome 拡張機能版(Google Chrome対応)

chrome.google.com

より追加。
Twitter メディアダウンローダ - Chrome ウェブストアのページ上に表示されている [+CHROME に追加] ボタンを押してインストール。

Firefox Quantum アドオン版(WebExtensions)

https://addons.mozilla.org/ja/firefox/addon/tw-media-downloader/addons.mozilla.org

より追加。
ページ上に表示されている [+ Firefox へ追加] ボタンを押してインストール。

ユーザースクリプト(Gresemonkey / Tampermonkey)版(Firefox/Google Chrome対応)

Firefox+Gresemonkey、Google Chrome+Tampermonkeyの環境で、

Twitter メディアダウンローダ・ユーザースクリプト版(twMediaDownloader.user.js)

GitHub - furyutei/twMediaDownloader: Twitter メディアダウンローダ

をクリックし、指示に従ってインストール。

使い方

基本的な使用方法

インストール後には、Web 版公式 Twitter上で、ユーザータイムライン()を表示時に、「メディア」の横に下向きの矢印が表示されるようになります。
0.1.0.901より、検索タイムライン上でも「メディア ⇩」リンクが表示されるようになりました。

f:id:furyu-tei:20160725180612p:plain

これをクリックするとダイアログが表示されるので、[開始]ボタンをクリックすると、原寸画像/動画の ZIP 化が開始されます。
ZIP 化の進捗は、下部にログ出力されます。

f:id:furyu-tei:20160723224527j:plain
f:id:furyu-tei:20171029090641p:plain

ZIP 化が完了するか、もしくは[停止]を押すと、対象となる画像/動画ファイルをまとめた ZIP ファイルがダウンロードされます。
このとき、ログの内容も ZIP の中に保存されています。

オプションの指定

制限数は、ダウンロード対象となるツイート数の上限です(デフォルトは現状 100 件にしてあります)。
これを超えた分のツイートはダウンロードされません。
大きい値を指定すると、その分メモリを消費してしまい、ブラウザがフリーズする等の不具合が発生する可能性がありますので、ご注意ください。

ダイアログの保存対象 Tweet ID 範囲に、具体的な Tweet ID(ツイートの URL の数値部分・例えば https://twitter.com/furyutei/status/743443761980596224ならば、"743443761980596224")を指定してやることで、その範囲にあるツイートの画像/動画のみをダウンロードすることができます。

■以前にダウンロードしたものよりも後の画像/動画をダウンロードする
以前にダウンロードしたときのログファイルが、

[Complete] 101392230006267904 - 756891141912481792 ( Tweet: 333 / Media: 398 )

のような形で終わっている場合には、下限(左の入力欄)として "756891141912481792" を指定してやることで、これより後に更新された画像/動画をまとめてダウンロードすることができます。

■以前にダウンロードしたものよりも前の画像/動画をダウンロード

[Complete(limited)] 582865505758748672 - 680344335049601024 ( Tweet: 100 / Media: 120 )

この例だと、100件制限によって、"582865505758748672" より前のものが含まれていませんが、この場合は上限(右の入力欄)として "582865505758748672" を指定してやることで、これ以前に更新された画像/動画をダウンロードできます。

0.1.0.701 からはアニメーションGIF(MP4に変換されたもの)と動画も対象となりました。
必要に応じて、対応するチェックボックスにチェックを入れてダウンロードしてください。

0.1.1.101 からは、個別ツイートに動画用のダウンロードリンク(MP4)が付くようになりました。
また、0.1.1.201 からは、個別ツイートに画像用のダウンロードリンクも付くようになりました(ZIPでダウンロードされます)。
Chrome拡張機能版の場合、オプション画面でこの機能を無効化できます。

注意・制限など

ダウンロード対象ツイートの制限について
  • ダウンロードできるのは、Web 版公式 Twitter上のメディアタイムラインで遡れるところまでに限られますので、悪しからず。
    800ツイートくらいかな?
  • [2016/07/24追記]ダウンロードできるのは、Web 版公式 Twitter上のメディアタイムラインおよび検索タイムラインで取得できるもののみです。
    メディアタイムラインでは最大で800ツイートくらいまで(対象外のツイートも含むため、実際はもっと少なくなる)しか取得できないため、それよりも前は検索タイムラインで取得します。ただし、検索タイムラインでは取得もれが発生することも多いため、全ての画像/動画付きツイートがダウンロードできるわけではありませんので、悪しからず。
[Complete] や [Stop] と表示されているのに、ダウンロードされない

合計ファイルサイズが大きい場合(~1GB以上?)[Complete]や[Stop]状態になっても、ZIPがダウンロードされずにだんまりとなる場合があるようです。
特に動画を含む場合は容量が膨れ上がるので注意。動画ばかりのタイムラインだと、100件ずつくらいにしておいた方が無難かも知れません。

Firefox で「このファイルを開くのは危険です」という警告が表示される

Firefoxでは、ZIPファイルをダウンロードすると、「このファイルを開くのは危険です」という警告が表示される場合があります(危険なファイルなんて含んでいないんですが……)。
現状、対処方法が見つかっておりません……悪しからず。
一応、about:preferences#privacy(「≡」→「オプション」→「プライバシーとセキュリティ」)→「セキュリティ」→「フィッシング防護」→「☑不要な危険ソフトウェアを警告する」のチェックを外すと警告は出なくなりますが、その分他のサイトで危険が増すのでお勧めはできません。

開発経緯

Twitter 原寸びゅーのおかげで、日常的な用途では原寸画像の表示や保存が随分楽にできるようになりましたが、たまたま発見したイラストレーターや写真家の方々等の画像/写真に魅了された際に、ひとつずつダウンロードするのはさすがに手間だなぁ……と思ったので、まとめてダウンロードできるように、スクリプトを試作してみた次第です。

独り言

動画(アニメーションGIF含む)とかまでダウンロードできるとさらに嬉しいので、だれか作ってくれないでしょうか……(丸投げ)。
ちなみに自分は、ちょっと調べている内に結構面倒だということがわかったために、保留中。

0.1.0.701 からは、アニメーションGIFと動画(一部)にも対応してみました。
Vine等や、YouTube等の外部サイトの動画については未対応。

[2016/07/27追記]
というか、例によって作ってから探したところ、普通に
shimarisu.webcrow.jp
shimarisu.webcrow.jp
という高機能なアプリが見つかったので、これをインストールするのが吉かと思います。
いや、自分自身はまだ入れていないのだけれども……というか、インストール(解凍)するだけはしたものの、最初に若干設定をしないといけないっぽくて面倒になって放置中だったり……(汗)。

*1:URL末尾に『:orig』が付いた画像を便宜上こう呼んでいますが、『原寸』といっても実際にはTwitter側でサイズ変換や圧縮がかかっています