Skip to content

dubbit.ai Docs

dubbit.ai to pipeline dubbingowy oparty o Cloudflare Workers. Worker orkiestruje etapy, ale nie uruchamia lokalnego ML i nie renderuje ciężkiego audio/video.

  • Brak lokalnego ML/GPU.
  • Brak własnego mix/export w Worker.
  • Każdy etap ML idzie przez zewnętrzne API providerów.
  • D1 trzyma metadane, R2 trzyma pliki.
  • Brak fallbacku typu noop: błąd providera kończy job jako failed.
  1. Import assetu:
    • domyślnie upload własnego wideo (/api/assets/init-upload -> /api/assets/complete-upload),
    • alternatywnie import z YouTube (youtubeImportCreate).
  2. Utworzenie parent joba dubbing i uruchomienie workflow.
  3. Workflow tworzy child kroki: transcribe -> diarize -> voice-clone -> translate -> tts -> export.
  4. Webhook providera aktualizuje status i wznawia pipeline.
  5. Finalny export trafia do dubbit-exports (R2).

Oprócz pełnego pipeline (dubbing), poszczególne kroki mogą być uruchomione indywidualnie (typy jobów: transcribe, diarize, voice-clone, translate, tts, export). Standalone joby łączą się z danymi z poprzedniego kroku przez sourceJobId w metadanych.

  • Integracja płatności opiera się o @dodopayments/better-auth.
  • Endpointy billingowe są pod /api/auth/dodopayments/* (checkout, portal, subscriptions, payments, webhook).
  • Referencja docs: Dodo Payments llms-full.
  • Better Auth (social login, passkeys, 2FA, phone OTP): guide.
  • Realtime progress przez SSE (/api/jobs/:jobId/events).
  • Podgląd media z R2 (video + audio) na widoku projektu.
  • Transcript insights: liczba segmentów, słów, rozpoznanych speakerów, status tłumaczenia.
  • Dubbing full pipeline — jeden przycisk uruchamiający cały pipeline (STT → diarize → translate → TTS → export).
  • Workflow runs + timeline — parent dubbing jest pokazywany jako karta uruchomienia, a child kroki jako timeline wybranego runa.
  • Individual step controls — 6 osobnych przycisków (Transcribe, Diarize, Voice Clone, Translate, TTS, Export) z automatycznym blokowaniem gdy brak danych z poprzednich kroków.
  • Active job lock — podczas running/waiting_webhook przyciski tworzenia nowych jobów są zablokowane.
  • Akcje na jobach:
    • Cancel dla queued/running/waiting_webhook (oznacza job jako failed, aby był możliwy Retry),
    • Retry dla child workflow tylko na ostatnim kroku danego runa (UI + backend),
    • Retry parenta dubbing oznacza resume tego samego jobId (bez tworzenia nowego parent joba),
    • Delete dla failed.
  • Usage dashboard (/usage) z podziałem na projekty i typy użycia.
  • Frontend UI standard (Tailwind + daisyUI): guide.

Sekcja API generuje się ze specyfikacji backendu (/api/openapi.json) przez plugin starlight-openapi.