trend-pulse オープンソース公開:15の無料トレンドソース、APIキー不要、AIエージェント向け
15の無料ソースからリアルタイムトレンドを集約するPythonライブラリをオープンソース公開。CLI、Pythonライブラリ、MCP Serverとして利用可能。特許ベースのコンテンツスコアリングガイド付き。
trend-pulse をオープンソースとして公開します — 15のソースからリアルタイムトレンドを取得する無料のトレンドアグリゲーターです。APIキーは一切不要。Pythonライブラリ、CLIツール、またはClaude Code向けMCP Serverとして利用できます。
GitHub: github.com/claude-world/trend-pulse
PyPI: pip install trend-pulse
なぜこのツールが必要か
AI搭載のコンテンツツール、ソーシャルメディア自動化、市場調査パイプラインを構築する場合、トレンドデータが必要です。しかし現実は:
- Google Trends API は公式に存在しない(非公式スクレイパーは頻繁にブロックされる)
- Twitter/X API は基本アクセスだけで月額$100以上
- Reddit API は2023年にサードパーティアクセスを大幅制限
- ほとんどのトレンドAPIは有料かOAuth設定が必要
trend-pulseはこの問題を解決します:15の無料ソース、認証ゼロ、統一API。
15ソース、APIキー不要
すべてのソースが公開API、RSSフィード、またはオープンプロトコルを使用。APIキー不要、OAuth不要、レートリミットの心配も不要。
| ソース | タイプ | 最適な用途 |
|---|---|---|
| Google Trends | RSSフィード | 国別検索トレンド |
| Google News | RSSフィード | 速報ニュース |
| Hacker News | Firebase + Algolia | 開発者/テック話題 |
| Public JSON | 一般的な人気シグナル | |
| Mastodon | Public API | オープンソースコミュニティ |
| Bluesky | AT Protocol | 新興ソーシャルトレンド |
| GitHub | Trending page | 開発ツール、リポジトリ |
| Stack Overflow | Public API | 技術的な質問 |
| Wikipedia | Pageviews API | 時事、人物 |
| PyPI | pypistats.org | Pythonエコシステム |
| npm | Downloads API | JavaScriptエコシステム |
| dev.to | Public API | 開発者記事 |
| Lobste.rs | JSON API | 厳選テックニュース |
| CoinGecko | Public API | 暗号通貨トレンド |
| Docker Hub | Public API | コンテナの人気度 |
すべてのソースが正規化スコア(0-100)を返すため、プラットフォーム間で比較可能です。
3つの使い方
1. CLI — クイックトレンドチェック
# 今何がトレンド?(15ソース、統合ランキング)
trend-pulse trending
# 日本のトレンド(Google + Hacker News)
trend-pulse trending --sources google_trends,hackernews --geo JP
# キーワード検索
trend-pulse search "Claude Code"
# スナップショット保存で速度追跡
trend-pulse trending --save
trend-pulse history "React" --days 7
2. Pythonライブラリ — 独自ツールの構築
import asyncio
from trend_pulse.aggregator import TrendAggregator
async def main():
agg = TrendAggregator()
# 15ソースの統合ランキング
result = await agg.trending(geo="JP", count=10)
for item in result["merged_top"]:
print(f"[{item['source']}] {item['keyword']} (スコア: {item['score']})")
# クロスソース検索
result = await agg.search("AI agent")
for item in result["merged_top"][:5]:
print(f"{item['keyword']} — {item['direction']}")
asyncio.run(main())
3. MCP Server — AIエージェントに直接使わせる
これがtrend-pulseの真価を発揮する使い方です。Claude Codeの設定に追加:
{
"mcpServers": {
"trend-pulse": {
"command": "uvx",
"args": ["--from", "trend-pulse[mcp]", "trend-pulse-server"],
"type": "stdio"
}
}
}
これでClaude Codeが会話中で直接 get_trending()、search_trends() などの10個のMCPツールを呼び出せます。タブ切り替えもコピペも不要。
速度追跡
trend-pulseは「今何がトレンドか」だけでなく、どれくらいの速さで広がっているかも追跡します。
--save でスナップショットを保存すると、各トレンド項目に以下が付加されます:
{
"keyword": "Claude AI",
"score": 92,
"direction": "rising",
"velocity": 15.3,
"previous_score": 45.0
}
| 方向 | 意味 |
|---|---|
rising | スコアが急上昇中(velocity > 10) |
stable | 安定維持(-10 〜 10) |
declining | 勢いが落ちている(velocity < -10) |
new | 初めて検出 |
データはローカルSQLite(~/.trend-pulse/history.db)に保存。いつでもクエリ可能:
trend-pulse history "Claude" --days 30
コンテンツガイドツール(v0.3.2)
トレンドデータに加えて、trend-pulseにはAIエージェントがSNSコンテンツを作成するための5つのコンテンツガイドツールが含まれています。
コア設計原則:MCPが構造化ガイドを提供し、LLMがすべてのクリエイティブワークを行う。 テンプレート結合でも正規表現スコアリングでもない。ツールがフレームワークを提供し、AIがオリジナルコンテンツを作成。
5つのガイドツール
| ツール | 返すもの |
|---|---|
get_content_brief | 執筆ガイド:Hookの例、特許戦略、CTAの例 |
get_scoring_guide | 5次元評価フレームワーク:基準、グレード閾値 |
get_review_checklist | 品質ゲートチェックリスト:プラットフォーム準拠、エンゲージメントチェック |
get_platform_specs | プラットフォーム仕様:文字数制限、アルゴリズム優先度、最適投稿時間 |
get_reel_guide | Reelスクリプトガイド:シーン構成、タイミング、編集のヒント |
ワークフロー
1. get_trending() → ホットなトピックを発見
2. get_content_brief() → 執筆ガイドを取得
3. LLMがコンテンツ作成 → テンプレートではなくオリジナル
4. get_scoring_guide() → LLMが5次元で自己評価
5. スコア≥70まで修正 → 反復して品質向上
6. get_review_checklist() → 最終品質ゲート
7. get_platform_specs() → 各プラットフォーム向けに調整
特許ベーススコアリング
スコアリングフレームワークはMetaの公開された順位付け特許とシステムに基づいています:
| 次元 | 重み | 根拠 |
|---|---|---|
| Hook力 | 25% | EdgeRank Weight + Andromedaリアルタイムシグナル |
| エンゲージメントトリガー | 25% | Story-Viewer Tuple + Dear Algoアクティブシグナル |
| 会話持続性 | 20% | Threads 72時間マルチパーティ対話ウィンドウ |
| 速度ポテンシャル | 15% | Andromedaクロスプラットフォームシグナル処理 |
| フォーマットスコア | 15% | マルチモーダルコンテンツインデックス |
グレード:S(90+)、A(80+)、B(70+)、C(55+)、D(<55)。品質ゲートは総合≥70、会話持続性≥55が必要。
独自ソースの追加
trend-pulseは拡張可能に設計されています。新しいソースの追加は約30行:
from trend_pulse.sources.base import TrendSource, TrendItem
class MySource(TrendSource):
name = "my_source"
description = "カスタムトレンドソース"
requires_auth = False
async def fetch_trending(self, geo="", count=20) -> list[TrendItem]:
# データ取得ロジック
return [
TrendItem(
keyword="トレンドトピック",
score=85.0,
source=self.name,
url="https://example.com",
)
]
なぜこれを作ったのか
私たちはThreads、Instagram、Facebookに毎日投稿するソーシャルメディア自動化パイプラインを運用しています。毎日の流れは:
- 発見 — 自分たちのニッチ(AI、開発ツール、テック)で何がトレンドか
- 分析 — どのトピックにバイラルポテンシャルがあるか
- 作成 — 各プラットフォームに最適化されたコンテンツ
- 配信 — 複数アカウントへ投稿
ステップ1に複数ソースのトレンドデータが必要でした。Google Trendsスクレイパー(頻繁に壊れる)、Twitter API(高額)、各種「トレンドアグリゲーター」SaaS(無料枠が少ない)を試しました。
そこでtrend-pulseを自作:1つのライブラリ、15ソース、コストゼロ。
コンテンツガイドツール(ステップ2-3)は、テンプレートベースのコンテンツ生成が平凡で低品質な投稿しか作れないという観察から生まれました。「MCPがLLMをガイドする」アーキテクチャに切り替えた結果 — ツールが構造化フレームワークを提供し、AIがオリジナルコンテンツを作成 — 投稿品質がCグレード(〜60点)からAグレード(〜85点)に跳ね上がりました。
技術詳細
- 3,400行のPython(src)
- 117テスト、4テストモジュール
- 純Python — コア依存は
httpx+aiosqliteのみ - Async優先 — すべてのソースフェッチャーが非同期、並列実行対応
- SQLite履歴 — ローカルストレージ、外部DB不要
- バイリンガル — すべてのガイドツールが英語と繁体字中国語に対応
インストール
# コアのみ
pip install trend-pulse
# MCP Server付き
pip install "trend-pulse[mcp]"
# 全部入り(MCP + 強化版Google Trends)
pip install "trend-pulse[all]"
またはインストールなしでMCP Serverを実行:
uvx --from "trend-pulse[mcp]" trend-pulse-server
今後の予定
- ソース追加(Product Hunt、ArXiv、X/Twitterの公開メトリクス)
- トレンド相関分析(クロスプラットフォームのシグナル増幅を検出)
- Webhook通知(トレンド急上昇時にアラート)
- ダッシュボードUI
GitHub: github.com/claude-world/trend-pulse PyPI: pypi.org/project/trend-pulse License: MIT
役に立ったらStarをお願いします。PRも歓迎です。