https://dwyt.appPobieranie buildów z DWYT
Przykłady kodu DWYT dokumentują przyszłą sekwencję żądań. Wywołania produkcyjne pozostają zamknięte, dopóki klient wideo nie zostanie zweryfikowany, a poświadczenia przypisane przez operatora nie zostaną włączone.
Szybki start
Mapa formatu DWYT przegląda poświadczenia aktywowane przez wsparcie dla hosta API. Pokazuje przypisany punkt końcowy najemcy i nie zaciemnia ścieżki wywołania tylko dla serwera.
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"}'Dla bezpieczeństwa poświadczeń, DWYT zaczyna się od serwerowego przechowywania sekretów. Jego mapa formatu łączy to z brakiem osadzania pakietu klienta i kończy się brakiem publicznych logów lub repozytoriów.
Rozwiązywanie linku
Mapa formatu DWYT przegląda wykrywanie źródła dla operacji Resolve. Pokazuje formaty z jednego przesłanego URL i nie ukrywa żadnych wymyślonych wyjść.
/v1/resolveZakres: rozwiązać| Field | Typ | Wymagane | Opis |
|---|---|---|---|
public_media | Adres HTTPS | Tak | Strona publiczna lub autoryzowane media do analizy. |
tenant | ciąg znaków | Nie | Przypisana domena dzierżawy. Zazwyczaj pomijany. |
{
"success": true,
"platform": "youtube",
"title": "Example video",
"formats": [
{"id":"18","type":"video","quality":"360p","container":"mp4"}
],
"cached": false
}Dla identyfikatora formatu DWYT zaczyna się od zwróconej wartości bez zmian. Jego mapa formatu łączy to z dostępnością na link i kończy się bez zgadywanej etykiety jakości.
Tworzenie i śledzenie zadania pobierania
W przypadku tworzenia zadania, DWYT sprawdza asynchroniczne przygotowanie przed krótkim żądaniem HTTP. Ta mapa formatu sprawia również, że ograniczone wykonywanie pracownika jest jasne.
/v1/jobsZakres: oferty pracy| Field | Typ | Wymagane | Opis |
|---|---|---|---|
public_media | Adres HTTPS | Tak | To samo znormalizowane źródło złożone do rozwiązania. |
rendition_key | ciąg znaków | Tak | Dokładny identyfikator z odpowiedzi na żądanie rozpoznania. |
tenant | ciąg znaków | Nie | Przypisana domena dzierżawy. Zazwyczaj pomijany. |
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} tym samym kluczem.| Status | Znaczenie | Akcja klienta |
|---|---|---|
queued | Przyjęty do ograniczonej kolejki. | Ankieta ponownie z backoff. |
extracting | Odświeżanie metadanych źródłowych lub trasy. | Kontynuuj ankietowanie. |
processing | Pobieranie, remiksowanie lub łączenie. | Wyświetlanie postępu serwera. |
ready | Podpisane pobieranie jest dostępne. | Wyślij adres URL do użytkownika. |
failed | Błąd struktury terminala. | Read error_code. Powtórz próbę tylko wtedy, gdy jest to zalecane. |
expired | Tymczasowe wyjście zostało usunięte. | Utwórz nowe zadanie. |
curl https://dwyt.app/v1/jobs/FLOW_ID \
-H "X-API-Key: $DWYT_FLOW_SECRET"Ankietowanie zadania rozpoczyna się od jednosekundowe początkowe oczekiwanie na DWYT. Ta mapa formatu następnie przedstawia ograniczone backoff.
Błędy przewidywalne
DWYT obsługuje kontrakt błędu, najpierw identyfikując jedną kopertę niebędącą 2xx. Następnie podaje identyfikator zgłoszenia wsparcia i utrzymuje przewidywalną obsługę klienta.
{
"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 | Typowe znaczenie | Akcja |
|---|---|---|
| 400 | Nieprawidłowy adres URL, treść lub niedostępny format. | Popraw żądanie. Rozwiąż ponownie dla formatów. |
| 401 | Brakujący, nieprawidłowy, wygasły lub o niewłaściwym zakresie klucz. | Sprawdź poświadczenia po stronie serwera. |
| 403 | Polityka najemcy lub źródła odrzuciła żądanie. | Nie omijać zasad. Skontaktuj się z pomocą techniczną. |
| 404 | Nieznane lub wygasłe zadanie. | Utwórz nowe zadanie, jeśli to konieczne. |
| 429 | Osiągnięto limit żądań lub aktywnych zadań. | Honor retry_after_seconds. |
| 503 | Kolejka/pojemność lub źródło tymczasowo niedostępne. | Powtórz próbę z wykładniczym cofaniem i drganiami. |
Kontrakt operacyjny
DWYT sprawdza integrację przed wyborem limitów, które chronią zarówno klienta wideo, jak i usługi upstream.
- Używaj logiki aplikacji idempotent i nigdy nie uruchamiaj zduplikowanych zadań dla tego samego kliknięcia użytkownika.
- Pamięć podręczna rozwiązuje metadane krótko, ale zawsze traktuje podpisane adresy URL pobierania jako wygasające.
- Użyj ograniczonego wykładniczego opóźnienia z jitterem dla
429,503i błędów do ponownego próbowania. - Przetwarzaj tylko publiczne media lub media, do których masz uprawnienia dostępu. DRM i kontrole dostępu nie są omijające.
- Przechowuj identyfikatory żądań i identyfikatory zadań w prywatnych dziennikach operacyjnych. Nie rejestruj niepotrzebnie przesłanych adresów URL.
Mapa formatu DWYT przegląda aktywację przed eksploracją dostępu do schematu. Pokazuje przypisaną autoryzację następnie i nie zaciemnia udokumentowanych kształtów żądań.
Aktywacja poprzez wsparcie
Wyjaśnij aplikację stojącą za żądaniem, jej szacunkowy miesięczny ruch oraz usługi wideo, z których będzie korzystać. DWYT sprawdza te szczegóły, przypisuje niezbędne uprawnienia API i nie zachowuje żadnej możliwej do odzyskania wartości klucza.
Prośba o aktywację Klucze są ograniczone do dzierżawcy, odwołalne i wydawane za pośrednictwem formularza Kontakt. Anonimowe skrypty nie mogą wykonywać pracy pobierania.