Instagram Reels API 업로드 영상 요구 사항
Instagram API는 공개 video_url의 Reels를 cURL로 가져옵니다. MP4·MOV, H.264·HEVC, 23–60 fps, 3초–15분, 300 MB 규칙마다 Sume MP4를 맞추는 법.

Instagram Graph API로 Reels를 게시하려면, Instagram이 공개 서버에서 cURL로 가져가는 video_url을 넘깁니다. 파일은 moov atom이 앞에 있는 MOV나 MP4여야 하고, 23–60 fps의 H.264나 HEVC, 48 kHz 이하의 AAC 오디오, 너비 최대 1,920픽셀, 길이 3초–15분, 크기 최대 300 MB여야 합니다. media.sume.com에 있는 Sume MP4는 공개되어 있으므로 그 URL을 video_url에 넣을 수 있습니다. 먼저 프로브 값을 이 목록과 대조하세요.
Instagram 규칙은 Meta의 IG User Media 레퍼런스와 콘텐츠 게시 가이드에서, Facebook 규칙은 Reels 게시 API 가이드에서 인용했으며, 모두 2026-09-27에 확인했습니다. Sume 관련 사실은 Timeline 1.0, 영상 트림, 오디오 분리, 영상 검사 문서에서 가져왔습니다.
Instagram과 Facebook의 Reels 영상 요구 사항은 무엇인가요?
Instagram 레퍼런스에는 Reels 규격이 하나 나와 있습니다. Facebook 페이지는 별도의 API로 Reels를 게시하며, 그 API에는 자체 규격이 있습니다.
| 항목 | Instagram Reels | Facebook Reels |
|---|---|---|
| 컨테이너 | MOV 또는 MP4, edit list 없음, moov atom을 앞에 배치 | .mp4(권장) |
| 영상 | HEVC 또는 H.264, 프로그레시브, closed GOP, 4:2:0 | H.264, H.265, VP9 또는 AV1; 4:2:0; 프로그레시브; 2–5초 closed GOP; 고정 프레임 레이트 |
| 프레임 레이트 | 23–60 fps | 24–60 fps |
| 화면 | 가로 최대 1,920픽셀; 비율 0.01:1–10:1, 9:16 권장 | 9:16; 1080×1920 권장, 최소 540×960 |
| 길이 | 3초–15분 | 3–90초 |
| 파일 크기, 영상 비트레이트 | 300 MB; VBR 최대 25 Mbps | 명시 없음 |
| 오디오 | AAC, 최대 48 kHz, 모노 또는 스테레오, 128 kbps | AAC Low Complexity, 48 kHz, 스테레오, 128 kbps 이상 |
| 게시 한도 | 24시간당 API 게시물 100개; 캐러셀 섹션에는 50개 | 24시간당 API 게시물 30개 |
Sume로 Reels 규격 영상을 만들려면 어떻게 하나요?
aspect_ratio: "9:16"(모델별 화면 비율)과 3초 이상의 duration으로 생성하세요. wan-3.0은 2초도 받지만, 이는 Instagram 최솟값보다 짧습니다. 클립이 하나라면 output: { width, height, fps }를 붙인 POST /v1/video-trim 재인코딩이 오디오를 AAC로 유지합니다. 클립이 여러 개라면 Timeline 1.0이 기본으로 1080×1920을 렌더링하는데, 이 크기는 Instagram의 가로 1,920픽셀 한도 안에 들고 Facebook 권장 크기와 같습니다. Timeline의 output.fps 값(24, 25, 30, 60)도 두 프레임 레이트 범위 안에 있습니다.
현재 Timeline 렌더는 소리를 클립이 아니라 오디오 스파인과 선택 사항인 사운드트랙에서 가져오므로, POST /v1/audio-detach로 클립의 오디오 트랙을 분리해 audio.url로 넘기세요. 생성 클립 자체의 인코딩은 문서화되어 있지 않습니다. 아래 인코더 설정은 Timeline, 필터, 그리고 트림의 기본 exact 모드에 적용됩니다.
Meta 목록과 다른 설정은 무엇이고, 어떻게 맞추나요?
먼저 무료 frames: false 검사를 실행하세요. 프로브는 fps, width, audio_sample_rate, audio_channels, size_bytes를 알려 줍니다. 그런 다음 항목별로 아래와 같이 맞추세요.
- 샘플 레이트와 채널: Facebook은 48 kHz 스테레오를 명시합니다. 트림에는 샘플 레이트 필드가 없고, 오디오 분리의
channels는source나mono만 받으므로, 스테레오 트랙을sample_rate: 48000으로 분리해 Timeline의audio.url로 쓰고, 결과물에서audio_sample_rate와audio_channels를 확인하세요. - 오디오 비트레이트와 GOP: Sume 인코더는 AAC를 192 kbps로 쓰고 GOP를 약 일 초로 제한하며, 둘 다 설정할 수 없습니다(전체 인코더 설정). 192 kbps는 Facebook의 최저 기준인 128 kbps를 넘습니다. Instagram 항목은 128 kbps라고만 적고 최저 기준인지 상한인지는 밝히지 않습니다. GOP 상한은 Facebook의 2–5초보다 짧습니다.
- 영상 비트레이트: 비트레이트 필드가 없으므로
size_bytes× 8 ÷duration_seconds÷ 1,000,000을 계산해 Instagram의 25 Mbps와 비교하세요. - 프로그레시브 스캔, edit list, closed GOP 여부는 Sume 문서에 설명되어 있지 않습니다. 컨테이너가 실패하면 직접 쓰는 도구로 확인하세요.
Instagram에 영상을 어떻게 넘기나요?
GET /v1/jobs/{id}/result에서 MP4의 media.sume.com URL을 가져오세요. 완료된 Job에는 그곳의 공개 아티팩트가 포함될 수 있고, media.sume.com에 호스팅된 Sume 미디어는 만료되지 않습니다(URL 수명). /v1/videos/{id}/content는 API 키가 필요하므로 넘기지 마세요. 커버 이미지로는 POST /v1/video-frames를 쓸 수 있으며, 이 엔드포인트는 최대 300초 길이의 클립에서 소스 크기의 내구성 JPEG 스틸을 반환합니다. Instagram은 9:16이 아닌 cover_url을 가운데 9:16 영역으로 잘라 씁니다.
Timeline, 필터, 트림은 MP4를 +faststart로 기록하며, FFmpeg 문서는 이 옵션을 moov atom을 맨 앞으로 옮기는 것으로 설명합니다. Meta 레퍼런스에 나온 대로 컨테이너를 만든 다음, 컨테이너 ID로 media_publish를 호출하세요.
POST https://graph.facebook.com/v25.0/<IG_USER_ID>/media
?media_type=REELS
&video_url=https://media.sume.com/artifacts/artf_demo/reel.mp4
&cover_url=https://media.sume.com/artifacts/artf_demo/cover.jpg
&access_token=<USER_ACCESS_TOKEN>API 게시를 제한하는 다른 요소는 무엇인가요?
Meta 페이지에는 파일 설정으로 바꿀 수 없는 한도도 있습니다.
- 컨테이너는 24시간 뒤 만료되며, 계정마다 롤링 24시간 동안 400개까지 만들 수 있습니다. 영상 업로드는 비동기이므로, 컨테이너의
status_code가FINISHED가 된 뒤 게시하세요. - 게시물 한도에 대해서는 Meta 가이드의 내용이 서로 엇갈립니다. 요청 한도 섹션은 24시간 이동 기간에 API로 게시한 게시물 100개라고 하고, 캐러셀 섹션은 24시간 동안 게시물 50개라고 합니다.
GET /<IG_ID>/content_publishing_limit으로 계정의 현재 사용량을 볼 수 있습니다. is_ai_generated는 컨테이너에 AI 사용을 스스로 밝히는 선택 항목입니다.- Facebook의 호스팅 파일 업로드는 robots.txt가
facebookexternalhit사용자 에이전트를 막는 사이트의 파일을 거부합니다. Sume 문서는 robots.txt를 다루지 않으므로, 이 업로드가 실패하면 대신 파일 바이트를 보내세요.
출처
관련 글
미디어 도구 카테고리의 다른 글
- 영상 자막 번역 API: 영어 자막을 한국어 자막으로
Sume로 영어 영상의 자막을 한국어로 번역하세요. 타이밍이 있는 문장을 받아 줄마다 번역한 뒤, 그 줄을 cue로 보내 한글 스타일로 입힙니다.
- LinkedIn 영상 광고 규격: 30 fps 미만·4:5·SRT 자막
LinkedIn 영상 광고는 30 fps 미만의 H.264·VP8 MP4, 3초–30분, 최대 500 MB, SRT 자막을 받습니다. Sume로 24나 25 fps를 지정하고 4:5로 잘라 내세요.
- Pinterest 핀 크기와 영상 규격: 2:3 이미지와 클립
Pinterest는 이미지 핀에 2:3 또는 1000x1500을 권장하고, 영상은 4초에서 15분까지 받습니다. Sume로 2:3 이미지를 만들고 9:16 클립은 2:3이나 4:5로 크롭하세요.
- API로 영상 일부 잘라내기: 중간 구간을 빼고 다시 잇기
영상 트림은 Job 하나에 구간 하나만 남깁니다. 중간 구간을 잘라내려면 남길 구간들을 Sume Timeline 1.0 Job 하나에서 차례로 이어 렌더링하세요.
작성자 Sume