メインコンテンツへスキップ
POST /2/media/upload endpoint を使用する際に理解しておくべき重要な概念がいくつかあります。OAuth を使ったメディアのアップロードは少し複雑になりがちなため、注意点と、この endpoint の使用方法を示す動作サンプルを以下にまとめています。

留意事項

  • 1つの Post には、写真は最大4枚、アニメーションGIFは1件、または動画は1件まで添付できます。
  • 送信する画像は、生のバイナリまたはバイナリのbase64エンコードとしてください。適切にContent-Typeが設定されている限り(不明な場合はapplication/octet-stream)、それ以外のエンコードや内容のエスケープは不要です。
  • base64エンコードした画像を投稿する場合は、メッセージの画像パートに「Content-Transfer-Encoding: base64」を必ず設定してください。
  • マルチパートメッセージの境界は、単独の行として記述し、CRLFで終端する必要があります。
  • この endpoint を使ってPOSTする実例については、xurlでのテストを推奨します。あわせて、提供されているX Librariesもご確認ください。
  • 長整数を正確に表現できないJavaScriptやその他の言語では、APIレスポンスで提供されるmedia_id_stringを使用してください。

メディアカテゴリ

Media Category パラメータは、アップロードするメディアファイルの用途を定義し、メディアアップロードに適用されるファイルサイズ上限やその他の制約に影響する場合があります。アップロード時には、後でメディアを利用する際の問題を避けるため、正しいメディアカテゴリを使用することが重要です。これはアップロードフローの一部として INIT リクエストで渡す任意の値です。メディアカテゴリが指定されていない場合、コンテンツタイプに応じて、アップロードされたメディアは Post 用のメディア(tweet_imagetweet_videotweet_gif)と見なされます。 最も一般的なメディアカテゴリは次のとおりです:
  • tweet_image
  • tweet_video
  • tweet_gif
  • dm_image
  • dm_video
  • dm_gif
  • subtitles
X Ads API のパートナーの方は、プロモーション動画に推奨されるメディアカテゴリの詳細についてはこちらのドキュメントを参照してください。

画像の仕様と推奨事項

画像ファイルは、以下のすべての条件を満たす必要があります:
  • サポートされる画像メディアタイプ: JPG, PNG, GIF, WEBP
  • 画像サイズ: <= 5 MB
  • アニメーション GIF のサイズ: <= 15 MB
上記のファイルサイズ上限は、メディアアップロード endpoint によって適用されます。さらに、media_id を指定して Post 作成(または同様の)endpoint を呼び出す際には、製品エンティティ固有の別のファイルサイズ上限が適用されます。ファイルサイズ上限やその他の制約は、media_category パラメータによって異なる場合があります。

アニメーション GIF に関する推奨事項

ファイルサイズの上限内でも、Post 作成時に GIF のアップロードが失敗する場合があります。成功率を高めるため、次の制約に従ってください。
  • 解像度: <= 1280x1080width x height
  • フレーム数: <= 350
  • ピクセル数: <= 300 millionwidth * height * num_frames
  • ファイルサイズ: <= 15MB
より大きな GIF を処理するには、media_category パラメータを使用して chunked upload endpoint を利用してください。これにより、サーバー側で GIF ファイルを非同期処理できるようになり、大容量ファイルの処理に必要となります。アニメーション GIF を含む Posts の非同期アップロードを有効にするには、media_category=tweet_gif を指定してください。

動画の仕様および推奨事項

メディアのアップロードには Async Path を使用してください。
  • 動画コーデック: H264 High Profile
  • フレームレート: 30 FPS, 60 FPS
  • 動画解像度: 1280x720(横向き)、720x1280(縦向き)、720x720(正方形)。有料プランのユーザーは1080pの動画をアップロードでき、1080pで再生されます。未加入のユーザーは720pの動画をアップロードでき、720pで再生されます。
  • 最小動画ビットレート: 5,000 kbps
  • 最小オーディオビットレート: 128 kbps
  • オーディオコーデック: AAC LC
  • アスペクト比: 16:9(横向きまたは縦向き)、1:1(正方形)

高度

  • フレームレート: 60 FPS 以下であること
  • 寸法: 32x32 から 1280x1024 の範囲であること
  • ファイルサイズ: 512 MB を超えないこと
  • 再生時間: 0.5 秒 から 140 秒 の範囲であること
  • アスペクト比: 1:3 から 3:1 の範囲であること
  • ピクセルアスペクト比: 1:1 であること
  • ピクセルフォーマット: YUV 4:2:0 のみサポート
  • 音声は AAC の Low Complexity プロファイル であること(High-Efficiency AAC は非対応)
  • 音声は mono または stereo とし、5.1 以上は不可
  • open GOP は使用しないこと
  • progressive scan を使用すること

追加情報

以下の表は各行がアップロード時の推奨設定を示したもので、必須ではありません。すべてのアップロードは、複数プラットフォームでの最適化を目的に処理されます。
向き高さ動画ビットレート音声ビットレート
横向き12807202048K128K
横向き640360768K64K
横向き320180256K64K
縦向き72012802048K128K
縦向き360640768K64K
縦向き180320256K64K
正方形7207202048K128K
正方形480480768K64K
正方形240240256K32K
メディアのアップロード手順の例については、chunked media upload のドキュメントをご参照ください。

トラブルシューティング

Media API に関する問題は、開発者フォーラムの Media API カテゴリを参照して解決策を探してください。
I