|
| 1 | +# TikHub API Python SDK |
| 2 | + |
| 3 | +<p align="center"> |
| 4 | + <a href="https://github.com/TikHub/TikHub-API-Python-SDK/stargazers"><img src="https://img.shields.io/github/stars/TikHub/TikHub-API-Python-SDK?style=social" alt="GitHub Stars"></a> |
| 5 | + <a href="https://github.com/TikHub/TikHub-API-Python-SDK/network/members"><img src="https://img.shields.io/github/forks/TikHub/TikHub-API-Python-SDK?style=social" alt="GitHub Forks"></a> |
| 6 | + <a href="https://github.com/TikHub/TikHub-API-Python-SDK/issues"><img src="https://img.shields.io/github/issues/TikHub/TikHub-API-Python-SDK" alt="GitHub Issues"></a> |
| 7 | + <a href="https://github.com/TikHub/TikHub-API-Python-SDK/pulls"><img src="https://img.shields.io/github/issues-pr/TikHub/TikHub-API-Python-SDK" alt="GitHub Pull Requests"></a> |
| 8 | + <a href="https://github.com/TikHub/TikHub-API-Python-SDK/blob/main/LICENSE"><img src="https://img.shields.io/github/license/TikHub/TikHub-API-Python-SDK" alt="License"></a> |
| 9 | +</p> |
| 10 | + |
| 11 | +<p align="center"> |
| 12 | + <a href="README.md">English</a> | <a href="README_CN.md">中文</a> | Français | <a href="README_ES.md">Español</a> | <a href="README_JP.md">日本語</a> |
| 13 | +</p> |
| 14 | + |
| 15 | +<p align="center"> |
| 16 | + <img src="TikHub_Banner.jpg" alt="TikHub Banner"> |
| 17 | +</p> |
| 18 | + |
| 19 | +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. |
| 20 | + |
| 21 | +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**. |
| 22 | + |
| 23 | +## Pourquoi TikHub ? |
| 24 | + |
| 25 | +- **1000+ endpoints** sur 16 plateformes avec une seule clé API |
| 26 | +- **Données en temps réel** — détails vidéo, profils utilisateurs, commentaires, résultats de recherche, livestreams, contenu tendance et analyses e-commerce |
| 27 | +- **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) |
| 28 | +- **Intégration MCP** — connectez les agents IA (Claude, LangChain, Coze, n8n) directement aux données sociales via [Model Context Protocol](https://tikhub.io) |
| 29 | +- **Datasets disponibles** — 1 milliard+ d'enregistrements structurés pré-collectés pour l'entraînement et la recherche |
| 30 | + |
| 31 | +## Pourquoi ce SDK ? |
| 32 | + |
| 33 | +- **Couverture à 100%** — 1010 / 1010 endpoints de la spécification OpenAPI V5.3.2, générés et vérifiés mécaniquement |
| 34 | +- **Sync + async** — clients `TikHub` et `AsyncTikHub` avec des APIs identiques |
| 35 | +- **Prêt pour la production** — nouvelles tentatives automatiques avec backoff exponentiel, gestion des limites de taux, hiérarchie d'erreurs structurée |
| 36 | +- **Type-safe** — compatible `mypy --strict`, construit sur `httpx` + `pydantic v2` |
| 37 | +- **Zéro configuration** — kwargs simples, pas d'objets de config ; définissez une variable d'environnement et c'est parti |
| 38 | + |
| 39 | +> **Version :** `2.1.1` — Requiert Python 3.9+ |
| 40 | +
|
| 41 | +## Plateformes supportées |
| 42 | + |
| 43 | +| Plateforme | Ressource | Endpoints | |
| 44 | +|---|---|---| |
| 45 | +| TikTok | `tiktok_web`, `tiktok_app_v3`, `tiktok_creator`, `tiktok_analytics`, `tiktok_ads`, `tiktok_shop_web` | 200+ | |
| 46 | +| Douyin | `douyin_web`, `douyin_app_v3`, `douyin_search`, `douyin_billboard`, `douyin_creator`, `douyin_xingtu` | 400+ | |
| 47 | +| Instagram | `instagram_v1`, `instagram_v2`, `instagram_v3` | 80+ | |
| 48 | +| YouTube | `youtube_web`, `youtube_web_v2` | 50+ | |
| 49 | +| Twitter / X | `twitter_web` | 13+ | |
| 50 | +| Xiaohongshu (Red Note) | `xiaohongshu_web`, `xiaohongshu_app` (+ variantes v2/v3) | 80+ | |
| 51 | +| Bilibili | `bilibili_web`, `bilibili_app` | 40+ | |
| 52 | +| Weibo | `weibo_web`, `weibo_web_v2`, `weibo_app` | 30+ | |
| 53 | +| Threads | `threads_web` | 10+ | |
| 54 | +| LinkedIn | `linkedin_web` | 10+ | |
| 55 | +| Reddit | `reddit_app` | 10+ | |
| 56 | +| Kuaishou | `kuaishou_web`, `kuaishou_app` | 20+ | |
| 57 | +| WeChat | `wechat_channels`, `wechat_media_platform_web` | 20+ | |
| 58 | +| Lemon8 | `lemon8_app` | 10+ | |
| 59 | +| Zhihu | `zhihu_web` | 30+ | |
| 60 | +| Autres | `toutiao_web`, `toutiao_app`, `xigua_app_v2`, `pipixia_app`, `sora2` | 30+ | |
| 61 | + |
| 62 | +## Installation |
| 63 | + |
| 64 | +```bash |
| 65 | +pip install tikhub |
| 66 | +``` |
| 67 | + |
| 68 | +Requiert Python 3.9+. |
| 69 | + |
| 70 | +### Depuis les sources |
| 71 | + |
| 72 | +```bash |
| 73 | +git clone https://github.com/TikHub/TikHub-API-Python-SDK.git |
| 74 | +cd TikHub-API-Python-SDK |
| 75 | +pip install -e ".[dev]" |
| 76 | +pytest -q |
| 77 | +``` |
| 78 | + |
| 79 | +## Obtenir votre clé API |
| 80 | + |
| 81 | +1. Rendez-vous sur [https://user.tikhub.io/login](https://user.tikhub.io/login) et inscrivez-vous / connectez-vous. |
| 82 | +2. Copiez votre clé API depuis le tableau de bord. |
| 83 | +3. Définissez-la comme variable d'environnement ou passez-la directement : |
| 84 | + |
| 85 | +```bash |
| 86 | +export TIKHUB_API_KEY="YOUR_API_KEY" |
| 87 | +``` |
| 88 | + |
| 89 | +## Démarrage rapide |
| 90 | + |
| 91 | +```python |
| 92 | +from tikhub import TikHub |
| 93 | + |
| 94 | +client = TikHub(api_key="YOUR_API_KEY") |
| 95 | + |
| 96 | +# 1:1 avec la spécification OpenAPI — ressource = tag, méthode = basename du chemin |
| 97 | +video = client.douyin_web.fetch_one_video(aweme_id="7251234567890123456") |
| 98 | +print(video.aweme_detail.desc) |
| 99 | + |
| 100 | +client.close() |
| 101 | +``` |
| 102 | + |
| 103 | +Ou avec le gestionnaire de contexte recommandé : |
| 104 | + |
| 105 | +```python |
| 106 | +with TikHub(api_key="YOUR_API_KEY") as client: |
| 107 | + health = client.health_check.check() |
| 108 | + print(health.status) |
| 109 | +``` |
| 110 | + |
| 111 | +## Asynchrone |
| 112 | + |
| 113 | +```python |
| 114 | +import asyncio |
| 115 | +from tikhub import AsyncTikHub |
| 116 | + |
| 117 | +async def main(): |
| 118 | + async with AsyncTikHub(api_key="YOUR_API_KEY") as client: |
| 119 | + video = await client.douyin_web.fetch_one_video(aweme_id="...") |
| 120 | + print(video.aweme_detail.desc) |
| 121 | + |
| 122 | +asyncio.run(main()) |
| 123 | +``` |
| 124 | + |
| 125 | +## Configuration |
| 126 | + |
| 127 | +Le constructeur accepte un argument obligatoire et quelques kwargs optionnels : |
| 128 | + |
| 129 | +```python |
| 130 | +TikHub( |
| 131 | + api_key=None, # str | None — par défaut $TIKHUB_API_KEY |
| 132 | + timeout=30, # float | None — timeout total de la requête en secondes |
| 133 | + base_url=None, # str | None — à ne remplacer que pour un miroir privé |
| 134 | + |
| 135 | + # Avancé (rare) : |
| 136 | + max_retries=3, |
| 137 | + proxy=None, |
| 138 | + user_agent=None, |
| 139 | + parse_response=True, |
| 140 | + http_client=None, # apportez votre propre httpx.Client |
| 141 | +) |
| 142 | +``` |
| 143 | + |
| 144 | +## Règles de nommage |
| 145 | + |
| 146 | +Le SDK est généré mécaniquement depuis la spécification OpenAPI de TikHub. Deux règles : |
| 147 | + |
| 148 | +1. **Attribut de ressource** = tag OpenAPI, en minuscules, tirets -> underscores, `-API` supprimé. |
| 149 | + `Douyin-Web-API` -> `client.douyin_web`. `TikTok-App-V3-API` -> `client.tiktok_app_v3`. |
| 150 | +2. **Nom de méthode** = le **dernier segment du chemin API, tel quel**. |
| 151 | + `/api/v1/douyin/web/fetch_one_video` -> `client.douyin_web.fetch_one_video(...)`. |
| 152 | + |
| 153 | +Les noms de paramètres correspondent exactement à la spécification OpenAPI. |
| 154 | + |
| 155 | +## CLI |
| 156 | + |
| 157 | +```bash |
| 158 | +export TIKHUB_API_KEY="YOUR_API_KEY" |
| 159 | + |
| 160 | +tikhub health # vérifier la connectivité API |
| 161 | +tikhub fetch https://v.douyin.com/abc/ # analyseur universel d'URL vidéo |
| 162 | +tikhub user info # forfait + quota |
| 163 | +tikhub user usage # nombre de requêtes du jour |
| 164 | +``` |
| 165 | + |
| 166 | +Toutes les commandes affichent du JSON sur stdout. |
| 167 | + |
| 168 | +## Licence |
| 169 | + |
| 170 | +MIT. |
0 commit comments