MIDI 가져오기 API
인터페이스 설명
MIDI 엔드포인트는 스템 분리가 끝난 트랙을 표준 MIDI 파일로 변환해 편곡, 2차 창작, DAW 가져오기에 쓸 수 있게 합니다.
Suno는 MIDI 파일의 다운로드 주소를 제공하지 않고, 각 트랙의 음표 데이터(음높이, 시작·종료 시각, 세기)만 제공합니다. 이 엔드포인트는 그 음표 데이터를 표준 MIDI 파일(SMF format 1)로 변환해 그대로 반환하므로, 돌아오는 것은 항상 DAW에서 열 수 있는 실제 .mid 파일입니다.
엔드포인트: POST /api/music/download-file
이 페이지는 MIDI 전용 예시입니다. 다운로드 계열(미디어 주소, 단일 파일, 일괄 패키지, 생성 중 미리듣기)의 전체 설명은 곡 미디어 다운로드 및 미리듣기 API를 참고하세요.
과금: 무료. 이 엔드포인트는 기존 스템의 음표 데이터를 읽으며 크레딧을 차감하지 않습니다.
요청 파라미터
Headers
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| Authorization | string | 예 | Bearer YOUR_API_KEY |
| Content-Type | string | 예 | application/json |
바디 파라미터
| 파라미터 | 타입 | 필수 | 기본값 | 설명 |
|---|---|---|---|---|
| song_id | string | 예 | - | 분리된 단일 트랙의 곡 ID(/api/music/separate가 반환하는 각 clip id) |
| kind | string | 예 | - | midi로 고정 |
요청 예시
curl -X POST https://www.suno-api.io/api/music/download-file \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"song_id": "stem_clip_id",
"kind": "midi"
}' \
--output track.mid
응답 결과
응답 본문은 MIDI 파일의 바이너리 내용이며 JSON이 아닙니다.
| 응답 헤더 | 값 |
|---|---|
| Content-Type | audio/midi |
| Content-Disposition | attachment; filename="<곡 제목>.mid" |
다운로드 주소 받기
주소를 먼저 받은 뒤 다운로드하려는 경우(예: 일괄 패키지)에는 먼저 다음을 호출하세요:
curl -X POST https://www.suno-api.io/api/music/download-url \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"song_id":"stem_clip_id","kind":"midi"}'
{
"success": true,
"message": "",
"data": {
"song_id": "stem_clip_id",
"kind": "midi",
"url": "https://www.suno-api.io/api/music/download?song_id=stem_clip_id&kind=midi"
}
}
이 주소도 Authorization 요청 헤더가 있어야 접근할 수 있습니다. API Key 없이 호출하면 401이 반환됩니다.
MIDI 파일 설명
| 항목 | 값 | 설명 |
|---|---|---|
| 파일 형식 | SMF format 1 | Tempo 트랙 1개 + 악기마다 트랙 1개 |
| 시간 정밀도 | 480 PPQ | 박자당 480 tick |
| 템포 | 120 BPM | Suno는 초만 제공하고 BPM은 제공하지 않으므로 고정 템포로 타임라인을 기록합니다 |
| 타임라인 | 1초 = 960 tick |
플랫폼이 반환하는 초와 1:1로 대응하며, DAW로 가져온 뒤 필요하면 템포를 바꿀 수 있습니다 |
| 세기 | 0–127 | 플랫폼은 0–1 실수를 주며, 이 엔드포인트가 ×127로 환산해 둡니다 |
| 드럼 | MIDI 채널 10 | 플랫폼이 드럼으로 표시한 트랙은 자동으로 타악기 채널에 배치됩니다 |
주의 사항
- 스템 분리가 끝난 트랙에만 유효:
song_id에는/api/music/separate가 반환한 트랙 ID를 넣어야 하며, 원본 곡 ID는 사용할 수 없습니다. - 음표가 없는 스템도 정상 결과: FX 등 일부 트랙은 채보할 음표가 없으며, 이 경우 오류 대신 음표가 없는 정상적인 MIDI 파일이 반환됩니다.
- MIDI에는 음표 정보만 포함: 볼륨, 팬, 이펙터 같은 믹싱 정보는 MIDI에 없으므로 DAW에서 직접 음색을 설정해야 합니다.
- 트랙별로 개별 요청: 한 번의 요청은 한 트랙의
.mid를 반환합니다. 여러 트랙은 각각 호출하거나 Create UI의 일괄 패키지 다운로드를 사용하세요.