POST /2/media/upload
endpoint 时,有几个重要概念需要了解。使用 OAuth 上传媒体可能稍显复杂,因此我们在此列出了一些注意事项,并提供了一个可运行的示例,演示如何使用该 endpoint。
请注意
- 在一条 Post 中,最多可附加 4 张照片、1 个动画 GIF 或 1 个视频。
- 传递的图像应为原始二进制数据或二进制的 base64 编码;只要正确设置 Content-Type(如不确定可使用:
application/octet-stream
),无需对内容进行其他编码或转义。 - 当发送 base64 编码的图像时,请确保在消息的图像部分设置“Content-Transfer-Encoding: base64”。
- 多部分消息的边界必须单独占一行,并以 CRLF 结尾。
- 有关如何使用此 endpoint 执行 POST 的示例,我们建议使用 xurl 进行测试。同时,查看可用的 X Libraries。
- 对于 JavaScript 以及任何无法准确表示长整型的语言,请使用 API 响应中提供的
media_id_string
。
媒体类别
tweet_image
、tweet_video
或 tweet_gif
)。
最常见的媒体类别包括:
tweet_image
tweet_video
tweet_gif
dm_image
dm_video
dm_gif
subtitles
图像规范与建议
- 支持的图像媒体类型:
JPG
、PNG
、GIF
、WEBP
- 图像大小:
<= 5 MB
- 动画 GIF 大小:
<= 15 MB
media_id
调用 Post 创建(或类似)endpoint 时,还会应用一个面向特定产品实体的单独文件大小限制。文件大小限制和其他约束可能因 media_category
参数而有所不同。
动图 GIF 使用建议
- 分辨率:
<= 1280x1080
(width
xheight
) - 帧数:
<= 350
- 像素数:
<= 3 亿
(width
*height
*num_frames
) - 文件大小:
<= 15MB
media_category
参数的分片上传 endpoint。这样可使服务器异步处理 GIF 文件,这是处理更大文件的必要条件。传入 media_category=tweet_gif
,即可为包含动图 GIF 的 Posts 启用异步上传行为。
视频规格与建议
推荐
- 视频编码格式:
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
低复杂度(LC)配置(不支持高效率AAC
) - 音频必须为
mono
或stereo
,不支持 5.1 或更高 - 不得包含
open GOP
- 必须使用
progressive scan
更多信息
方向 | 宽度 | 高度 | 视频码率 | 音频码率 |
---|---|---|---|---|
横向 | 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 |