Passer au contenu principal
Quelques concepts importants sont à connaître lorsque vous utilisez l’endpoint POST /2/media/upload. Le téléversement de médias avec OAuth peut être un peu délicat ; nous avons donc rassemblé ici des points à garder à l’esprit, ainsi qu’un exemple fonctionnel montrant comment utiliser cet endpoint.

À garder à l’esprit

  • Vous pouvez joindre jusqu’à 4 photos, 1 GIF animé ou 1 vidéo dans un Post.
  • L’image transmise doit être le binaire brut de l’image ou un binaire encodé en base64 ; il n’est pas nécessaire d’encoder ou d’échapper autrement le contenu tant que le Content-Type est correctement défini (en cas de doute : application/octet-stream).
  • Lors de l’envoi d’images encodées en base64, veillez à définir « Content-Transfer-Encoding: base64 » sur la partie image du message.
  • Les délimitations des messages multipart doivent figurer sur leur propre ligne et se terminer par un CRLF.
  • Pour des exemples concrets d’utilisation de POST avec cet endpoint, nous recommandons de tester avec xurl. Consultez également les bibliothèques X disponibles.
  • Utilisez le media_id_string fourni dans la réponse de l’API pour JavaScript et tout autre langage qui ne peut pas représenter avec précision un entier long.

Catégories de médias

Le paramètre Media Category définit le cas d’usage du fichier média à téléverser et peut affecter les limites de taille de fichier ou d’autres contraintes appliquées aux téléversements de médias. Il est important d’utiliser la catégorie de médias appropriée lors du téléversement pour éviter des problèmes au moment d’utiliser le média. Il s’agit d’une valeur facultative transmise dans la requête INIT dans le cadre du flux de téléversement. Si aucune catégorie de médias n’est spécifiée, le média téléversé est considéré comme destiné à un Post (tweet_image, tweet_video ou tweet_gif), selon le type de contenu. Les catégories de médias les plus courantes sont les suivantes :
  • tweet_image
  • tweet_video
  • tweet_gif
  • dm_image
  • dm_video
  • dm_gif
  • subtitles
Si vous êtes un partenaire de la X Ads API, veuillez consulter cette documentation pour plus d’informations sur la catégorie de médias recommandée pour la vidéo sponsorisée.

Spécifications et recommandations pour les images

Les fichiers image doivent respecter tous les critères suivants :
  • Types de médias image pris en charge : JPG, PNG, GIF, WEBP
  • Taille de l’image : <= 5 MB
  • Taille du GIF animé : <= 15 MB
La limite de taille de fichier ci-dessus est appliquée par l’endpoint de téléversement des médias. Par ailleurs, une limite distincte, propre à l’entité produit, s’applique lors de l’appel des endpoints de création de Post (ou similaires) avec media_id. La limite de taille et d’autres contraintes peuvent varier selon le paramètre media_category.

Recommandations pour les GIF animés

Un GIF peut échouer lors de la création d’un Post même s’il respecte la limite de taille de fichier. Respectez les contraintes suivantes pour améliorer le taux de réussite.
  • Résolution : <= 1280x1080 (width x height)
  • Nombre d’images : <= 350
  • Nombre de pixels : <= 300 millions (width * height * num_frames)
  • Taille du fichier : <= 15 Mo
Pour traiter des GIF plus volumineux, utilisez l’endpoint chunked upload avec le paramètre media_category. Cela permet au serveur de traiter le fichier GIF de manière asynchrone, ce qui est requis pour le traitement de fichiers plus volumineux. Transmettez media_category=tweet_gif pour activer le comportement de téléversement asynchrone pour les Posts contenant un GIF animé.

Spécifications et recommandations vidéo

Veuillez utiliser le parcours asynchrone pour le téléversement de médias.
  • Codec vidéo : H264 High Profile
  • Fréquence d’images : 30 FPS, 60 FPS
  • Résolution vidéo : 1280x720 (paysage), 720x1280 (portrait), 720x720 (carré). Les utilisateurs abonnés peuvent importer une vidéo 1080p et obtenir une lecture en 1080p. Les utilisateurs non abonnés peuvent importer une vidéo 720p et obtenir une lecture en 720p.
  • Débit vidéo minimal : 5 000 kbps
  • Débit audio minimal : 128 kbps
  • Codec audio : AAC LC
  • Format d’image : 16:9 (paysage ou portrait), 1:1 (carré)

Avancé

  • Fréquence d’images : doit être de 60 FPS ou moins
  • Dimensions : doivent être comprises entre 32x32 et 1280x1024
  • Taille du fichier : ne doit pas dépasser 512 MB
  • Durée : doit être comprise entre 0,5 seconde et 140 secondes
  • Rapport d’aspect : doit être compris entre 1:3 et 3:1
  • Rapport d’aspect des pixels : doit être de 1:1
  • Format de pixels : seul le YUV 4:2:0 est pris en charge
  • Le son doit être en AAC avec profil Low Complexity. (L’AAC High-Efficiency n’est pas pris en charge)
  • Le son doit être mono ou stereo, et non 5.1 ou plus
  • Ne doit pas utiliser d’open GOP
  • Doit utiliser le progressive scan

Informations supplémentaires

Dans le tableau ci-dessous, chaque ligne correspond à une recommandation de mise en ligne, mais ce n’est pas une exigence. Toutes les mises en ligne sont traitées pour être optimisées sur plusieurs plateformes.
OrientationLargeurHauteurDébit vidéoDébit audio
Paysage12807202048K128K
Paysage640360768K64K
Paysage320180256K64K
Portrait72012802048K128K
Portrait360640768K64K
Portrait180320256K64K
Carré7207202048K128K
Carré480480768K64K
Carré240240256K32K
Pour un exemple de mise en ligne de médias, consultez la documentation sur la mise en ligne segmentée de médias.

Dépannage

Pour les problèmes liés aux API Media, consultez la catégorie Media API dans les forums des développeurs pour trouver une réponse.
I