開発10.Xアーカイブ分析ツールで、フォロワーとの関係を無料で見える化!

こんにちは!うららです!

今回は、ゲームじゃなくてツール制作にチャレンジしてみました!

作ったのはX分析ツール。

iOSストアでアプリDLしようとしたら、なぜかDLできなかったんです(Wi-Fiのせい・・・?)

そこでふと思ったのは、X分析ができるツールってほとんどが有料のものだってこと。

「じゃあ無料で作っちゃお!」が今回のツール開発に着手した理由です。

作品

Xアーカイブ分析ツール(React + TypeScript + Vite)

ジャンル:SNS分析ツール

機能:フォロワー分析、 Markdown・CSV・JSON出力 etc.

制作の目的

今回の目的は「無料で使えるフォロワー管理ツール」。

  • 相互フォロワー
  • 片思い
  • 片思われ

こういったフォロワーとの関係がすぐにわかるものです。

全員フォロバしたつもりでも漏れがあったり、中にはフォローされた瞬間に解除する方もいると聞きます。

しかし、それを一覧から見つけるのは難しい時もありますので、ツールがあると便利ですね。

プレミアム会員が見れるアナリティクスでもその情報をみることはできず、原則としてX APIを使わねばなりません。

外部ツールによっては、凍結されるリスクもあります。

やったこと

1.リサーチ

そこで、わたしは「X APIを使う以外にフォロー/フォロワー情報を取得する方法はないか?」と調べてみたところ、見つかったのが「X公式アーカイブ」を使うもの。

「それだ!」と決めたのですが、一つ落とし穴がありました。

公式アーカイブの取得は、毎日できるものではなく、申請しないといけないのです。

ダウンロードできるまで24時間くらいかかりました。

(取得期間の目安としては月1くらい?とAIたちが言っています)

2.実装

アーカイブを待っている間に実装していきました。

コア機能は

・相互フォロー ・片思い(自分だけがフォロー) ・片思われ(相手だけがフォロー)

たったこれだけのシンプルなものです。

シンプルイズベスト(!?)

開発学習プロジェクトの目的は「小さくても動く」です。

まさに小さいけれども動くシンプルなツールがつくれました(一瞬で)

……これじゃあ、物足りない💦

3. ブレスト

しばらくAIと壁打ち。

内容は「そもそも公式アーカイブ」とはなんだ!?です。

説明は難しいのですが、X内のデータが大量に入っていました。

過去に投稿した画像データもあります。(なんか恥ずかしい)

黒歴史もしっかりと記録をされているわけです‥‥

そして

「プレミアムアナリティクスでは見れない機能をつける」

と決めました。

私はXはプレミアムユーザー(有料会員)です。

有料会員になっているとX管理画面からアナリティクスが見れるのですが、それと被っていたらつまらない。

4.実装②③

そこで目を付けたのは、公式アーカイブの「興味関心」

・・・おそらく、この興味関心データをもとにアルゴリズムがおすすめしたりされたりしているんじゃないかと。

このデータはアーカイブならではのものです。

これを何かに活かせないかな?と思ったときに思いついたのは、「自己分析」的なものでした。

たとえば、

  • 2回分のデータを取得して、差分を見れば、その間に増えた新しい興味・消えた興味などがわかる(かもしれない)
  • 興味関心データと自分の投稿内容を比較すると、興味はあるけど表には出ていないものがわかる(かもしれない)

こんなことを考えてみたのですが、よくよく興味関心データを見返してみると、全然関係ないものも入っている。

セブンイレブンとかAKB48とか・・・。

「そういう投稿も見たかもしれないけれどもさ……」

基準のわからない興味関心データを使うことは却下し、その代わりに「いいねしたテーマ」「投稿したテーマ」などを使用してみることにしました。

このロジック自体があっているのかどうか分かりませんが、自分のデータを見たところだと、「うーん…まちがいじゃないかな」というくらいの精度まで出すことができました。

そんなことを考えながら、第二弾・第三弾と機能を追加していったのです

第三弾実装終了後

機能一覧

第三弾実装分までの機能を取り上げてみました

第一弾(初期版)

  • X公式アーカイブZIPの取り込み機能
  • フォロワー・フォロー比較画面(単一分析・比較分析)
  • 基本的な投稿分析・自己分析・交流した人分析
  • Markdown と CSV 出力

初期版のメインはフォロワー分析。

相互フォローや片思い、片思われの見える化に加え、2回分のアーカイブデータを比べると、その間に増えた人・減った人が分かる「比較分析」をつけました。

さらにそれらのデータをMarkdownとCSV出力できるようにもしました。

※ちなみにアーカイブはJSONファイルなので人間にとっては読みにくい

第二弾(拡張版)

  • AI用レポート画面の追加
  • ダッシュボード画面の追加
  • X側の興味推定機能
  • 出力ファイルの整理

第二弾は、先ほど書いた興味推定機能を取り入れました。

ダッシュボードを作成し、AI用レポートもつけてみました。

AI用レポートというのは、ChatGPTなどに読み込ませやすいように、自分の基本データをMarkdown出力やコピーができるようにしたものです。

そのデータを読み込ませて「私のアカウントを分析して」ってChatGPTなどに頼みやすくなっています。

Xは、Grok以外のAIからはデータの取得をすることができません。

今までは、Grokにまとめてもらったり自分で説明したりする必要があったのです。

第三弾(深掘り版・今回完了)

第三弾は、実装に入る前には、おなじみのブレストタイムをとりました。

私が取り入れてみたい機能を、ごちゃごちゃとClaudeCodeに向かって投げまくります。

その中から - 私が特にやりたいと思っていることを整理 - 実装難易度が高いものを除外 - 同じ機能にできるもはくっつける

などして、整理をしてもらいました。

そして、6フェーズ15ステップに分けて、段階的に実装しました。

Phase 1: データ型と設定土台 - 第三弾の型を追加 - 標準設定ファイル(正規化テーブル、投稿タイプ分類辞書、関係性スコア重み)を作成

Phase 2: 投稿分析 - 投稿タイプ分類(宣伝・交流募集・成果・進捗・学び・日常報告など9種類) - ランキング2系統化(リポスト順TOP10 / 総反応順TOP10) - 勝ち筋比較・伸びる投稿の共通点抽出

Phase 3: 自己分析 - 表記ゆれ正規化(AI / AI / 人工知能 を同じ語として扱う) - 関心ギャップ3分類(投稿で少ない / 投稿は多いが反応が弱い / 全層共通の核)

Phase 4: 交流した人分析 - 多軸集計(リプライ・メンション・引用回数) - 関係性スコア(頻度・最近度・双方向性・継続性を0〜100で算出) - 双方向交流ランキング

Phase 5: 画面分離と保存 - インポート専用ページの分離 - 履歴ページ(IndexedDB によるスナップショット保存) - 設定ページ(正規化テーブル・分類辞書・重み付けの表示、表示テーマ切替)

Phase 6: 出力と仕上げ - Markdown・AI用Markdown・JSON に第三弾項目を反映 - 全体テスト・ビルド確認(42テスト全成功) - 断定表現の自動チェックテスト追加

完成時点の状態

  • 第三弾実装プランの必須項目すべて実装済み
  • 画面:ホーム / インポート / 単一分析 / 比較 / 投稿改善 / 自己分析 / X側の興味推定 / 交流した人 / AI用レポート / 履歴 / 設定 の11画面
  • 出力:Markdown / AI用Markdown / JSON / CSV の4形式
  • 履歴:解析結果を IndexedDB に自動保存、一覧表示可能
  • 設定:正規化テーブル・分類辞書・スコア重みの表示、テーマ切替(Light / Dark / System)
  • 第三弾完了後の改善修正としてモード切替時のデータ消失と履歴復元の2バグも対応中

未作業・今後やってもよいこと

第三弾完了時点で「次に検討する」と決めた項目が下記です。

  • 双方向性スコア軸の扱い(削除 / 再定義 / プレースホルダ)の判断
  • 履歴の容量管理(件数上限・削除UI・履歴名編集)
  • calculateRelationshipScore の保険コード整理
  • 投稿の役割分析・隠れ関心ランキング・リスト追加候補(第三弾任意項目から先送り)
  • AI用レポートのプロンプト分離
  • 設定ページからの辞書編集機能
  • 第四弾以降の検討項目:画像カード生成 / X API連携 / AI API連携 / インプレッション取り込み / DM分析 / 長期関心変化グラフ

評価

※Codexによる評価です。

  • 完成度:非常に高い。実用ツールとして自分で使える状態。第三弾仕様の必須項目はすべて満たしている
  • 学習効果:非常に高い。仕様書・設計書・実装プランの分離、フェーズ分解、Codex / ClaudeCode 役割分担、TypeScript の型設計、IndexedDB、自動テスト、「推測しない」方針の運用など、これまでにない深い学びがあった
  • 制作実感:非常に高い。ゲームではない実用ツールを最後まで仕上げきった。自分が日常的に使えるものを作れた

学んだこと

  • 大きめのツールは、必ず仕様書・設計書・実装プランの3点セットを先に作る
  • フェーズ・ステップ単位で進め、1セッションで完了できる粒度にする

この分析ツールの開発を通じて、自分の開発フローがやっと、それっぽくなってきた気がしました。

仕様書や設計書、実装プランなどを作成したり、ステップ分けしておくことです。

開発を始めた一番最初は、「これ作って」と依頼して、思いついたまま「これも作って」と伝えていくものでした。

計画性まま、機能をつけ足していくとそのうち壊れていくことに気がついたのです。

それ以降は必ず、

  • 企画要件書
  • 仕様書
  • 設計書
  • 実装プラン

などと、やりたいこと(企画要件)から少しずつ変換して細分化していくようになりました。

また、ステップやフェーズを事前に計画してから着手することにより、「何を目的としているか」「何を作っているか」などがわかり事故りにくくもなりました。

迷わず効率よく進めるようになり、開発スピードも上がりました。

(おかげで今度はAIのレート制限に悩まされています)

振り返り

第三弾まで実装した結果、「小さくても動く」という開発学習プロジェクトとしては、ここまで。

単独プロジェクトとして進めていくことにしました。

すでに「小さい」の領域を超えてしまっていると判断したからです。

しばらく寝かせてから第四弾、第五弾とさらに大きくしていくことにします。

【追記】

X分析ツール(α版)を公開してみました!