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

留意事項

  • 1つのポストには、写真を最大4枚、またはアニメーションGIF 1つもしくは動画1本を添付できます。
  • 送信する画像データは、生のバイナリデータ、またはそのバイナリをbase64エンコードしたものにしてください。Content-Type が適切に設定されているかぎり (迷った場合は application/octet-stream) 、それ以外のエンコードやエスケープは不要です。
  • base64エンコードした画像をポストする場合は、メッセージ内の画像パートに「Content-Transfer-Encoding: base64」を必ず設定してください。
  • マルチパートメッセージの境界は、それ単体で1行に配置し、CRLFで終端する必要があります。
  • このエンドポイントを使ったPOSTリクエストの動作例については、xurl を使ってテストすることをおすすめします。また、利用可能な X Libraries も参照してください。
  • JavaScript など、長整数を正確に表現できない言語では、APIレスポンスで提供される media_id_string を使用してください。

メディアカテゴリー

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

画像の仕様と推奨事項

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

アニメーション GIF の推奨事項

GIF はファイルサイズ制限内であっても、ポストの作成時に失敗する場合があります。成功率を高めるため、次の制約を守ってください。
  • 解像度: <= 1280x1080 (width x height)
  • フレーム数: <= 350
  • ピクセル数: <= 300 million (width * height * num_frames)
  • ファイルサイズ: <= 15Mb
より大きな GIF を処理するには、media_category パラメータ付きで chunked upload エンドポイントを使用してください。これにより、サーバーは GIF ファイルを非同期で処理でき、大きなファイルを処理するにはこの方式が必須となります。アニメーション GIF を含むポストで非同期アップロード動作を有効にするには、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 のみがサポートされています
  • 音声コーデックは Low Complexity プロファイルの AAC である必要があります (High-Efficiency AAC はサポートされていません)
  • 音声は mono または stereo であり、5.1 以上ではない必要があります
  • open GOP を使用してはいけません
  • progressive scan を使用している必要があります

追加情報

以下の表の各行はアップロード時の推奨設定を示していますが、必須ではありません。アップロードされたすべてのメディアは、複数のプラットフォーム向けに最適化されるよう処理されます。
OrientationWidthHeightVideo BitrateAudio Bitrate
Landscape12807202048K128K
Landscape640360768K64K
Landscape320180256K64K
Portrait72012802048K128K
Portrait360640768K64K
Portrait180320256K64K
Square7207202048K128K
Square480480768K64K
Square240240256K32K
メディアのアップロード方法の例については、チャンク方式メディアアップロードのドキュメント を参照してください。

トラブルシューティング

Media API に関する問題が発生した場合は、開発者フォーラム内の Media API カテゴリ を参照して、解決方法を確認してください。