diff --git a/README.md b/README.md index b6b46cd..569c59b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,20 @@ # TikHub API Python SDK -English | [中文](README_CN.md) +

+ GitHub Stars + GitHub Forks + GitHub Issues + GitHub Pull Requests + License +

+ +

+ English | 中文 | Français | Español | 日本語 +

+ +

+ TikHub Banner +

The official Python SDK for the [TikHub](https://tikhub.io) social media data API — a unified REST API that provides real-time access to **16+ social media platforms** including TikTok, Douyin, Instagram, YouTube, Twitter/X, Xiaohongshu (Red Note), Bilibili, Weibo, Threads, LinkedIn, Reddit, Kuaishou, WeChat, Lemon8, Zhihu, and more. diff --git a/README_CN.md b/README_CN.md index b43edc2..af05ff1 100644 --- a/README_CN.md +++ b/README_CN.md @@ -1,6 +1,20 @@ # TikHub API Python SDK -[English](README.md) | 中文 +

+ GitHub Stars + GitHub Forks + GitHub Issues + GitHub Pull Requests + License +

+ +

+ English | 中文 | Français | Español | 日本語 +

+ +

+ TikHub Banner +

[TikHub](https://tikhub.io) 社交媒体数据 API 的官方 Python SDK — 统一的 REST API,可实时访问 **16+ 社交媒体平台**,包括 TikTok、抖音、Instagram、YouTube、Twitter/X、小红书、B站、微博、Threads、LinkedIn、Reddit、快手、微信、Lemon8、知乎等。 diff --git a/README_ES.md b/README_ES.md new file mode 100644 index 0000000..0e16783 --- /dev/null +++ b/README_ES.md @@ -0,0 +1,170 @@ +# TikHub API Python SDK + +

+ GitHub Stars + GitHub Forks + GitHub Issues + GitHub Pull Requests + License +

+ +

+ English | 中文 | Français | Español | 日本語 +

+ +

+ TikHub Banner +

+ +El SDK oficial de Python para la API de datos de redes sociales de [TikHub](https://tikhub.io) — una API REST unificada que proporciona acceso en tiempo real a **más de 16 plataformas de redes sociales**, incluyendo TikTok, Douyin, Instagram, YouTube, Twitter/X, Xiaohongshu (Red Note), Bilibili, Weibo, Threads, LinkedIn, Reddit, Kuaishou, WeChat, Lemon8, Zhihu, y más. + +Diseñado para desarrolladores, científicos de datos e ingenieros de IA que necesitan datos estructurados de redes sociales a escala — para **entrenamiento de IA**, **análisis de influencers**, **monitoreo de tendencias**, **análisis de sentimientos**, **investigación de mercado** e **inteligencia competitiva**. + +## ¿Por qué TikHub? + +- **Más de 1000 endpoints** en 16 plataformas con una sola clave API +- **Datos en tiempo real** — detalles de vídeos, perfiles de usuarios, comentarios, resultados de búsqueda, transmisiones en vivo, contenido en tendencia y análisis de e-commerce +- **RESTful y nativo de OpenAPI** — cada endpoint está documentado en la [especificación OpenAPI](https://api.tikhub.io/openapi.json) y se puede probar vía [Swagger UI](https://api.tikhub.io) +- **Integración MCP** — conecta agentes de IA (Claude, LangChain, Coze, n8n) directamente a los datos sociales vía [Model Context Protocol](https://tikhub.io) +- **Datasets disponibles** — más de 1000 millones de registros estructurados pre-recolectados para entrenamiento e investigación + +## ¿Por qué este SDK? + +- **Cobertura del 100%** — 1010 / 1010 endpoints de la especificación OpenAPI V5.3.2, generados y verificados mecánicamente +- **Sync + async** — clientes `TikHub` y `AsyncTikHub` con APIs idénticas +- **Listo para producción** — reintentos automáticos con backoff exponencial, manejo de límites de tasa, jerarquía de errores estructurada +- **Type-safe** — compatible con `mypy --strict`, construido sobre `httpx` + `pydantic v2` +- **Cero configuración** — kwargs simples, sin objetos de configuración; establece una variable de entorno y listo + +> **Versión:** `2.1.1` — Requiere Python 3.9+ + +## Plataformas soportadas + +| Plataforma | Recurso | Endpoints | +|---|---|---| +| TikTok | `tiktok_web`, `tiktok_app_v3`, `tiktok_creator`, `tiktok_analytics`, `tiktok_ads`, `tiktok_shop_web` | 200+ | +| Douyin | `douyin_web`, `douyin_app_v3`, `douyin_search`, `douyin_billboard`, `douyin_creator`, `douyin_xingtu` | 400+ | +| Instagram | `instagram_v1`, `instagram_v2`, `instagram_v3` | 80+ | +| YouTube | `youtube_web`, `youtube_web_v2` | 50+ | +| Twitter / X | `twitter_web` | 13+ | +| Xiaohongshu (Red Note) | `xiaohongshu_web`, `xiaohongshu_app` (+ variantes v2/v3) | 80+ | +| Bilibili | `bilibili_web`, `bilibili_app` | 40+ | +| Weibo | `weibo_web`, `weibo_web_v2`, `weibo_app` | 30+ | +| Threads | `threads_web` | 10+ | +| LinkedIn | `linkedin_web` | 10+ | +| Reddit | `reddit_app` | 10+ | +| Kuaishou | `kuaishou_web`, `kuaishou_app` | 20+ | +| WeChat | `wechat_channels`, `wechat_media_platform_web` | 20+ | +| Lemon8 | `lemon8_app` | 10+ | +| Zhihu | `zhihu_web` | 30+ | +| Otros | `toutiao_web`, `toutiao_app`, `xigua_app_v2`, `pipixia_app`, `sora2` | 30+ | + +## Instalación + +```bash +pip install tikhub +``` + +Requiere Python 3.9+. + +### Desde el código fuente + +```bash +git clone https://github.com/TikHub/TikHub-API-Python-SDK.git +cd TikHub-API-Python-SDK +pip install -e ".[dev]" +pytest -q +``` + +## Obtener tu clave API + +1. Ve a [https://user.tikhub.io/login](https://user.tikhub.io/login) y regístrate / inicia sesión. +2. Copia tu clave API desde el panel de control. +3. Establécela como variable de entorno o pásala directamente: + +```bash +export TIKHUB_API_KEY="YOUR_API_KEY" +``` + +## Inicio rápido + +```python +from tikhub import TikHub + +client = TikHub(api_key="YOUR_API_KEY") + +# 1:1 con la especificación OpenAPI — recurso = tag, método = basename de la ruta +video = client.douyin_web.fetch_one_video(aweme_id="7251234567890123456") +print(video.aweme_detail.desc) + +client.close() +``` + +O con el gestor de contexto recomendado: + +```python +with TikHub(api_key="YOUR_API_KEY") as client: + health = client.health_check.check() + print(health.status) +``` + +## Asíncrono + +```python +import asyncio +from tikhub import AsyncTikHub + +async def main(): + async with AsyncTikHub(api_key="YOUR_API_KEY") as client: + video = await client.douyin_web.fetch_one_video(aweme_id="...") + print(video.aweme_detail.desc) + +asyncio.run(main()) +``` + +## Configuración + +El constructor acepta un argumento obligatorio y algunos kwargs opcionales: + +```python +TikHub( + api_key=None, # str | None — por defecto $TIKHUB_API_KEY + timeout=30, # float | None — timeout total de la solicitud en segundos + base_url=None, # str | None — solo sobrescribir para un espejo privado + + # Avanzado (raro): + max_retries=3, + proxy=None, + user_agent=None, + parse_response=True, + http_client=None, # trae tu propio httpx.Client +) +``` + +## Reglas de nomenclatura + +El SDK se genera mecánicamente a partir de la especificación OpenAPI de TikHub. Dos reglas: + +1. **Atributo de recurso** = tag OpenAPI, en minúsculas, guiones -> underscores, `-API` eliminado. + `Douyin-Web-API` -> `client.douyin_web`. `TikTok-App-V3-API` -> `client.tiktok_app_v3`. +2. **Nombre del método** = el **último segmento de la ruta API, tal cual**. + `/api/v1/douyin/web/fetch_one_video` -> `client.douyin_web.fetch_one_video(...)`. + +Los nombres de parámetros coinciden exactamente con la especificación OpenAPI. + +## CLI + +```bash +export TIKHUB_API_KEY="YOUR_API_KEY" + +tikhub health # verificar conectividad de la API +tikhub fetch https://v.douyin.com/abc/ # analizador universal de URLs de vídeo +tikhub user info # plan + cuota +tikhub user usage # conteo de solicitudes de hoy +``` + +Todos los comandos imprimen JSON en stdout. + +## Licencia + +MIT. diff --git a/README_FR.md b/README_FR.md new file mode 100644 index 0000000..f0a596c --- /dev/null +++ b/README_FR.md @@ -0,0 +1,170 @@ +# TikHub API Python SDK + +

+ GitHub Stars + GitHub Forks + GitHub Issues + GitHub Pull Requests + License +

+ +

+ English | 中文 | Français | Español | 日本語 +

+ +

+ TikHub Banner +

+ +Le SDK Python officiel pour l'API de données de médias sociaux [TikHub](https://tikhub.io) — une API REST unifiée qui fournit un accès en temps réel à **16+ plateformes de médias sociaux**, dont TikTok, Douyin, Instagram, YouTube, Twitter/X, Xiaohongshu (Red Note), Bilibili, Weibo, Threads, LinkedIn, Reddit, Kuaishou, WeChat, Lemon8, Zhihu, et plus encore. + +Conçu pour les développeurs, les data scientists et les ingénieurs IA qui ont besoin de données structurées de médias sociaux à grande échelle — pour l'**entraînement IA**, l'**analyse d'influenceurs**, la **veille de tendances**, l'**analyse de sentiments**, les **études de marché** et la **veille concurrentielle**. + +## Pourquoi TikHub ? + +- **1000+ endpoints** sur 16 plateformes avec une seule clé API +- **Données en temps réel** — détails vidéo, profils utilisateurs, commentaires, résultats de recherche, livestreams, contenu tendance et analyses e-commerce +- **RESTful & natif OpenAPI** — chaque endpoint est documenté dans la [spécification OpenAPI](https://api.tikhub.io/openapi.json) et testable via [Swagger UI](https://api.tikhub.io) +- **Intégration MCP** — connectez les agents IA (Claude, LangChain, Coze, n8n) directement aux données sociales via [Model Context Protocol](https://tikhub.io) +- **Datasets disponibles** — 1 milliard+ d'enregistrements structurés pré-collectés pour l'entraînement et la recherche + +## Pourquoi ce SDK ? + +- **Couverture à 100%** — 1010 / 1010 endpoints de la spécification OpenAPI V5.3.2, générés et vérifiés mécaniquement +- **Sync + async** — clients `TikHub` et `AsyncTikHub` avec des APIs identiques +- **Prêt pour la production** — nouvelles tentatives automatiques avec backoff exponentiel, gestion des limites de taux, hiérarchie d'erreurs structurée +- **Type-safe** — compatible `mypy --strict`, construit sur `httpx` + `pydantic v2` +- **Zéro configuration** — kwargs simples, pas d'objets de config ; définissez une variable d'environnement et c'est parti + +> **Version :** `2.1.1` — Requiert Python 3.9+ + +## Plateformes supportées + +| Plateforme | Ressource | Endpoints | +|---|---|---| +| TikTok | `tiktok_web`, `tiktok_app_v3`, `tiktok_creator`, `tiktok_analytics`, `tiktok_ads`, `tiktok_shop_web` | 200+ | +| Douyin | `douyin_web`, `douyin_app_v3`, `douyin_search`, `douyin_billboard`, `douyin_creator`, `douyin_xingtu` | 400+ | +| Instagram | `instagram_v1`, `instagram_v2`, `instagram_v3` | 80+ | +| YouTube | `youtube_web`, `youtube_web_v2` | 50+ | +| Twitter / X | `twitter_web` | 13+ | +| Xiaohongshu (Red Note) | `xiaohongshu_web`, `xiaohongshu_app` (+ variantes v2/v3) | 80+ | +| Bilibili | `bilibili_web`, `bilibili_app` | 40+ | +| Weibo | `weibo_web`, `weibo_web_v2`, `weibo_app` | 30+ | +| Threads | `threads_web` | 10+ | +| LinkedIn | `linkedin_web` | 10+ | +| Reddit | `reddit_app` | 10+ | +| Kuaishou | `kuaishou_web`, `kuaishou_app` | 20+ | +| WeChat | `wechat_channels`, `wechat_media_platform_web` | 20+ | +| Lemon8 | `lemon8_app` | 10+ | +| Zhihu | `zhihu_web` | 30+ | +| Autres | `toutiao_web`, `toutiao_app`, `xigua_app_v2`, `pipixia_app`, `sora2` | 30+ | + +## Installation + +```bash +pip install tikhub +``` + +Requiert Python 3.9+. + +### Depuis les sources + +```bash +git clone https://github.com/TikHub/TikHub-API-Python-SDK.git +cd TikHub-API-Python-SDK +pip install -e ".[dev]" +pytest -q +``` + +## Obtenir votre clé API + +1. Rendez-vous sur [https://user.tikhub.io/login](https://user.tikhub.io/login) et inscrivez-vous / connectez-vous. +2. Copiez votre clé API depuis le tableau de bord. +3. Définissez-la comme variable d'environnement ou passez-la directement : + +```bash +export TIKHUB_API_KEY="YOUR_API_KEY" +``` + +## Démarrage rapide + +```python +from tikhub import TikHub + +client = TikHub(api_key="YOUR_API_KEY") + +# 1:1 avec la spécification OpenAPI — ressource = tag, méthode = basename du chemin +video = client.douyin_web.fetch_one_video(aweme_id="7251234567890123456") +print(video.aweme_detail.desc) + +client.close() +``` + +Ou avec le gestionnaire de contexte recommandé : + +```python +with TikHub(api_key="YOUR_API_KEY") as client: + health = client.health_check.check() + print(health.status) +``` + +## Asynchrone + +```python +import asyncio +from tikhub import AsyncTikHub + +async def main(): + async with AsyncTikHub(api_key="YOUR_API_KEY") as client: + video = await client.douyin_web.fetch_one_video(aweme_id="...") + print(video.aweme_detail.desc) + +asyncio.run(main()) +``` + +## Configuration + +Le constructeur accepte un argument obligatoire et quelques kwargs optionnels : + +```python +TikHub( + api_key=None, # str | None — par défaut $TIKHUB_API_KEY + timeout=30, # float | None — timeout total de la requête en secondes + base_url=None, # str | None — à ne remplacer que pour un miroir privé + + # Avancé (rare) : + max_retries=3, + proxy=None, + user_agent=None, + parse_response=True, + http_client=None, # apportez votre propre httpx.Client +) +``` + +## Règles de nommage + +Le SDK est généré mécaniquement depuis la spécification OpenAPI de TikHub. Deux règles : + +1. **Attribut de ressource** = tag OpenAPI, en minuscules, tirets -> underscores, `-API` supprimé. + `Douyin-Web-API` -> `client.douyin_web`. `TikTok-App-V3-API` -> `client.tiktok_app_v3`. +2. **Nom de méthode** = le **dernier segment du chemin API, tel quel**. + `/api/v1/douyin/web/fetch_one_video` -> `client.douyin_web.fetch_one_video(...)`. + +Les noms de paramètres correspondent exactement à la spécification OpenAPI. + +## CLI + +```bash +export TIKHUB_API_KEY="YOUR_API_KEY" + +tikhub health # vérifier la connectivité API +tikhub fetch https://v.douyin.com/abc/ # analyseur universel d'URL vidéo +tikhub user info # forfait + quota +tikhub user usage # nombre de requêtes du jour +``` + +Toutes les commandes affichent du JSON sur stdout. + +## Licence + +MIT. diff --git a/README_JP.md b/README_JP.md new file mode 100644 index 0000000..9169369 --- /dev/null +++ b/README_JP.md @@ -0,0 +1,170 @@ +# TikHub API Python SDK + +

+ GitHub Stars + GitHub Forks + GitHub Issues + GitHub Pull Requests + License +

+ +

+ English | 中文 | Français | Español | 日本語 +

+ +

+ TikHub Banner +

+ +[TikHub](https://tikhub.io) ソーシャルメディアデータ API の公式 Python SDK — TikTok、Douyin(抖音)、Instagram、YouTube、Twitter/X、Xiaohongshu(小紅書)、Bilibili、Weibo、Threads、LinkedIn、Reddit、Kuaishou(快手)、WeChat、Lemon8、Zhihu(知乎)など **16以上のソーシャルメディアプラットフォーム** にリアルタイムアクセスできる統一 REST API。 + +**AI トレーニング**、**インフルエンサー分析**、**トレンド監視**、**感情分析**、**市場調査**、**競合インテリジェンス** など、大規模な構造化ソーシャルメディアデータを必要とする開発者、データサイエンティスト、AI エンジニア向けに構築されています。 + +## TikHub を選ぶ理由 + +- **1000以上のエンドポイント** — 16プラットフォームを1つの API キーで利用可能 +- **リアルタイムデータ** — 動画詳細、ユーザープロフィール、コメント、検索結果、ライブ配信、トレンドコンテンツ、EC分析 +- **RESTful & OpenAPI ネイティブ** — すべてのエンドポイントが [OpenAPI 仕様](https://api.tikhub.io/openapi.json) に文書化され、[Swagger UI](https://api.tikhub.io) でテスト可能 +- **MCP 統合** — [Model Context Protocol](https://tikhub.io) 経由で AI エージェント(Claude、LangChain、Coze、n8n)をソーシャルメディアデータに直接接続 +- **データセット** — トレーニングと研究用の10億件以上の構造化済みレコード + +## この SDK を選ぶ理由 + +- **100% エンドポイントカバレッジ** — OpenAPI 仕様 V5.3.2 の 1010 / 1010 エンドポイント、機械的に生成・検証 +- **同期 + 非同期** — `TikHub` と `AsyncTikHub` クライアント、API は完全に同一 +- **本番環境対応** — 指数バックオフによる自動リトライ、レート制限処理、構造化エラー階層 +- **型安全** — `mypy --strict` 対応、`httpx` + `pydantic v2` で構築 +- **ゼロコンフィグ** — フラットな kwargs、設定オブジェクト不要;環境変数1つで利用開始 + +> **バージョン:** `2.1.1` — Python 3.9+ が必要 + +## 対応プラットフォーム + +| プラットフォーム | リソース | エンドポイント数 | +|---|---|---| +| TikTok | `tiktok_web`, `tiktok_app_v3`, `tiktok_creator`, `tiktok_analytics`, `tiktok_ads`, `tiktok_shop_web` | 200+ | +| Douyin(抖音) | `douyin_web`, `douyin_app_v3`, `douyin_search`, `douyin_billboard`, `douyin_creator`, `douyin_xingtu` | 400+ | +| Instagram | `instagram_v1`, `instagram_v2`, `instagram_v3` | 80+ | +| YouTube | `youtube_web`, `youtube_web_v2` | 50+ | +| Twitter / X | `twitter_web` | 13+ | +| Xiaohongshu(小紅書) | `xiaohongshu_web`, `xiaohongshu_app`(+ v2/v3 バリアント) | 80+ | +| Bilibili | `bilibili_web`, `bilibili_app` | 40+ | +| Weibo(微博) | `weibo_web`, `weibo_web_v2`, `weibo_app` | 30+ | +| Threads | `threads_web` | 10+ | +| LinkedIn | `linkedin_web` | 10+ | +| Reddit | `reddit_app` | 10+ | +| Kuaishou(快手) | `kuaishou_web`, `kuaishou_app` | 20+ | +| WeChat | `wechat_channels`, `wechat_media_platform_web` | 20+ | +| Lemon8 | `lemon8_app` | 10+ | +| Zhihu(知乎) | `zhihu_web` | 30+ | +| その他 | `toutiao_web`, `toutiao_app`, `xigua_app_v2`, `pipixia_app`, `sora2` | 30+ | + +## インストール + +```bash +pip install tikhub +``` + +Python 3.9+ が必要です。 + +### ソースからインストール + +```bash +git clone https://github.com/TikHub/TikHub-API-Python-SDK.git +cd TikHub-API-Python-SDK +pip install -e ".[dev]" +pytest -q +``` + +## API キーの取得 + +1. [https://user.tikhub.io/login](https://user.tikhub.io/login) にアクセスしてサインアップ / ログインします。 +2. ダッシュボードから API キーをコピーします。 +3. 環境変数として設定するか、直接渡します: + +```bash +export TIKHUB_API_KEY="YOUR_API_KEY" +``` + +## クイックスタート + +```python +from tikhub import TikHub + +client = TikHub(api_key="YOUR_API_KEY") + +# OpenAPI 仕様と 1:1 対応 — リソース = タグ、メソッド = パスのベースネーム +video = client.douyin_web.fetch_one_video(aweme_id="7251234567890123456") +print(video.aweme_detail.desc) + +client.close() +``` + +推奨のコンテキストマネージャーを使用: + +```python +with TikHub(api_key="YOUR_API_KEY") as client: + health = client.health_check.check() + print(health.status) +``` + +## 非同期 + +```python +import asyncio +from tikhub import AsyncTikHub + +async def main(): + async with AsyncTikHub(api_key="YOUR_API_KEY") as client: + video = await client.douyin_web.fetch_one_video(aweme_id="...") + print(video.aweme_detail.desc) + +asyncio.run(main()) +``` + +## 設定 + +コンストラクタは1つの必須引数といくつかのオプション kwargs を受け取ります: + +```python +TikHub( + api_key=None, # str | None — デフォルトは $TIKHUB_API_KEY + timeout=30, # float | None — リクエストの合計タイムアウト(秒) + base_url=None, # str | None — プライベートミラー用のみ + + # 上級(まれ): + max_retries=3, + proxy=None, + user_agent=None, + parse_response=True, + http_client=None, # 独自の httpx.Client を使用 +) +``` + +## 命名規則 + +SDK は TikHub OpenAPI 仕様から機械的に生成されます。2つのルール: + +1. **リソース属性** = OpenAPI タグを小文字化、ハイフンをアンダースコアに変換、`-API` を除去。 + `Douyin-Web-API` -> `client.douyin_web`。`TikTok-App-V3-API` -> `client.tiktok_app_v3`。 +2. **メソッド名** = API パスの**最後のセグメントをそのまま使用**。 + `/api/v1/douyin/web/fetch_one_video` -> `client.douyin_web.fetch_one_video(...)`。 + +パラメータ名は OpenAPI 仕様と完全に一致します。 + +## CLI + +```bash +export TIKHUB_API_KEY="YOUR_API_KEY" + +tikhub health # API 接続確認 +tikhub fetch https://v.douyin.com/abc/ # ユニバーサル動画 URL パーサー +tikhub user info # プラン + クォータ +tikhub user usage # 本日のリクエスト数 +``` + +すべてのコマンドは JSON を標準出力に表示します。 + +## ライセンス + +MIT。 diff --git a/TikHub_Banner.jpg b/TikHub_Banner.jpg new file mode 100644 index 0000000..248c9d2 Binary files /dev/null and b/TikHub_Banner.jpg differ