XからAIトレンドを自動収集!週報生成パイプライン
数年前まで、私たちの朝のルーティンはシンプルだった。コーヒーを淹れ、TwitterのタイムラインやRSSを流し見すれば、業界の熱気や最先端のツールが自然と目に飛び込んできた。しかし、プラットフォームが「情報の壁」を高く築き上げた今、息をするように行っていたトレンドの収集は、驚くほど摩擦の多い作業になってしまった。
特にAI領域の進化は日進月歩だ。X(旧Twitter)の海に沈む一握りの砂金——実用的なプロンプト、新しいワークフロー、鮮やかなハック——を拾い集めるには、アルゴリズムが押し付けるノイズを掻き分け、高額化・制限化されたAPIの壁と戦わなければならない。タイムラインをただ「眺める」だけでは、本当に価値のある情報を取りこぼす時代なのだ。
「X APIを絶対に使わない」という強烈な設計思想
この息苦しいエコシステムに対して、痛快なカウンターパンチを放つリポジトリを見つけた。koffuxu氏が公開している「ai-influence-digest」だ。指定したXアカウントの過去7日間の発信をスキャンし、クリエイターにとって即効性のある高価値な情報だけを抽出し、週報として出力する自動化パイプラインである。
このリポジトリのコードを読み解き始めたとき、私は思わずニヤリとしてしまった。READMEの「前提と制約」のトップに、太字でこう明記されていたからだ。
「絶対禁止使用 X API」
イーロン・マスク体制下でAPIの仕様変更と価格高騰に振り回されてきた開発者にとって、この宣言は一つの最適解だ。では、どうやって情報を取得するのか。作者が選んだのは、Google検索(opencli)で対象アカウントの最近のツイートURLを洗い出し、そのURLをJina AIのReader API(r.jina.ai)に食わせるという、非常に泥臭くもクレバーな経路だった。
| アプローチ | メリット | デメリット |
|---|---|---|
| 公式 X API | リアルタイム性が高く、メタデータが豊富 | 無料枠の制限が極めて厳しく、従量課金が高額 |
| Google + Jina API (本ツール) | 完全無料。APIの利用枠やキー管理に縛られない | 検索インデックスに依存するため遅延・取りこぼしがある |
Jina Readerは、任意のURLをLLM(大規模言語モデル)が解釈しやすいクリーンなMarkdownに変換してくれる強力なエンドポイントだ。これを利用することで、複雑なDOM解析やヘッドレスブラウザのメンテナンスから解放される。
# Jina Readerを用いたツイート本文取得の概念コード
import requests
tweet_url = "https://x.com/koffuxu/status/123456789"
jina_url = f"https://r.jina.ai/{tweet_url}"
response = requests.get(jina_url)
print(response.text) # LLMフレンドリーなテキストが返る
収集から配信までを貫く、実利主義のワークフロー
本ツールの真価は、スクレイピングのハックにとどまらない。情報を集めた「後」のプロセスが、コンテンツクリエイターの現場のペインを深く理解して設計されている点にある。
収集された生データは、まず candidates.json とMarkdown形式のリストに出力される。ここで人間がサッと目を通し、本当に価値のあるものだけをピックアップする。AIにすべてを丸投げするのではなく、「目利き」という人間の得意領域をプロセスの中央に残しているのが心憎い。
そして最終的に残った情報を週報のMarkdownにまとめ上げるのだが、パイプラインはここで終わらない。PlaywrightとJinja2テンプレートを内包したスクリプトが走り、Markdownを「小紅書(RED)」やInstagramライクな複数枚の画像ポスターへと一発でレンダリングしてくれるのだ。Telegramのチャンネル、Notion、あるいは社内のSlackへ。文字の羅列ではなく、視覚的に消費しやすいフォーマットで配信するまでが一つのコマンドで完結する。
プラットフォームの壁を越えるハッカー精神
「ai-influence-digest」は、単なる情報収集スクリプトではない。プラットフォームが門を閉じ、APIという名の通行料を要求する現代において、公開されたWebの仕組みを組み合わせることで、自分だけの「情報の蒸留所」を構築できるという鮮やかな証明だ。
壁が高くなればなるほど、エンジニアはよりしなやかな梯子を架ける。その営みこそが、テック業界の変わらない面白さなのだ。
参考リポジトリ: koffuxu/ai-influence-digest
Photo by Antonio Vivace on Unsplash