- Blog
- Documentation de l’API TwitterDown
Documentation de l’API TwitterDown
Documentation de Développement de l'API TwitterDown
Aperçu
L'API TwitterDown v1 offre un accès programmatique pour extraire les informations vidéo des liens Twitter/X. Cette API permet aux développeurs d'intégrer des fonctionnalités d'analyse de vidéos Twitter dans leurs applications.
URL de Base
https://twitterdown.com/api/v1
Authentification
Toutes les requêtes API nécessitent une authentification via une clé API. Vous devez inclure votre clé API dans l'en-tête Authorization
de chaque requête.
Format de la Clé API
Authorization: Bearer VOTRE_CLE_API
Obtention d'une Clé API
- Créez un compte sur TwitterDown.
- Souscrivez à un abonnement premium.
- Accédez à la section "Clé API" de votre tableau de bord.
- Créez une nouvelle clé API.
Note : L'accès à l'API est uniquement disponible pour les utilisateurs premium.
Limites de Débit (Rate Limiting)
- Requêtes par minute : 60
- Requêtes par heure : 1 000
- Requêtes par jour : 10 000
Les en-têtes de limite de débit sont inclus dans toutes les réponses :
X-RateLimit-Limit
: La limite de requêtes pour la fenêtre de temps actuelle.X-RateLimit-Remaining
: Le nombre de requêtes restantes dans la fenêtre actuelle.X-RateLimit-Reset
: Le timestamp Unix indiquant quand la limite de débit sera réinitialisée.
Points de Terminaison (Endpoints)
1. Analyser l'URL d'une Vidéo Twitter
Extrait les informations vidéo d'une URL Twitter/X.
Adresse du Point de Terminaison : POST /twitter
Requête
En-têtes de Requête :
Content-Type: application/json
Authorization: Bearer VOTRE_CLE_API
Corps de la Requête (Request Body) :
{
"url": "https://x.com/username/status/1234567890123456789"
}
Paramètres :
Paramètre | Type | Requis | Description |
---|---|---|---|
url |
string | Oui | Une URL de tweet Twitter/X valide contenant une vidéo |
Réponse
Réponse Réussie (200 OK) :
{
"code": 0,
"message": "ok",
"data": {
"thumbnail": "https://pbs.twimg.com/amplify_video_thumb/1234567890123456789/img/ExampleThumbnail.jpg",
"videos": [
{
"resolution": "720p",
"quality": "HD",
"url": "https://video.twimg.com/amplify_video/1234567890123456789/vid/avc1/1280x720/ExampleVideoHD.mp4?tag=21"
},
{
"resolution": "360p",
"quality": "SD",
"url": "https://video.twimg.com/amplify_video/1234567890123456789/vid/avc1/640x360/ExampleVideoSD.mp4?tag=21"
},
{
"resolution": "270p",
"quality": "SD",
"url": "https://video.twimg.com/amplify_video/1234567890123456789/vid/avc1/480x270/ExampleVideoLow.mp4?tag=21"
}
],
"text": "Ceci est un exemple de contenu de tweet avec une vidéo",
"username": "username",
"statusId": "1234567890123456789",
"processed_at": "2024-01-01T12:00:00.000Z"
}
}
Champs de la Réponse :
Nom du Champ | Type | Description |
---|---|---|
code |
integer | Code de réponse (0 = succès, -1 = erreur) |
message |
string | Message de réponse |
data |
object | Données de réponse |
thumbnail |
string | URL de la miniature du tweet (peut être nul) |
videos |
array | Tableau des formats vidéo disponibles |
text |
string | Le contenu textuel du tweet |
username |
string | Nom d'utilisateur Twitter |
statusId |
string | L'ID du statut du tweet |
processed_at |
string | Timestamp ISO 8601 de la date de traitement |
Champs de l'Objet Vidéo :
Nom du Champ | Type | Description |
---|---|---|
resolution |
string | Résolution vidéo (par exemple, "720p", "360p") |
quality |
string | Qualité vidéo (par exemple, "HD", "SD") |
url |
string | URL de téléchargement direct de la vidéo |
2. Documentation de l'API
Récupère la documentation de l'API et les informations d'utilisation.
Adresse du Point de Terminaison : GET /twitter
Réponse
Retourne la documentation complète de l'API au format JSON, incluant les informations sur les points de terminaison, les exigences d'authentification et les exemples.
Gestion des Erreurs
Format de Réponse d'Erreur
{
"code": -1,
"message": "Description de l'erreur"
}
Codes d'État HTTP
Code d'État | Description |
---|---|
200 |
Succès |
400 |
Mauvaise Requête - Paramètres invalides |
401 |
Non Autorisé - Clé API manquante ou invalide |
403 |
Interdit - Abonnement premium requis |
422 |
Entité Non Traitable - Impossible d'analyser l'URL |
429 |
Trop de Requêtes - Limite de débit dépassée |
500 |
Erreur Interne du Serveur |
Messages d'Erreur Courants
Message d'Erreur | Cause |
---|---|
Missing API key |
En-tête Authorization non fourni |
Invalid API key |
Clé API introuvable ou expirée |
API access is only available for premium users |
Utilisateur non premium tentant d'accéder à l'API |
URL parameter is required |
URL manquante dans le corps de la requête |
Invalid Twitter/X URL format |
Format d'URL incorrect ou non supporté |
No video found |
Le tweet ne contient pas de contenu vidéo |
Exemples
Exemple cURL
curl --location --request POST 'https://twitterdown.com/api/v1/twitter' \
--header 'Authorization: Bearer sk-1234567890abcdef123456789012345678' \
--header 'Content-Type: application/json' \
--data-raw '{
"url": "https://x.com/username/status/1234567890123456789"
}'
Exemple JavaScript
const response = await fetch('https://twitterdown.com/api/v1/twitter', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer sk-1234567890abcdef123456789012345678'
},
body: JSON.stringify({
url: 'https://x.com/username/status/1234567890123456789'
})
});
const data = await response.json();
if (data.code === 0) {
console.log('Vidéo trouvée :', data.data.videos);
} else {
console.error('Erreur :', data.message);
}
Exemple Python
import requests
url = "https://twitterdown.com/api/v1/twitter"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer sk-1234567890abcdef123456789012345678"
}
payload = {
"url": "https://x.com/username/status/1234567890123456789"
}
response = requests.post(url, headers=headers, json=payload)
data = response.json()
if data["code"] == 0:
print("Vidéo trouvée :", data["data"]["videos"])
else:
print("Erreur :", data["message"])
Exemple PHP
<?php
$url = 'https://twitterdown.com/api/v1/twitter';
$headers = [
'Content-Type: application/json',
'Authorization: Bearer sk-1234567890abcdef123456789012345678'
];
$payload = json_encode([
'url' => 'https://x.com/username/status/1234567890123456789'
]);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
if ($data['code'] === 0) {
echo "Vidéo trouvée : " . print_r($data['data']['videos'], true);
} else {
echo "Erreur : " . $data['message'];
}
?>
Bonnes Pratiques
Support des Formats d'URL
L'API supporte les formats d'URL suivants :
https://twitter.com/username/status/1234567890
https://x.com/username/status/1234567890
https://mobile.twitter.com/username/status/1234567890
Gestion des Erreurs
Vérifiez toujours le champ code
dans la réponse :
code: 0
indique un succèscode: -1
indique une erreur
Implémentez une gestion des erreurs appropriée dans votre application pour gérer les erreurs API de manière élégante.
Limites de Débit
Surveillez les en-têtes de limite de débit dans les réponses et mettez en œuvre une stratégie de "back-off" (attente progressive) lorsque vous approchez des limites.
Sécurité
- Gardez votre clé API en sécurité ; ne l'exposez jamais dans le code côté client.
- Stockez les clés API à l'aide de variables d'environnement.
- Renouvelez régulièrement les clés API.
- Supprimez les clés API inutilisées.
Support
Pour le support et les questions concernant l'API :
- Email : support@twitterdown.com
- Documentation : https://twitterdown.com/docs
- Page d'État : https://status.twitterdown.com
Journal des Modifications (Changelog)
Version 1.0.0 (2025-05-27)
- Lancement initial de l'API
- Analyse des vidéos Twitter/X
- Authentification des utilisateurs premium
- Implémentation des limites de débit
Dernière mise à jour : 2025-05-27