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を使用してください。
メディアカテゴリー
tweet_image、tweet_video、tweet_gif) であるとみなされます。
最も一般的なメディアカテゴリーは以下のとおりです:
tweet_imagetweet_videotweet_gifdm_imagedm_videodm_gifsubtitles
画像の仕様と推奨事項
- サポートされている画像メディアの type:
JPG,PNG,GIF,WEBP - 画像サイズ:
<= 5 MB - アニメーション GIF のサイズ:
<= 15 MB
media_id とともに呼び出す際に適用される、プロダクトエンティティごとに固有の別のファイルサイズ上限があります。ファイルサイズの上限やその他の制約は、media_category パラメータによって異なる場合があります。
アニメーション GIF の推奨事項
- 解像度:
<= 1280x1080(widthxheight) - フレーム数:
<= 350 - ピクセル数:
<= 300 million(width*height*num_frames) - ファイルサイズ:
<= 15Mb
media_category パラメータ付きで chunked upload エンドポイントを使用してください。これにより、サーバーは GIF ファイルを非同期で処理でき、大きなファイルを処理するにはこの方式が必須となります。アニメーション GIF を含むポストで非同期アップロード動作を有効にするには、media_category=tweet_gif を指定してください。
動画の仕様と推奨事項
推奨設定
- ビデオコーデック:
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-EfficiencyAACはサポートされていません) - 音声は
monoまたはstereoであり、5.1 以上ではない必要があります open GOPを使用してはいけませんprogressive scanを使用している必要があります
追加情報
| Orientation | Width | Height | Video Bitrate | Audio Bitrate |
|---|---|---|---|---|
| Landscape | 1280 | 720 | 2048K | 128K |
| Landscape | 640 | 360 | 768K | 64K |
| Landscape | 320 | 180 | 256K | 64K |
| Portrait | 720 | 1280 | 2048K | 128K |
| Portrait | 360 | 640 | 768K | 64K |
| Portrait | 180 | 320 | 256K | 64K |
| Square | 720 | 720 | 2048K | 128K |
| Square | 480 | 480 | 768K | 64K |
| Square | 240 | 240 | 256K | 32K |