{"openapi":"3.0.3","info":{"title":"APICK 유튜브 오디오 다운로드","version":"1.0.0","description":"유튜브 공개 영상의 소리만 MP3·M4A·Opus 파일로 내려받습니다. 구간만 잘라 받을 수 있고 파일 또는 1시간 유효 다운로드 링크로 받습니다."},"servers":[{"url":"https://apick.app"}],"paths":{"/rest/youtube_audio_download":{"post":{"summary":"유튜브 오디오 다운로드","description":"유튜브 공개 영상의 소리만 MP3·M4A·Opus 파일로 내려받습니다. 구간만 잘라 받을 수 있고 파일 또는 1시간 유효 다운로드 링크로 받습니다.","security":[{"bearerAuth":[]}],"parameters":[],"responses":{"200":{"description":"서비스별 성공·처리 상태 응답","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"video_id":{"type":"string","description":"11자리 영상 ID"},"title":{"type":"string","description":"영상 제목"},"duration":{"type":"integer","description":"받은 길이(초). 구간을 지정하면 구간 길이"},"size":{"type":"integer","description":"파일 크기(바이트)"},"size_units":{"type":"integer","description":"용량 요금 단위 수(10MB 단위 올림)"},"content_type":{"type":"string","description":"파일 형식"},"filename":{"type":"string","description":"파일명"},"download_url":{"type":"string","description":"다운로드 주소. 인증키 없이 받을 수 있고 이어받기(Range)를 지원합니다."},"expires_at":{"type":"string","description":"다운로드 주소 만료 시각(ISO 8601, 발급 1시간 뒤)"},"format":{"type":"string","description":"파일 형식 (mp3·m4a·opus)"},"bitrate":{"nullable":true,"type":"integer","description":"MP3 비트레이트(kbps). 그 밖의 형식은 null"},"billing":{"type":"object","properties":{"base":{"type":"integer","description":"기본요금"},"size_unit_cost":{"type":"integer","description":"10MB당 요금"},"size_cost":{"type":"integer","description":"용량 요금"},"total":{"type":"integer","description":"합계(= api.cost)"}},"description":"요금 내역"},"success":{"type":"integer","description":"API 서버 정상 응답 여부"}},"description":"조회 데이터"},"api":{"type":"object","properties":{"success":{"type":"boolean","description":"API 서버 정상 응답 여부"},"cost":{"type":"integer","description":"이번 호출 요금(기본요금 + 용량 요금)"},"pl_id":{"type":"integer","description":"API 결제 로그 ID"},"ms":{"type":"integer","description":"API 응답 시간"}},"description":"API 호출 공통 데이터"}}}}}},"default":{"description":"HTTP 상태 및 서비스 오류코드 확인","content":{"application/json":{"schema":{"type":"object"}}}}},"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"유튜브 영상 URL 또는 11자리 영상 ID (string)","example":"https://www.youtube.com/watch?v=dQw4w9WgXcQ"},"format":{"type":"string","description":"파일 형식 mp3(기본)·m4a·opus (string)","enum":["mp3","m4a","opus"],"example":"mp3"},"bitrate":{"type":"string","description":"MP3 비트레이트(kbps). 기본 192 (string)","enum":["128","192","320"],"example":"320"},"start":{"type":"string","description":"구간 시작(초 또는 시:분:초) (string)"},"end":{"type":"string","description":"구간 끝(초 또는 시:분:초) (string)"},"delivery":{"type":"string","description":"file: 응답 본문으로 오디오 파일 (기본값)link: JSON과 1시간 유효한 다운로드 주소 (string)"}},"required":["url"]}}}}}}},"x-code-tables":[{"title":"HTTP 상태 코드","columns":["HTTP","상황","설명"],"rows":[["400","입력 오류","영상 주소, format, bitrate, start·end, delivery 값을 확인하세요. 파일이 최대 2GB를 넘을 때도 400으로 응답합니다(낮은 화질이나 구간을 지정하세요)."],["402","포인트 부족","예상 요금 또는 실제 요금보다 사용 가능한 포인트가 적습니다. 과금하지 않습니다."],["404","영상 없음","삭제·비공개 영상이거나 잘못된 주소입니다."],["408","시간 초과","처리 시간이 초과됐습니다. 과금하지 않습니다."],["424","받기 불가","연령 제한·회원 전용 영상, 진행 중이거나 예정된 라이브 방송, 요청이 몰린 경우 또는 일시적인 실패입니다. 과금하지 않습니다."]]}],"x-service-errors":[],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}}}}