【無料利用可】X(旧Twitter)フォロー自動解除ツールの利用方法

はじめに
X(旧Twitter)でフォロー中のユーザを整理するために一括でフォローを解除したいと考えたことはありませんか?
X公式では一括でフォローを解除するような機能は提供されておらず、手動で一つ一つフォローを解除するのは非常に時間がかかり、手間がかかる作業かと思います。
また、ツールを利用するにも一日の利用制限があったり有料である場合がほとんどです。
今回は「ブックマークレット」という機能を使用して、Xのフォローを自動で解除する方法を紹介します。

ブックマークレットはブラウザ上で動作するため、専用ソフトのインストールは不要です。


本ツールは無料で提供しております。ご自由にお使いください。
また、本ツールを紹介したところご利用いただいた方からのご要望があり、さらに使いやすいカスタマイズを行いました。
こちらもぜひご覧ください。
ブックマークレットとは?
ブックマークレットは、ちょっとした自動化をしてくれる小さなプログラムです。
通常のブックマーク(お気に入り)と同じように、ブラウザ(Chrome・Safari・Edgeなど)に登録できます。
ブックマークレットをクリックすると、「お気に入りのページに移動する」のではなく、
現在見ているページで、登録されたプログラムがすぐに動作します。
下記のような操作が可能です:
- ページの背景を変える
- 自動でボタンをクリックする
- 特定の情報を集める など

ブックマークレットはブラウザ上で動作するため、専用ソフトのインストールは不要です。
本ツールの利用方法
まず、利用しているPC上でGoogle Chromeブラウザを開き、ブックマークバーの空白の部分を右クリックし、「新しいブックマーク」または「ページを追加」をクリックします。
下記ボタンをブックマークバーにドラッグ&ドロップしてください。
ブックマークが作成されます。

作成されたブックマークを右クリックし、[編集]をクリックします。
名前:任意の名前
URL:そのまま
で保存をクリックします。
上記でうまくいかない場合は?
上記のドラッグ&ドロップでうまくいかない場合は、直接コードを貼り付けてブックマークレットを作成してください。
ブックマークバーを右クリックし、[ページを追加]をクリックします。
名前:任意の名前
URL:下記コードをコピーの上貼り付け
javascript:(function(){function n(c,d,h){function e(){for(var g=document.querySelectorAll("button[aria-label]"),k=!1,f=0;f<g.length;f++){var a=g[f].getAttribute("aria-label");if(a&&a.startsWith("\u30d5\u30a9\u30ed\u30fc\u4e2d")){a=g[f].parentElement;for(var l=0;4>l;l++)a&&(a=a.parentElement);if(a&&a.querySelector('div[data-testid="userFollowIndicator"]')&&c)console.log("userFollowIndicator\u304c\u898b\u3064\u304b\u3063\u305f\u305f\u3081\u3001\u3053\u306e\u30dc\u30bf\u30f3\u3092\u30b9\u30ad\u30c3\u30d7\u3057\u307e\u3057\u305f");else{g[f].scrollIntoView();g[f].click();k=!0;setTimeout(function(){var m=document.querySelector('button[data-testid="confirmationSheetConfirm"]');m?(m.click(),console.log("\u78ba\u8a8d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3057\u305f")):console.log("\u78ba\u8a8d\u30dc\u30bf\u30f3\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f")},h);b++;break}}}k&&b<d?setTimeout(e,h+1E3):b>=d?console.log("\u6307\u5b9a\u3055\u308c\u305f\u7e70\u308a\u8fd4\u3057\u56de\u6570\u3092\u51e6\u7406\u3057\u307e\u3057\u305f\u3002"):console.log("\u3059\u3079\u3066\u306e\u30d5\u30a9\u30ed\u30fc\u4e2d\u30dc\u30bf\u30f3\u3092\u51e6\u7406\u3057\u307e\u3057\u305f\u3002")}var b=0;e()}(function(c){var d=document.createElement("div");d.innerHTML=%27\n <div id="customDialog" style="position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background-color: #f9f9f9; padding: 20px; border-radius: 10px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); width: 300px; z-index: 9999; font-family: Arial, sans-serif;">\n <h3 style="text-align: center; color: #333;">\u8a2d\u5b9a\u30aa\u30d7\u30b7\u30e7\u30f3</h3>\n <div style="margin-bottom: 15px;">\n <label style="color: #555;">\n <input type="checkbox" id="skipUserFollowIndicator" style="margin-right: 10px;" />\n \u30d5\u30a9\u30ed\u30fc\u3055\u308c\u3066\u3044\u308b\u30a2\u30ab\u30a6\u30f3\u30c8\u306f\u30b9\u30ad\u30c3\u30d7\u3059\u308b\n </label>\n </div>\n <div style="margin-bottom: 15px;">\n <label style="color: #555;">\u7e70\u308a\u8fd4\u3057\u56de\u6570\u3092\u5165\u529b:</label>\n <input type="number" id="repeatCount" value="5" style="width: 100%; padding: 8px; margin-top: 5px; border: 1px solid #ccc; border-radius: 5px; box-sizing: border-box;" />\n </div>\n <div style="margin-bottom: 20px;">\n <label style="color: #555;">\u5f85\u6a5f\u6642\u9593\u3092\u79d2\u5358\u4f4d\u3067\u5165\u529b:</label>\n <input type="number" id="waitTimeInSeconds" value="5" style="width: 100%; padding: 8px; margin-top: 5px; border: 1px solid #ccc; border-radius: 5px; box-sizing: border-box;" />\n </div>\n <button id="confirmButton" style="width: 100%; padding: 10px; background-color: #007BFF; color: white; border: none; border-radius: 5px; cursor: pointer; font-size: 16px; margin-bottom: 10px;">\n \u958b\u59cb\n </button>\n <button id="closeButton" style="width: 100%; padding: 10px; background-color: #6c757d; color: white; border: none; border-radius: 5px; cursor: pointer; font-size: 16px;">\n \u9589\u3058\u308b\n </button>\n </div>';document.body.appendChild(d);document.getElementById("confirmButton").addEventListener("click",function(){var h=document.getElementById("skipUserFollowIndicator").checked,e=parseInt(document.getElementById("repeatCount").value,10),b=parseInt(document.getElementById("waitTimeInSeconds").value,10);isNaN(e)||isNaN(b)||0>=e||0>=b?alert("\u6b63\u3057\u3044\u6570\u5024\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002"):(b*=1E3,document.body.removeChild(d),c({skip:h,repeatCount:e,waitTime:b}))});document.getElementById("closeButton").addEventListener("click",function(){document.body.removeChild(d)})})(function(c){n(c.skip,c.repeatCount,c.waitTime)})})();
[保存]をクリックして保存します。
ブックマークレットの実行方法
次にX(https://x.com)の[プロフィール]>[フォロー]からフォロー画面へ移動します。
フォロー画面へ移動したら、作成したブックマークレットをクリックします。
クリックすると下記のような画面が表示されます。
各設定項目を入力して[開始]をクリックすると処理が開始します。

実行すると、フォロー解除画面が表示され、待機時間ごとにフォローを解除し、画面をスクロールしていきます。
途中停止したい場合にはブラウザの更新を行ってください。
利用時の注意事項
Xのアプリでは実行不可
本機能はSafariやChromeなど、ブラウザのブックマークレット機能を使用しているため、iOS/Android等のアプリからは実行ができません。
必ずsafariやChromeのブラウザ上からXを検索、アクセスの上実行してください。
本ツールはPC版Chrome、iPhoneのSafariで動作を確認済みとなります。
Xの仕様変更による影響
X(旧Twitter)は定期的にインターフェースや機能の変更を行います。
このため、ブックマークレットが依存している要素や属性(例:ボタンのaria-label
)が変更されることがあります。
仕様変更によって、ブックマークレットが正しく動作しなくなる可能性があります。
(※2024年10月時点で動作確認済みです。)
アカウントの利用制限:
フォロー解除を一括で実施する際、短時間に多くのリクエストを承認すると、アカウントが制限される可能性があります。
実行の際には十分な時間間隔を空け、段階的に実施するようにしてください。
本ツールにおけるあらゆる損害について、一切の責任を負いかねますのでご了承ください。
ページの読み込み状態:
ブックマークレットを停止する際にはブラウザの更新を行ってください。ブラウザを閉じたり、PCがスリープモードに入ると動作が止まる可能性があります。
2025/1/16追記:改良版について
無料版をご利用いただいた方からのご要望があり、さらに使いやすいカスタマイズ版を作成しました。こちらもぜひご覧ください。
カスタマイズの依頼について
「本記事の紹介内容をもっと自分用にカスタマイズしたい・・・」
「設定がうまくいかず依頼したい・・・」
「別のツールの作成依頼をしたい・・・」
上記ご要望について、ココナラというサービスにて承っております。

相談は無料ですのでぜひお気軽にご相談ください!
下記のプロフィールページ、[見積もりの相談をする]からご相談ください。