メインコンテンツへスキップPOST /2/media/upload エンドポイントを使用する際に理解しておくべき重要なポイントがいくつかあります。OAuth を用いたメディアのアップロードはやや複雑になり得るため、留意点と、このエンドポイントの使い方を示す実行可能なサンプルを以下にまとめています。
- 1つのPostには、写真は最大4枚、アニメーションGIFは1件、または動画は1件を添付できます。
- 送信する画像は生のバイナリ、またはバイナリのbase64エンコードとしてください。
Content-Typeが適切に設定されている限り(不明な場合はapplication/octet-stream)、それ以外のエンコードやエスケープは不要です。
- base64エンコードした画像を送信する場合は、メッセージの画像パートに「Content-Transfer-Encoding: base64」を必ず設定してください。
- マルチパートメッセージの境界は、単独の行に置き、CRLFで終端する必要があります。
- このエンドポイントを使ったPOSTの実用例については、xurlでのテストを推奨します。あわせて、利用可能なX Librariesもご覧ください。
- JavaScriptや長整数を正確に表現できないその他の言語では、APIレスポンスで提供される
media_id_stringを使用してください。
Media Category パラメータは、アップロードするメディアファイルの用途を定義し、メディアアップロードに適用されるファイルサイズ上限やその他の制約に影響する場合があります。メディアを利用する際の問題を避けるため、アップロード時には正しいメディアカテゴリを指定することが重要です。これは、アップロードフローの一部として INIT リクエストで渡す任意の値です。メディアカテゴリが指定されていない場合、アップロードされたメディアはコンテンツタイプに応じて Post 用のメディア(tweet_image、tweet_video、または tweet_gif)と見なされます。
最も一般的なメディアカテゴリは以下のとおりです。
tweet_image
tweet_video
tweet_gif
dm_image
dm_video
dm_gif
tweet_image
Ads API パートナーの方は、プロモーション動画に推奨されるメディアカテゴリの詳細についてはこちらのドキュメントを参照してください。
画像ファイルは、以下のすべての条件を満たす必要があります。
- サポートされる画像メディアタイプ:
JPG, PNG, GIF, WEBP
- 画像サイズ:
<= 5 MB
- アニメーション GIF のサイズ:
<= 15 MB
上記のファイルサイズ上限は、メディアアップロードエンドポイントで強制されます。加えて、media_id を使用して Post 作成(または同様の)エンドポイントを呼び出す際に適用される、製品エンティティ固有のファイルサイズ上限があります。ファイルサイズ上限やその他の制約は、media_category パラメータによって異なる場合があります。
GIFはファイルサイズの上限内でも、Postの作成時に失敗する場合があります。成功率を高めるため、次の制約に従ってください。
- 解像度:
<= 1280x1080(width × height)
- フレーム数:
<= 350
- ピクセル数:
<= 300 million(width * height * num_frames)
- ファイルサイズ:
<= 15MB
より大きなGIFを処理するには、media_category パラメータを指定して chunked upload エンドポイントを使用してください。これにより、サーバー側でGIFファイルを非同期処理でき、より大きなファイルの処理要件を満たせます。アニメーションGIFを含むPostで非同期アップロードを有効にするには、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 は非対応)
- オーディオは
モノラル または ステレオ とし、5.1 以上は不可
open GOP を使用しないこと
プログレッシブスキャン を使用すること
以下の表はアップロード時の推奨値を示すもので、必須ではありません。すべてのアップロードは複数のプラットフォームで最適化されるよう処理されます。
| 向き | 幅 | 高さ | 動画ビットレート | オーディオビットレート |
|---|
| 横向き | 1280 | 720 | 2048K | 128K |
| 横向き | 640 | 360 | 768K | 64K |
| 横向き | 320 | 180 | 256K | 64K |
| 縦向き | 720 | 1280 | 2048K | 128K |
| 縦向き | 360 | 640 | 768K | 64K |
| 縦向き | 180 | 320 | 256K | 64K |
| 正方形 | 720 | 720 | 2048K | 128K |
| 正方形 | 480 | 480 | 768K | 64K |
| 正方形 | 240 | 240 | 256K | 32K |
メディアのアップロード方法の例は、分割アップロードのドキュメントをご覧ください。
Media API に関する問題は、開発者フォーラムの Media API カテゴリを参照し、解決策をお探しください。