collect_twitter_media の概要
Twitter の自分のタイムラインにある添付画像を根こそぎ取得してしまうという gem です。
リポジトリ
以下になります。
必要なもの
wget
使い方
1. gem install する
$ gem install collect_twitter_media
2. require する
require 'collect_twitter_media'
3. token を設定する
Twitter API の token を設定します。
CollectTwitterMedia.consumer_key('YOUR_CONSUMER_KEY') CollectTwitterMedia.consumer_secret('YOUR_CONSUMER_SECRET') CollectTwitterMedia.access_token('YOUR_ACCESS_TOKEN') CollectTwitterMedia.access_token_secret('YOUR_ACCESS_TOKEN_SECRET')
4. 🎉save
メソッドを実行する🎉
あとはsave
メソッドをクラスメソッドとして実行するだけです。引数として保存ディレクトリを指定します。
CollectTwitterMedia.save('media_collection')
5. 🎆ファイルが保存される🎆
「4.」で指定した場所にファイルが保存されます。保存されるファイルは画像ファイルとCSVファイルです。
5-1. 画像ファイルについて
画像ファイルのファイル名は以下の書式に沿います。
@スクリーンネーム_ツイートID_画像ID.拡張子
具体的には以下のようになります。
@dhh_934687159870177697_dPi3GGKVoAERExB.jpg
@tenderlove_924694994511770368_IPi5IX-UEAAoL4v.png
5-2. CSVファイルについて
CSVファイルには以下のカラムが用意されます。
- tweet_id
- screen_name
- original_filename
- save_filename
- uri
- created_at
ファイル名は以下の書式に沿います。
image_from_twitter_%Y%m%d_%H%M%S.csv
具体的にはファイル名は以下のようになります。
image_from_twitter_20171126_171717.csv
image_from_twitter_20171224_210000.csv
スクリーンショット
画像が保存されているディレクトリのスクリーンショットは以下になります。
CSVファイルのスクリーンショットは以下になります。
save
メソッドに取ることができる引数
save
メソッドは以下のように4つの引数が取れるようになっています。第一引数は必須です。
- 第一引数: 保存先のディレクトリ名(必須)
- 第二引数: 1回のループ(APIアクセス)あたりに取得するツイート数(デフォルトは200)(任意)
- 第三引数: ツイートを取得するループを行う回数(デフォルトは1)(任意)
- 第四引数: 取得を開始するツイートのツイートID(文字列)(デフォルトは最新のツイート)(任意)
こんな感じです。
CollectTwitterMedia.save('media_collection', 100, 3, '1234567890123')
注意点
派手に取得すると API の Rate limits に引っかかるので注意が必要です。
苦労した点
これです。
やれていないこと
- 自分のタイムラインだけではなく、任意のユーザのタイムラインから取得する
- パブリックタイムラインでキーワード検索を行い、ヒットしたツイートから画像を取得する
- GIF や mp4 も取得する