https://ytsave.appYTSave로 다운로드 생성
공용 미디어 URL을 해석하고 정확한 형식을 선택하고 비동기 작업을 생성한 다음 서명된 결과를 사용자에게 전달합니다. 동일한 경계형 프로덕션 파이프라인이 YTSave 웹사이트를 구동합니다.
빠른 시작
YTSave는 먼저 지원 활성화된 자격 증명을 식별하여 API 호스트를 처리합니다. 이어서 할당된 테넌트 엔드포인트를 따르며 서버 전용 호출 경로를 표시 상태로 유지합니다.
X-API-Key: ys_live_…YTSaveClientv1# Available only after support activation
export YTSAVE_API_KEY="issued-after-review"
curl -X POST https://ytsave.app/v1/resolve \
-H "X-API-Key: $YTSAVE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://www.youtube.com/watch?v=VIDEO_ID"}'자격 증명 안전성을 설명하기 위해, YTSave는 서버 측 비밀 저장소를 클라이언트 번들 내장과 분리합니다. 증거 기록은 공개 로그나 저장소에 별도의 위치를 부여하지 않습니다.
링크 해결하기
YTSave는 Resolve 작업을 처리할 때 먼저 소스 감지를 식별합니다. 그 다음 제출된 URL 하나에서 형식을 따르며, 발명된 출력은 보기에 포함하지 않습니다.
/v1/resolve범위: 해결| 필드 | 종류 | 필수 | 설명 |
|---|---|---|---|
url | HTTPS URL | 네 | 분석할 공개 또는 승인된 미디어 페이지. |
tenant | 문자열 | 네 | 할당된 테넌트 도메인. 일반적으로 생략됩니다. |
{
"success": true,
"platform": "youtube",
"title": "Example video",
"formats": [
{"id":"18","type":"video","quality":"360p","container":"mp4"}
],
"cached": false
}형식 식별자를 설명하기 위해, YTSave는 반환된 값을 링크별 가용성과 변경 없이 분리합니다. 증거 기록은 추측된 품질 레이블에 별도의 위치를 부여하지 않습니다.
다운로드 작업 만들기 및 추적
작업 생성의 경우, YTSave는 비동기 준비로 시작합니다. 그 증거 기록은 짧은 HTTP 요청과 짝을 이루며 제한된 작업자 실행으로 끝납니다.
/v1/jobs범위 : 일자리| 필드 | 종류 | 필수 | 설명 |
|---|---|---|---|
url | HTTPS URL | 네 | 해결하기 위해 제출한 동일한 정규화된 소스. |
format_id | 문자열 | 네 | 해결 응답에서 정확한 ID. |
tenant | 문자열 | 네 | 할당된 테넌트 도메인. 일반적으로 생략됩니다. |
curl -X POST https://ytsave.app/v1/jobs \
-H "X-API-Key: $YTSAVE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://www.youtube.com/watch?v=VIDEO_ID","format_id":"18"}'job_id.GET /v1/jobs/{job_id} 같은 키로 열어야 합니다.| 상태 | 의미 | 클라이언트 동작 |
|---|---|---|
queued | 경계가 있는 대기열에 허용됨. | 백오프로 다시 폴링합니다. |
extracting | 소스 메타데이터 또는 경로를 새로 고침합니다. | 폴링을 계속합니다. |
processing | 다운로드, 리믹스 또는 병합. | 서버 진행 상황을 표시합니다. |
ready | 서명된 다운로드가 가능합니다. | URL을 사용자에게 보냅니다. |
failed | 터미널 구조화 오류. | 읽기 error_code. 권장되는 경우에만 다시 시도하십시오. |
expired | 임시 출력이 제거되었습니다. | 새 작업을 만듭니다. |
curl https://ytsave.app/v1/jobs/JOB_ID \
-H "X-API-Key: $YTSAVE_API_KEY"YTSave는 Job 폴링을 쉽게 스캔할 수 있도록 합니다.페이지는 1초의 초기 대기로 시작하여 캡이 걸린 백오프로 이동하고 임시 서명된 전달을 명확하게 표시합니다.
예측 가능한 오류
Error 계약의 경우 YTSave는 지원 요청 ID 전에 하나의 비 2xx 봉투를 확인합니다. 이 증거 기록은 또한 예측 가능한 클라이언트 처리를 명확하게합니다.
{
"success": false,
"error": {
"code": "RATE_LIMITED",
"category": "rate_limited",
"message": "Too many requests. Please try again shortly.",
"retryable": true,
"details": {"retry_after_seconds": 20}
},
"request_id": "…"
}| HTTP | 전형적인 의미 | 동작 |
|---|---|---|
| 400 | 잘못된 URL, 본문 또는 사용할 수 없는 형식입니다. | 요청을 수정합니다. 형식에 대해 다시 해결합니다. |
| 401 | 누락, 잘못된, 만료 또는 잘못된 범위 키. | 서버 측 자격 증명을 확인합니다. |
| 403 | 테넌트 또는 소스 정책이 요청을 거부했습니다. | 정책을 우회하지 마십시오.지원에 문의하십시오. |
| 404 | 알 수 없거나 만료된 작업입니다. | 적절한 경우 새 작업을 만듭니다. |
| 429 | 요청 또는 활성 작업 제한에 도달했습니다. | 명예 retry_after_seconds. |
| 503 | 대기열/용량 또는 업스트림을 일시적으로 사용할 수 없습니다. | 지수 백오프 및 지터로 다시 시도합니다. |
운영 계약
YTSave는 API 소비자와 상위 미디어 서비스를 보호하기 위해 승인 시마다 운영 할당량을 발행합니다.
- idempotent 애플리케이션 로직을 사용하고 동일한 사용자 클릭에 대해 중복 작업을 시작하지 마십시오.
- 캐시는 메타데이터를 간략하게 해결하지만 서명된 다운로드 URL은 항상 만료된 것으로 취급합니다.
- 지터가 있는 한정된 지수 백오프를 사용하여
429,503그리고 재시도 가능한 오류들. - 공용 미디어 또는 액세스 권한이 있는 미디어만 처리합니다.DRM 및 액세스 제어가 우회되지 않습니다.
- 요청 ID와 작업 ID를 개인 운영 로그에 보관하십시오. 제출된 URL을 불필요하게 로그하지 마십시오.
YTSave는 탐색 전에 먼저 활성화를 식별하여 스키마 접근을 처리합니다. 그 후 할당된 인증을 따르며 문서화된 요청 형식을 계속 확인합니다. OpenAPI 참조
API 키 요청하기
API 소비자, 월간 요청 추정치 및 지원되는 플랫폼 요구 사항을 문서화하십시오. YTSave는 한 번만 표시되는 키를 발급하기 전에 해결, 작업 제출 또는 둘 다가 정당한지 검토합니다.
API 액세스 요청 키는 테넌트 범위가 있고 취소 가능하며 연락처 양식을 통해 발급됩니다.익명 스크립트는 다운로더 작업을 실행할 수 없습니다.