Przejdź do głównej treści

Odbieraj powiadomienia o projektach

Kontynuuj automatyzację, gdy napisy są gotowe, eksport się kończy lub projekt napotyka błąd.

API, MCP i Webhooks są w trakcie rozwoju i nie są jeszcze publicznie dostępne. Poradniki przedstawiają pierwszą wersję; przykłady wymagają publikacji usługi i pakietu.

Utwórz odbiorcę

Po otwarciu dodaj publicznego odbiorcę HTTPS w Ustawienia → Integracje, wybierz zdarzenia i zachowaj sekret podpisu wyświetlany raz. Możesz też użyć klucza z webhooks:manage:

curl --fail-with-body https://api.captionbolt.com/v1/webhooks \
  -H "Authorization: Bearer $CAPTIONBOLT_API_KEY" \
  -H 'Content-Type: application/json' \
  --data '{"url":"https://receiver.example/captionbolt","events":["project.completed","project.failed"]}'

Zastąp URL prawdziwym adresem. Dozwolone jest tylko publiczne HTTPS na porcie 443, bez przekierowań. Localhost i sieci prywatne nie odbierają bezpośrednio.

Wybierz zdarzenia

  • project.completed: eksport gotowy; domyślnie wybrane.
  • project.failed: przetwarzanie lub eksport nie powiodły się; domyślnie wybrane.
  • project.ready: pełne przetwarzanie zakończone, gotowe do kontroli lub eksportu.
  • project.cancelled: projekt anulowany.

Dotyczy odpowiednich filmów konta utworzonych w aplikacji, REST i MCP. Wyklucza niezależne Transcripts, projekty usunięte lub poza terminem dostępu. Ready nie potwierdza sprawdzenia przez człowieka.

{
  "id": "event-uuid",
  "type": "project.completed",
  "createdAt": "2026-09-10T12:00:00.000Z",
  "data": {
    "projectId": "project-uuid",
    "status": "completed",
    "stage": "export",
    "resultUrl": "https://api.captionbolt.com/v1/projects/project-uuid/result"
  }
}

data.resultUrl to uwierzytelniony endpoint, nie plik wideo. Użyj własnego API Key z odczytem, aby pobrać świeże linki. Zdarzenia zawierają metadane, nie film ani treść napisów.

Zweryfikuj przed przetwarzaniem

Format jest zgodny ze Standard Webhooks. Użyj zgodnego weryfikatora lub tych kontroli:

  1. Zachowaj surowe body i odczytaj webhook-id, webhook-timestamp, webhook-signature.
  2. Usuń whsec_, zdekoduj sekret base64 i oblicz HMAC-SHA256 z id.timestamp.rawBody. Porównaj podpis base64 w stałym czasie.
  3. Odrzuć przeszłe i przyszłe znaczniki poza ograniczoną tolerancją, np. pięcioma minutami. Podczas rotacji może być wiele podpisów v1, rozdzielonych spacjami; zaakceptuj zgodny z zaufanym kluczem.
  4. Usuwaj duplikaty według ID zdarzenia i utrwal pracę przed odpowiedzią 2xx. Przetwarzaj asynchronicznie, potwierdzając szybko w limicie 15 sekund.

Sekret podpisu jest osobny od API Key. Rotacja pokazuje nowy sekret raz i daje 24 godziny wspólnej ważności. Kolejna rotacja jest w tym czasie zablokowana.

Testuj i ponawiaj dostarczenia

Test w ustawieniach wysyła webhook.test; obsłuż go oddzielnie. Sprawdź historię ostatnich 30 dni, napraw odbiorcę i ponów ręcznie zdarzenie błędne lub już dostarczone.

Zdarzenia mogą się powtarzać i przychodzić poza kolejnością. Odpowiedź inna niż 2xx, błąd połączenia lub brak potwierdzenia uruchamiają łącznie trzy automatyczne próby: pierwszą od razu, a kolejne po około jednej i pięciu minutach. Trzeci błąd kończy automatyczne dostarczanie. Ręczna próba zachowuje ID i odnawia pełny limit trzech prób; odbiorca musi być idempotentny.

Wyłączenie zatrzymuje oczekujące dostarczenia; trwające żądanie może się zakończyć. Usunięcie odbiorcy usuwa historię. Usunięcie lub wygaśnięcie projektu zatrzymuje jego oczekujące powiadomienia. Webhooks nie wydłużają dostępu do plików: zapisuj na czas lub sprawdzaj stan projektu.

Używamy plików cookie, aby zapamiętywać ustawienia, mierzyć działanie witryny i ulepszać CaptionBolt.