Twitter社は「シャドウバンなんてありません」と堂々と言っているが、その意味は単に「その事象をTwitter社員はシャドウバンと呼ばない」というだけで「あるアカウントからの投稿をあらゆる検索結果から除外する」仕組みは実在する。
んで、シャドウバンの解除にはしばらく邪悪な投稿をしなければ良いと言う事が経験則として分かっている。
最近作った悪のボットはシャドウバンクラッシュを喰らいがちなので自動的にシャドウバン状態を検知し喪が明けるまで投稿を自粛、あるいは良い子な投稿のみ行う動作にしたい。
BANと違って投稿自体には成功するので見分けるには一工夫が要るようだ。
ブラウザから検索で「@from:TwitterのID」を行うと、通常のIDとシャドウバン喰らってる最中のIDで挙動が異なるとのこと

■品行方正な模範的市民のIDを使った検索例。プロフィールを先頭に過去の投稿が出る。
0119

■悪行三昧のスパマーBotのIDを使った検索例。彼奴については検索結果が無い事にされる。
0119b

なるほど。
恐らくTwitter APIで検索しても同じ結果が返ってくるのではなかろうか。
自動自粛機能実装はここに鍵があると思われる。


やってみた。
API経由で邪悪なIDからの投稿をサーチしてみたら普通に取得できてしまう…ぐぬぬ。となると例のチェックページをブラウザを自動操作して使うしか…。
$ python3 id_search.py
200
{
    "data": [
        {
            "id": "1483821836626722817",
            "text": "\u662d\u548c\u7279\u64ae\u306b\u3066\u5192\u982d\u306e\u30cf\u30a4\u30ab\u30fc\u306f\u8b66\u5099\u54e1\u3068\u4e26\u3073\u6b7b\u4ea1\u7387\u304c\u9ad8\u3044\u3002\n#\u30b8\u30e3\u30c3\u30ab\u30fc\u96fb\u6483\u968a"
        },
(略)
ちなみに凍結されたIDの投稿は流石に見えない模様
$ python3 id_search.py
200
{
    "meta": {
        "result_count": 0
    }
}