POST /2/media/upload endpoint를 사용할 때 이해해야 할 몇 가지 중요한 개념이 있습니다. OAuth로 미디어를 업로드하는 것은 약간 까다로울 수 있으므로, 유의해야 할 사항과 이 endpoint 사용에 대한 작동 예제를 여기에 정리했습니다.
유의 사항
- Post에 최대 4장의 사진, 1개의 애니메이션 GIF 또는 1개의 비디오를 첨부할 수 있습니다.
- 전달되는 이미지는 원본 바이너리 이미지이거나 base64로 인코딩된 바이너리여야 하며, Content-Type이 적절히 설정된 경우(확실하지 않을 때는
application/octet-stream) 다른 방식으로 인코딩하거나 이스케이프할 필요가 없습니다. - base64 인코딩된 이미지를 게시할 때는 메시지의 이미지 부분에 “Content-Transfer-Encoding: base64”를 설정해야 합니다.
- Multi-part 메시지 경계는 자체 줄에 있어야 하며 CRLF로 종료되어야 합니다.
- 이 endpoint를 사용해 POST하는 방법의 작동 예제는 xurl로 테스트하는 것을 권장합니다. 또한 사용 가능한 X Libraries를 살펴보세요.
- 긴 정수를 정확히 표현할 수 없는 Javascript 및 기타 언어의 경우 API 응답에 제공되는
media_id_string을 사용하세요.
Media 카테고리
Media Category 파라미터는 업로드할 미디어 파일의 사용 사례를 정의하며 미디어 업로드에 적용되는 파일 크기 제한이나 기타 제약 조건에 영향을 줄 수 있습니다. 미디어를 사용하려 할 때 문제를 방지하려면 미디어를 업로드할 때 올바른 미디어 카테고리를 사용하는 것이 중요합니다. 업로드 흐름의 일부로 INIT 요청에 전달되는 선택 값입니다. Media category가 지정되지 않은 경우 업로드된 미디어는 콘텐츠 유형에 따라 Post용 미디어(tweet_image, tweet_video 또는 tweet_gif)로 간주됩니다.
가장 일반적인 미디어 카테고리는 다음과 같습니다:
tweet_imagetweet_videotweet_gifdm_imagedm_videodm_gifsubtitles
이미지 사양 및 권장 사항
이미지 파일은 다음 기준을 모두 충족해야 합니다:- 지원되는 이미지 미디어 유형:
JPG,PNG,GIF,WEBP - 이미지 크기:
<= 5 MB - 애니메이션 GIF 크기:
<= 15 MB
media_id로 Post 생성(또는 유사한) endpoint를 호출할 때 적용되는 별도의 제품 엔티티별 파일 크기 제한이 있습니다. 파일 크기 제한 및 기타 제약 조건은 media_category 파라미터에 따라 다를 수 있습니다.
애니메이션 GIF 권장 사항
GIF는 파일 크기 제한 내에 있더라도 Post 생성 중 실패할 수 있습니다. 성공률을 높이기 위해 다음 제약 조건을 준수하세요.- 해상도:
<= 1280x1080(widthxheight) - 프레임 수:
<= 350 - 픽셀 수:
<= 3억(width*height*num_frames) - 파일 크기:
<= 15Mb
media_category 파라미터와 함께 청크형 업로드 endpoint를 사용하세요. 이를 통해 서버가 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만 지원됩니다
- 오디오는 Low Complexity profile을 사용한
AAC여야 합니다. (High-EfficiencyAAC는 지원되지 않습니다) - 오디오는
모노또는스테레오여야 하며 5.1 이상은 안 됩니다 open GOP를 사용해서는 안 됩니다progressive scan을 사용해야 합니다
추가 정보
아래 표에서 각 행은 업로드 권장 사항을 나타내지만 요구 사항은 아닙니다. 모든 업로드는 여러 플랫폼에 걸친 최적화를 위해 처리됩니다.
미디어 업로드 방법의 예는 청크형 미디어 업로드 문서를 참조하세요.