twitterでミュートするワードを一括登録するスクリプト
twitterでミュートするワードを一括登録するスクリプト
twitterでミュートするワードを一括登録したくなったので、調べてすこしCodeを修正しました。
やり方:ミュートしたいワードが日本語の場合
①keywords のところをコピペして任意の日本語に入れ替えます。
const delayMs = 500 //動作が速すぎると感じる場合は、これを変更します。
//日本語
const keywords = `あまり大きな声で言えないのですが
あまり知られてないのですが
ありえない
あんまり言いたくないけど
いい加減にしてほしい
いい歳してお恥ずかしいのですが
悪用厳禁なのですが
安心してください
言いたくない過去を言うと
言わせてください
今だから言えることですが
意外かもしれないけど
意外と重要なんですが
意外と知られてないけど
一度しか言いません
嘘のようで本当の話
嘘じゃないですよ
炎上覚悟で言います
覚えておいてください
驚いています
驚くかもしれませんが
多くの人が勘違いしてるんですが
怒ってます
ここだけの話ですが
この際ハッキリ言いますが
ごめんなさい
これ、超大事
これから大切なことを言います
これスゴい!
これだけは何回も言いますが
これだけは言っておきたいんですけど
これだけは知っておいて欲しい
これだけは聞いて欲しい
これにはマジで驚いた
これはわりと真実だと思うんですが
これはわりと真面目なアドバイスなんですが
これはわりと盲点なんですが
これは永久保存版です
これは控えめに言って有益です
これは持論ですが
これ読まないと損します
これは内緒なんですが
これまでの人生で学んだこと
これらは結構ウソなんですが
これ言ったら炎上するかもしれないけど
これ信じられます?
これ大事。テストに出るよ
これ知ってますか?
ご存じかと思いますが
隠しておこうと思ったのですが
我慢できなかった
本当に悔しい
確信しました
勘違いしてる人が多いですが
勘違いしてました
完全にわかった
完全に舐めてた
感謝!
今日は言わせてください
嫌われる覚悟で言うけど
肝に銘じて欲しいのですが
危険です
気づいてしまった
興奮してます
結局のところ
厳しいことを言うけど
誤解です
告白します
声を大にして言います
悲しいことに
しつこく言ってるけど
ズバリ言いますが
それ間違ってます
残念なことに
残酷かもしれませんが
実は…
重要なこと言います
衝撃的な事実
信じられない
信じられる?
正直に言うと
正直ムカついた
絶対に忘れないで欲しい
絶対に知っておいて
宣言します
損してませんか?
知らないと損
知りたくない現実を言います
黙ってましたが
辛かった
大事だから何度も言います
大切なことを伝えます
単刀直入に言います
超重要なことなんですが
超有料級です
ぶっちゃけます
僕をフォローするメリットは
本気で聞いて欲しい
有益なことを言います
朗報です`.split(/\r\n|\n/)
const nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value').set
const addMutedKeyword = (keyword) => {
const input = document.querySelector("[name='keyword']")
nativeInputValueSetter.call(input, keyword)
input.dispatchEvent(new Event('input', { bubbles: true }))
document.querySelector("[data-testid='settingsDetailSave']").click()
}
const delay = () => {
return new Promise((res) => setTimeout(res, delayMs))
}
keywords.reduce(async (prev, keyword) => {
await prev
document.querySelector("a[href='/settings/add_muted_keyword']").click()
await delay()
addMutedKeyword(keyword)
return delay()
}, Promise.resolve())
②Twitter の 「https://twitter.com/settings/muted_keywords」まで移動する

③上記①をコピペして、ブラウザ(クロム)のコンソールに張り付ける
ブラウザ(クロム)のコンソールはF12を押してでてきます。
ここの「コンソール」タブをクリックしてください。

上記①をコピペして、コンソールの下の方にマウスカーソルを合わせてワンクリックし、張り付け、Enterすれば、自動でスイスイ登録されていきます。
.gif?table=block&id=1dd8ff86-d141-4a70-9009-4e1f7288be7c&cache=v2)
なお、Firefoxの場合は「allow paste」が必要なようです。
参考:https://servercan.net/blog/2020/05/twitter-ミュートキーワードの隠し語と連投登録/
英語の場合
なお、英語の場合「.split(/\W+/);」部分が異なります。
改行した文字列を配列に変換するときに、英語と日本語でやり方が違うようです。
日本語と英語が混ざった形でkeywords に設定できたら楽だったのですが、時間オーバーしたので、またの機会に。
const delayMs = 500 //動作が速すぎると感じる場合は、これを変更します。
const keywords = `ActivityTweet
generic_activity_highlights
generic_activity_momentsbreaking
RankedOrganicTweet
suggest_activity
suggest_activity_feed
suggest_activity_highlights
suggest_activity_tweet
suggest_grouped_tweet_hashtag
suggest_pyle_tweet
suggest_ranked_organic_tweet
suggest_ranked_timeline_tweet
suggest_recap
suggest_recycled_tweet
suggest_recycled_tweet_inline
suggest_sc_tweet
suggest_timeline_tweet
suggest_who_to_follow
suggestactivitytweet
suggestpyletweet
suggestrecycledtweet_inline`.split(/\W+/);
const nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value').set
const addMutedKeyword = (keyword) => {
const input = document.querySelector("[name='keyword']")
nativeInputValueSetter.call(input, keyword)
input.dispatchEvent(new Event('input', { bubbles: true }))
document.querySelector("[data-testid='settingsDetailSave']").click()
}
const delay = () => {
return new Promise((res) => setTimeout(res, delayMs))
}
keywords.reduce(async (prev, keyword) => {
await prev
document.querySelector("a[href='/settings/add_muted_keyword']").click()
await delay()
addMutedKeyword(keyword)
return delay()
}, Promise.resolve())
参考にした記事
https://servercan.net/blog/2020/05/twitter-ミュートキーワードの隠し語と連投登録/
https://gray-code.com/javascript/concatenate-arrays/
https://itsakura.com/javascript-split