Twitterのリストのタイムラインから画像付きツイートの画像だけを自動的に取得してくれるツール「reins」

スポンサーリンク

Twitterで絵師さんのリストは作っているけど、イラストを1つ1つ保存するのがめんどくさい…という悩みがあったので探していたらちょうどよいものが見つかって半年ほど活用しています。

Twitterの画像付きツイート取得ツール「reins」とは

  • Twitterの自分のListのTLから画像を含むTweetの、画像だけを自動的にダウンロードできるJAVAのアプリ
  • 画像を保存するフォルダも “リスト名/ユーザ名” と保存され、ファイル名も “日付時刻_ユーザid” と保存されるので誰のツイートかわかりやすい
  • RTを含めるかも設定で切替可能、さらにRT元のユーザ名でフォルダ分けするかどうかも設定可能

配布元

reinsの配布元のサイトはこちら

GitHub - seriwb/reins: Twitterからの自動画像取得ツール
Twitterからの自動画像取得ツール.Contributetoseriwb/reinsdevelopmentbycreatinganaccountonGitHub.

導入

基本的には配布先のページの「使い方」を見ると良いかと思います。

慣れてない人はJAVAをインストールして動かせるようにするのが一番大変だと思いますので「JAVA インストール」などで検索して調べてみてください。

JAVAが動かせるようになったらアプリを起動!…の前に設定ファイルをいじります。

conf/config.txt を開き、「RTを取得するか」「RTのフォルダを分離するか」「リストではない通常のTLでの画像を取得するか」あたりを自分の好みの設定にします。

conf/allow.txt を開き、画像を保存したいリストを記述します。複数ある場合は改行して記述します。


メモ帳で保存したら改行コードかBOMかの関係で読み込みに失敗した覚えがあるので、ダメだった場合はサクラエディタ等で「UTF-8 BOM無し」の改行コード「LF」で保存してみてください。

使い方

コマンドプロンプトなどのコンソールを開き、reinsを置いてある場所へ移動して

java -jar reins-0.3.5.jar

を叩けばブラウザに認証しますかの画面が出てくるのでそこで認証すればあとは自動的に画像をダウンロードしていってくれます。終了する時はCtrl+Cなどで終了させれば良いっぽいです。

毎回コンソールから叩くのがめんどい時はバッチファイルを作ると良いです。

注意点

リストのユーザ数が多かったり長時間起動してたりするとDBのテーブルがでかくなりすぎて画像が取得できなくなるっぽい。(ver0.3.5での修正後も起こる)

TwitterのListが1000ユーザ超えてたりすると数日でアウト。

解決方法としては定期的にDBのファイルを消すしかないみたいです。

その際既に取得済みの画像も再度取得されてしまうので注意。

自分は1日の最初にreinsを起動する時は下記バッチファイルでdbファイルを削除してから実行するようにしています。

@echo off
cd "reinsがあるフォルダ"
move /y .\db\h2.db.*.db .\db\bak
java -jar "reins-0.3.5.jar"

Listのユーザ数が多いとファイルとフォルダが莫大になる件

別の問題として、Listのユーザ数が多いと画像ファイル数とフォルダ数が膨大になる点。

これもうまく整理していかないといけないのですがまだどうしたらいいのかは模索中。(XViewがフリーズするくらいのフォルダ数になってしまう)

自分は月イチくらいに画像ファイルのみをdirフォルダから回収して別のフォルダに入れることだけはしています。PowerShellで以下を実行。

cd "reinsがあるフォルダ"
cd dir
Get-ChildItem -Recurse -File -Include *.jpg | ForEach-Object { Move-Item $_ 画像ファイルの移動先のフォルダ -force}
Get-ChildItem -Recurse -File -Include *.jpeg | ForEach-Object { Move-Item $_ 画像ファイルの移動先のフォルダ -force}
Get-ChildItem -Recurse -File -Include *.gif | ForEach-Object { Move-Item $_ 画像ファイルの移動先のフォルダ -force}
Get-ChildItem -Recurse -File -Include *.png | ForEach-Object { Move-Item $_ 画像ファイルの移動先のフォルダ -force}

たぶんこの4拡張子だけでいいかと思います。拡張子をORで繋いで1行にしてもいいかと思います。


かなり便利なツールなので試してみるのをおすすめします。

ユーザ数が1000人以上みたいに多くなると6桁とかの数の画像ファイルができるのでそれだけが注意です。

コメント