したかみ ぶろぐ

Unity成分多め

iOSアプリ「ショートカット」で卒業した推しの去年のツイートを表示する


始めに

少し前に私が推していたVTuberが晴れて卒業されました。

たまに、その方のアーカイブを見て楽しんだり少し寂しい気持ちになったりしています。

そんなとき、ふと推しが活動していた時代に戻りたいと思ってしまいました。


作ったショートカット

このURLから作成したショートカットが取得できると思います。

https://www.icloud.com/shortcuts/d8e68650ef304573aa1ba90f3a46748e


twitterの検索機能について

ご存じの方もいらっしゃると思いますが、twitterには便利な検索機能があります。 ここではこの記事内で使うコマンドを載せます。

コマンド 機能
from:(ユーザID) 特定のアカウントからのツイートを検索
to:(ユーザID) 特定のアカウントへのリプライやメンションを検索
since:yyyy-MM-dd yyyy年MM月dd日以降のツイートを検索
until:yyyy-MM-dd yyyy年MM月dd日以前のツイートを検索


これら以外にも多くのコマンドがあるので、興味がある方はこちらを参照してください。

yonoi.com



去年の推しのツイートを検索する

twitterの検索で次のように検索することで去年のツイートを取得できます。

from:推しのtwitterID since:2020-10-16 until:2020-10-17

これを自動的に行うショートカットを作成すれば、簡単に去年の推しのツイートを取得できます。



やること概要

iOSに入っているアプリ「ショートカット」で次のことを行わせます。

これにより自動的に去年の推しのツイートを検索してくれます。

  1. 現在の日付を取得

  2. 現在の日付から1年減らす

  3. 過去の日付という変数に保存

  4. さらに1日減らす 

  5. 過去の日付 - 1という変数に保存

  6. 過去の日付 - 1から過去の日付までのあいだのツイートを検索するurlを作成

  7. urlを開く



ショートカット作成

1. 現在の日付を取得

始めに現在の日付を設定します。 このノード?が見つからない場合は、「日付」で検索するとすぐに見つかると思います。

f:id:vxd-naoshi-19961205-maro:20211017160025j:plain



2. 現在の日付から1年減らす

twitterの検索の「until」に相当する値をここで求めます。

今回の目的は「1年前の日付までのツイートを取得すること」なので、現在の日付から1年引きます。

もし、表示したい期間が別であればここで1日前など設定できます。

f:id:vxd-naoshi-19961205-maro:20211017160225p:plain



3. 過去の日付という変数に保存

先ほど求めた日付は検索のときに使用するので、変数に保存します。

ここでは分かりやすくするために過去の日付と名付けました。

f:id:vxd-naoshi-19961205-maro:20211017160426p:plain



また、日付のフォーマットをtwitterの検索で使える形に直します。

twitterの検索では「yyyy-MM-dd_hh:mm:ss」というフォーマットになります。

f:id:vxd-naoshi-19961205-maro:20211017160516p:plain



4. さらに1日減らす 

次にtwitterの検索の「since」に相当する日付を計算します。

今回表示したい期間は1年前の1日前~1年前の1日間にツイートされたものを表示したいので、さらに1日減らします。

もし、より多くの期間のツイートを表示したい場合は3日や7日減らすと良いでしょう。

f:id:vxd-naoshi-19961205-maro:20211017161500p:plain



5. 過去の日付 - 1という変数に保存

こちらもまた後で使うので、変数に保存します。

こちらも忘れずに「yyyy-MM-dd_hh:mm:ss」でフォーマットします。

f:id:vxd-naoshi-19961205-maro:20211017161059p:plain



6. 過去の日付 - 1から過去の日付までのあいだのツイートを検索するURLを作成

次に、過去の日付 - 1から過去の日付のあいだの推しのツイートを取得するURLを作ります。

始めに、テキストに推しのtwitterのユーザIDを記載します。 ここでは、実験的に自分のtwitterID「CCPJ_a」を書いています。

f:id:vxd-naoshi-19961205-maro:20211017161844p:plain



次に検索のURLを作成します。

URLを調べるために、Chromeアプリでtwitterを開いて、「from:推しのユーザID since:2020-10-16 until:2020-10-17」を検索します。

次にそのときのURLをコピーして、テキストにペーストします。

f:id:vxd-naoshi-19961205-maro:20211017162435j:plain



次にそのURL内で推しのユーザIDや取得する期間などがあるので、それらを保存した変数などに置き換えます。

これによって、「去年の推しのツイート」を検索するURLができました。

f:id:vxd-naoshi-19961205-maro:20211017162607p:plain



7. urlを開く

最後に、「URLを開く」を追加して検索URLを開くようにします。

あとは右上の再生ボタンで実行すると勝手にtwitterアプリが起動して、検索結果を表示してくれます。

f:id:vxd-naoshi-19961205-maro:20211017163753g:plain



ホーム画面に追加する

あとはショートカットをホーム画面に追加することで、推しのツイートをすぐに見られるようになります。

f:id:vxd-naoshi-19961205-maro:20211017164502p:plain



最後に

iOSアプリの「ショートカット」が意外にも強力だと感じました。

文字列を結合したり、テキストの中に変数をそのまま追加できたりととても便利でした。

少し不満があるとすれば、変数が使いにくいと感じました。

また何か思いついたら、別のショートカットを作るかもしれません。



ちょっとした雑談

ここからはこのショートカットを作るまでの裏話。

もともとはTwitter APIを使って、推しの過去ツイートを取得するアプリを作ろうと考えておりました。

しかし、調べてみると無料版のTwitter APIでは5日前ぐらいのツイートしか取得できないとわかりました。また、有料版では過去のツイートを取得できるが料金が高く、そう何度も取得できないとなりました。

結果、Twitter APIを使ったアプリ開発は出来ないという結論でした。

じゃあスクレイピングTwitterのサイトを解析するかという話も出たのですが、Twitterではスクレイピングは禁止されていました。

なので、最終的な結論は去年の推しのツイートを自動的に検索してくれるものを作ろうとなりまして、その方法を調べました。

始めはWindowsアプリになるかと思っていましたが、iOSの「ショートカット」でもしかしたら出来るかとなって、模索した結果で作ることができました。

つまり、色々あったという話でした。