Twitterで「いいね」した画像を一括保存するPHPとTwitterAPI

「わたモテ」という漫画にハマりすぎて、TwitterとPixivで画像を漁りまくってたら人生初の通信制限を受けました。

「わたモテ」が生活の一部になりつつある男の話
僕とわたモテの出会い 僕と「私がモテないのはどう考えてもお前らが悪い!」(以下わたモテ)との出会いは、会社のアルバイトの人の紹介だった。 そのアルバイトの人は、雑誌のモデルと見紛うレベルの超イケメン君で、プライベートは女遊びでも...

どうも、のちょうです。

そんなわけで、Twitterを画像検索ツールとして大活用している私ですが、Twitterの「いいね」機能ってあるじゃないですか。

わたモテ絵師のツイートとかは、すかさず「いいね」ボタン押していってるわけです。
(わたモテの画像をお探しの方は僕のツイートのいいね欄を見てください)

そんなわけで今日も日課のTwitterとPixivで画像を見て英気を養おうと思っていたのですが、Twitterでいいねした画像を見返すのって、イマイチ難しくないですか。

画像以外のツイートも「いいね」しているため、効率的に巡回できないんですよ。

そしてTwitterには、「いいねした『画像』のみを表示する」といった機能は存在しません。

そんなわけで、自分が「いいね」した画像を一括保存できるプログラムを作成しようと思ったわけです。
こういう時にプログラマーで本当に良かったと思います。

いいね画像一括保存プログラム

言語は毎度おなじみのPHPを使用します。

ライブラリ管理ツールのcomposerからTwitter APIの操作ができる「abraham/twitteroauth」をインストール。

composer require abraham/twitteroauth

あとはPHP上で、composerからインストールしたディレクトリを呼び出せば、TwitterOAuthを使うことが出来ます。

あ、Twitter APIは申請しないと使えない仕様になったので、開発用アカウントを持っていない方は申請が必要です。

英語で利用用途とか説明しなきゃいけないけど、まぁGoogle翻訳があればいけると思います。

申請が通ると、Twitter APIを実行できる、コンシューマーキーとアクセストークンが発行されます。

ソースコード

composerからTwitterOAuthを読み込んで、アクセストークンなどの設定を行ったら、favorites/listでデータを取得し、画像判定のツイートをひらすら保存するのみです。

$file_pass = 'img/favo/'; //保存先パス

$connection = new TwitterOAuth('コンシューマーキー', 'コンシューマーシークレット', 'アクセストークン', 'アクセストークンシークレット');

//@noticocoから200件のいいねツイートを取得
$aryParam = ['screen_name' => 'noticoco', 'count' => 200];
$aryList = $connection -> get('favorites/list', $aryParam);
$aryList = json_decode(json_encode($aryList), true);

foreach($aryList as $key1 => $val1){
    //画像のツイートか判定
    if(isset($val1['extended_entities']['media'])){
        foreach($val1['extended_entities']['media'] as $key2 => $val2){
            $data = file_get_contents($val2['media_url_https']); //画像URLからデータを取得
            $timestamp = strtotime($val1['created_at']); //投稿日時
            $file_name = $file_pass.date('Ymd_His', $timestamp).'_'.($key2 + 1).'.jpg'; //ファイル名
            file_put_contents($file_name, $data); //ファイルを保存
            sleep(1); //負荷軽減のため間隔を置く
        }
    }
}

これを実行すると、

んほ~

直近200件のいいねした画像がすべて保存されました。
もちろん、少し改造を加えればさらに前のいいねツイートも保存できます。

後はWindowsのビューアーを使って舐めるように閲覧したいと思います。

言うまでもないようなことですが、画像の著作権はツイート主のものです。(違う場合もありますが)
私的な利用に留めて、無断掲載や再配布などは決して行わないようにしましょう。
以上、Twitterで「いいね」した画像を一括保存するPHPとTwitterAPI、でした。

コメント

タイトルとURLをコピーしました