https://dwyt.appDWYT로 다운로드 빌드
DWYT 코드 샘플은 향후 요청 순서를 문서화합니다.비디오 클라이언트가 검토되고 운영자가 할당한 자격 증명이 활성화될 때까지 프로덕션 호출은 닫혀 있습니다.
빠른 시작
DWYT의 형식 맵은 API 호스트에 대한 지원 활성화 자격 증명을 검토합니다. 할당된 테넌트 엔드포인트를 다음으로 표시하며 서버 전용 호출 경로를 숨기지 않습니다.
X-API-Key: pending_activation_…DwytFlowv1# Available only after support activation
export DWYT_FLOW_SECRET="issued-after-review"
curl -X POST https://dwyt.app/v1/resolve \
-H "X-API-Key: $DWYT_FLOW_SECRET" \
-H "Content-Type: application/json" \
-d '{"public_media":"https://www.youtube.com/watch?v=VIDEO_ID"}'자격 증명 안전을 위해 DWYT는 서버 측 비밀 저장소로 시작합니다. 그 형식 맵은 클라이언트 번들 임베딩이 없는 쌍으로 끝나고 공개 로그 또는 리포지토리가 없습니다.
링크 해결하기
DWYT의 형식지도는 Resolve 작업을 위한 소스 탐지를 검토합니다. 그것은 하나의 제출된 URL에서 다음 형식을 보여주고 발명된 출력을 숨기지 않습니다.
/v1/resolve범위: 해결| 필드 | 종류 | 필수 | 설명 |
|---|---|---|---|
public_media | HTTPS URL | 네 | 분석할 공개 또는 승인된 미디어 페이지. |
tenant | 문자열 | 네 | 할당된 테넌트 도메인. 일반적으로 생략됩니다. |
{
"success": true,
"platform": "youtube",
"title": "Example video",
"formats": [
{"id":"18","type":"video","quality":"360p","container":"mp4"}
],
"cached": false
}Format 식별자의 경우 DWYT는 변경되지 않은 반환 값으로 시작합니다. 이 형식 맵은 링크별 가용성과 쌍을 이루며 추측된 품질 레이블이 없는 것으로 끝납니다.
다운로드 작업 만들기 및 추적
Job 생성의 경우, DWYT는 짧은 HTTP 요청 전에 비동기 준비를 확인합니다. 이 형식 맵은 또한 바운드된 워커 실행을 명확하게 합니다.
/v1/jobs범위 : 일자리| 필드 | 종류 | 필수 | 설명 |
|---|---|---|---|
public_media | HTTPS URL | 네 | 해결하기 위해 제출한 동일한 정규화된 소스. |
rendition_key | 문자열 | 네 | 해결 응답에서 정확한 ID. |
tenant | 문자열 | 네 | 할당된 테넌트 도메인. 일반적으로 생략됩니다. |
curl -X POST https://dwyt.app/v1/jobs \
-H "X-API-Key: $DWYT_FLOW_SECRET" \
-H "Content-Type: application/json" \
-d '{"public_media":"https://www.youtube.com/watch?v=VIDEO_ID","rendition_key":"18"}'flow_id.GET /v1/jobs/{flow_id} 같은 키로 열어야 합니다.| 상태 | 의미 | 클라이언트 동작 |
|---|---|---|
queued | 경계가 있는 대기열에 허용됨. | 백오프로 다시 폴링합니다. |
extracting | 소스 메타데이터 또는 경로를 새로 고침합니다. | 폴링을 계속합니다. |
processing | 다운로드, 리믹스 또는 병합. | 서버 진행 상황을 표시합니다. |
ready | 서명된 다운로드가 가능합니다. | URL을 사용자에게 보냅니다. |
failed | 터미널 구조화 오류. | 읽기 error_code. 권장되는 경우에만 다시 시도하십시오. |
expired | 임시 출력이 제거되었습니다. | 새 작업을 만듭니다. |
curl https://dwyt.app/v1/jobs/FLOW_ID \
-H "X-API-Key: $DWYT_FLOW_SECRET"작업 폴링은 DWYT에서 1초의 초기 대기로 시작됩니다. 이 형식 맵은 그런 다음 캡이 걸린 백오프를 제시합니다. 마지막 사실은 임시 서명된 전달입니다.
예측 가능한 오류
DWYT는 먼저 2xx가 아닌 봉투 하나를 식별하여 Error 계약을 처리합니다. 지원 요청 ID와 함께 따라오고 예측 가능한 클라이언트 처리를 보관합니다.
{
"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 | 대기열/용량 또는 업스트림을 일시적으로 사용할 수 없습니다. | 지수 백오프 및 지터로 다시 시도합니다. |
운영 계약
DWYT는 비디오 클라이언트와 업스트림 서비스를 모두 보호하는 할당량을 선택하기 전에 통합을 검토합니다.
- idempotent 애플리케이션 로직을 사용하고 동일한 사용자 클릭에 대해 중복 작업을 시작하지 마십시오.
- 캐시는 메타데이터를 간략하게 해결하지만 서명된 다운로드 URL은 항상 만료된 것으로 취급합니다.
- 지터가 있는 한정된 지수 백오프를 사용하여
429,503그리고 재시도 가능한 오류들. - 공용 미디어 또는 액세스 권한이 있는 미디어만 처리합니다. DRM 및 액세스 제어가 우회되지 않습니다.
- 요청 ID와 작업 ID를 개인 운영 로그에 보관하십시오. 제출된 URL을 불필요하게 로그하지 마십시오.
DWYT의 형식 맵은 Schema 액세스를 위한 탐색 전에 활성화를 검토합니다. 할당된 인증을 다음으로 표시하며 문서화된 요청 형태를 흐리게 하지 않습니다.
지원을 통해 활성화
요청의 배경에 있는 애플리케이션, 월별 트래픽 추정치 및 사용할 비디오 서비스를 설명합니다.DWYT는 해당 세부 정보를 검토하고 필요한 API 권한을 할당하며 복구 가능한 키 값을 보유하지 않습니다.
활성화 요청하기 키는 테넌트 범위가 있고 취소 가능하며 연락처 양식을 통해 발급됩니다.익명 스크립트는 다운로더 작업을 실행할 수 없습니다.