API 문서
App.apiDescription
시작하기
YTMP3CV.COM API를 사용하려면 API 키가 필요합니다. 아직 없다면 문의하기를 통해 시작하세요.
모든 API 요청은 다음 기본 URL로 보내야 합니다:
https://api.ytmp3cv.com/
인증
모든 요청의 헤더에 API 키를 포함하세요:
Authorization: Bearer YOUR_API_KEY
엔드포인트
YouTube를 MP3로 변환
POST /convert
YouTube 동영상을 MP3 형식으로 변환합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
url | string | YouTube 동영상 URL |
quality | string | 선택사항. 오디오 품질 (high, medium, low). 기본값: high |
요청 예시
import requests
api_key = 'YOUR_API_KEY'
headers = {
'Authorization': f'Bearer {api_key}',
'Content-Type': 'application/json'
}
data = {
'url': 'https://www.youtube.com/watch?v=dQw4w9WgXcQ',
'quality': 'high'
}
response = requests.post('https://api.ytmp3cv.com/convert', headers=headers, json=data)
if response.status_code == 200:
result = response.json()
print(f"Download URL: {result['download_url']}")
else:
print(f"Error: {response.status_code}")
변환 상태 확인
GET /status/{conversion_id}
변환 작업의 상태를 확인합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
conversion_id | string | 변환 작업의 ID |
요청 예시
import requests
api_key = 'YOUR_API_KEY'
headers = {
'Authorization': f'Bearer {api_key}'
}
conversion_id = 'abc123'
response = requests.get(f'https://api.ytmp3cv.com/status/{conversion_id}', headers=headers)
if response.status_code == 200:
result = response.json()
print(f"Status: {result['status']}")
print(f"Progress: {result['progress']}%")
else:
print(f"Error: {response.status_code}")
일괄 변환
POST /batch-convert
단일 요청으로 여러 YouTube 동영상을 MP3 형식으로 변환합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
urls | array | YouTube 동영상 URL 배열 |
quality | string | 선택사항. 오디오 품질 (high, medium, low). 기본값: high |
요청 예시
import requests
api_key = 'YOUR_API_KEY'
headers = {
'Authorization': f'Bearer {api_key}',
'Content-Type': 'application/json'
}
data = {
'urls': [
'https://www.youtube.com/watch?v=dQw4w9WgXcQ',
'https://www.youtube.com/watch?v=9bZkp7q19f0'
],
'quality': 'high'
}
response = requests.post('https://api.ytmp3cv.com/batch-convert', headers=headers, json=data)
if response.status_code == 200:
result = response.json()
for job in result['jobs']:
print(f"Conversion ID: {job['conversion_id']}")
else:
print(f"Error: {response.status_code}")
속도 제한
공정한 사용과 서비스 품질 유지를 위해 API에 속도 제한을 구현했습니다. 현재 제한은 다음과 같습니다:
시간 프레임 | 요청 제한 |
---|---|
분당 | 100 requests |
시간당 | 1,000 requests |
일당 | 10,000 requests |
이 제한을 초과하면 429 Too Many Requests
응답을 받게 됩니다. 응답에는 다음 헤더가 포함됩니다:
X-RateLimit-Limit
: 해당 요청에 대한 속도 제한 상한X-RateLimit-Remaining
: 시간 창에 남은 요청 수X-RateLimit-Reset
: 속도 제한이 재설정되기 전 남은 시간 (UTC 에포크 초)
특정 사용 사례에 맞는 더 높은 속도 제한을 원하시면 영업팀에 문의해 주세요.
오류 처리
설명
코드 | 설명 |
---|---|
200 OK | 요청이 성공했습니다. |
400 Bad Request | 요청이 잘못되었거나 처리할 수 없습니다. 정확한 오류는 오류 메시지에 설명되어 있습니다. |
401 Unauthorized | 요청에 사용자 인증이 필요합니다. |
403 Forbidden | 서버가 요청을 이해했지만 승인을 거부합니다. |
404 Not Found | 요청한 리소스를 찾을 수 없습니다. |
429 Too Many Requests | 주어진 시간 동안 너무 많은 요청을 보냈습니다. |
500 Internal Server Error | 서버에 문제가 발생했습니다. 나중에 다시 시도해 주세요. |
모든 오류 응답에는 다음 구조의 JSON 객체가 응답 본문에 포함됩니다:
{
"error": {
"code": "ERROR_CODE",
"message": "A human-readable error message"
}
}
이러한 시나리오를 원활하게 관리하고 부드러운 사용자 경험을 제공하기 위해 애플리케이션에 적절한 오류 처리를 구현하는 것이 좋습니다.