TwitterDownTwitterDown

Documentation de l’API TwitterDown

TwitterDownon 21 days ago

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

  1. Créez un compte sur TwitterDown.
  2. Souscrivez à un abonnement premium.
  3. Accédez à la section "Clé API" de votre tableau de bord.
  4. 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ès
  • code: -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