• 作成:
  • 更新:

Twitter検索でユーザ名を含めないハックが使えなくなったため、エゴサーチにYahoo!リアルタイム検索を使います

Twitterのエゴサーチが崩壊しました

これまでのTwitterエゴサーチ

これまで私は、エゴサーチのススメ - ncaq の発展形でTwitter検索を行っていました。

単純に自分の名前でTwitter検索すると、 screen_nameや表示名にncaqなどを含むアカウントが引っかかってしまうため、以下のようなクエリを入力していました。

"ncaq" OR "エヌユル" OR "えぬゆる" OR twitter.com/ncaq -from:ncaq OR @ncaq_do_not_exist

まず自分の名前の呼ばれそうな一覧を入力して、引用ツイートを表示するためにtwitter.com/ncaqを入れて、 -from:ncaqで自分自身のツイートを除外します。

それだけだと@ncaq42(架空、現在(2023-06-25)では存在しない)みたいなアカウントがツイートした内容も全てヒットしてしまうため、 OR @ncaq_do_not_existみたいに存在しないアカウントとORを組み合わせると、何故かscreen_nameや表示名からヒットしないという技がありました。 @i OR -@iなどとする技もあったようですね。

原理は全く分かりませんがとにかくそう動いてました。

そしてそれを、 brookhong/Surfingkeys: Map your keys for web surfing, expand your browser with javascript and keyboard. で以下のように開けるようにして解決していました。

mapkey("<Ctrl-Alt-;>", "エゴサーチ / Twitter", () => {
  tabOpenLink(
    "https://twitter.com/search?q=%22ncaq%22%20OR%20%22%E3%82%A8%E3%83%8C%E3%83%A6%E3%83%AB%22%20OR%20%22%E3%81%88%E3%81%AC%E3%82%86%E3%82%8B%22%20OR%20twitter.com%2Fncaq%20-from%3Ancaq%20OR%20%40ncaq_do_not_exist&f=live"
  );
});

Twitterの検索ハックが崩壊しました

それで割とうまく行ってたんですが、残念ながら最近(見た感じ2023-06-05ぐらいかな?)このハックが効かなくなってしまい、更にncaqをスクリーンネームに含むアカウントが活発に活動するようになって、完全にエゴサーチが崩壊しました。

Yahoo!リアルタイム検索を使ってみることにしました

結構困ったんですが、前から、 Yahoo!リアルタイム検索はTwitterの内容を検索してscreen_nameや表示名を含めないまともな仕様だと知っていたので、とりあえずこれを使ってみることにしました。

適当に入力してみたところうまく動かなかったので、リアルタイム検索でのさまざまな検索方法をちゃんと読んで入力してみました。

まず最初の罠が括弧で区切らないとOR検索にならないっぽいことですね。 ORでも出来てるんだか出来てないのか割と怪しい。マイナス検索を組み合わせると何も引っかかりません。

なのでまず自分のツイートを-id:ncaqで除外して、自分へのリプライも入れてみましょう。呼称と引用ツイートと自分のサイトのドメインを列挙します。

するとクエリはこうなりました。

-id:ncaq (@ncaq ncaq エヌユル えぬゆる URL:twitter.com/ncaq URL:ncaq.net)

Yahoo!リアルタイム検索の挙動も結構怪しい

URL:twitter.com/ncaqを指定することで私宛の引用リツイートは対象に引っかかるはずです。実際に一部は引っかかるのですが、かなりの数の最近の引用リツイートが何故か引っかかりません。

マイナス指定を外してみたのですが、やはり引っかかりません。

Yahoo!リアルタイム検索に渡されているTwitterのデータがどういうものかは分かりませんが、とにかく何か限界があるのか、齟齬があるようです。

まあ引用ツイートはTwitter公式で通知されるから、逆に引っかからないことを前提に外しても良いのかもしれませんが。

サードパーティゆえの限界

非公開アカウント(鍵アカウント)の検索は自分がフォロー出来てても当然出来ません。

またTwitterでミュートしているアカウントもお構いなしです。

一応Yahoo!にログインすれば独自にミュート出来るらしいですが、変に突っかかってくるやつをTwitter上で除外してもう一度除外するのは面倒くさいですね。

Twitterは検索をまともにしてくれ

ここから単なる愚痴です。

screen_nameや表示名を何故検索結果に含めるのか理解に苦しみます。

いやライトユーザはユーザを検索するのにユーザ名でアプリから検索しそうだから、ユーザ検索の他に引っ掛けたいというのは分かります。

しかしあんなに検索オプションがあるのですから、ユーザ名を引っ掛けないぐらいのオプションがあっても良いではありませんか。

別にエゴサーチに限った話ではなく、作品名で調べるとかなり困るんですよね。

高度な機械学習アルゴリズムでおすすめ検索を作って、作品名を入れない奥ゆかしいイラストを載せたツイートなども出てくるのは凄いとは思います。しかしもっと単純にやれることがあるのではないでしょうか。

何故ユーザ名を入れないという単純にフィルタ条件で出来そうな簡単なオプションを入れないのか、私にはよく分かりません。検索はキャッシュサーバをかなり活かしているようなので(たまにキャッシュサーバがぶっ壊れて検索が機能しなくなるので)、オプションが増えるとキャッシュヒット率が低くなるのかなと想像はつきます。しかしミュートやブロックしているアカウントを非表示に出来るのですから、クライアントサイドで非表示にすれば良いのではと思ってしまいます。

そもそも現状では検索すると一番上に関連ユーザ一覧がズラッと並ぶのですから、ライトユーザ相手でもそれで十分なのではないかと思います。

何故かTweetDeckだとまだ使える

書き終わってふと開いてみて気がついたのですが、何故かTweetDeckだと存在しないアカウントのOR指定でのユーザ名の検索のハックまだ使えるんですね。なんで…?

2023-07-13追記: TweetDeckでも使えなくなってました

TweetDeckのリニューアルの影響か、こちらでも検索クエリでユーザ名を弾く方法は使えなくなっていました。