Automatyczna transkrypcja w Hushscript zamienia istniejące nagranie audio na edytowalną transkrypcję. W aplikacji w przeglądarce możesz też zacząć od lokalnego wideo: Hushscript przygotowuje jego audio na twoim urządzeniu i wysyła tylko to audio do rozpoznawania online. Wynik sprawdzasz i poprawiasz samodzielnie: to nie jest usługa transkrypcji z korektą wykonywaną przez ludzi ani certyfikowana.
Jak działa automatyczna transkrypcja
- Przygotuj nagranie. Użyj pliku audio, zaimportuj obsługiwany link do audio albo nagraj swój głos w aplikacji w przeglądarce. W przypadku nagrań wideo wybierz plik lokalny, aby aplikacja mogła przygotować audio na twoim urządzeniu.
- Prześlij i poczekaj na transkrypcję. Aplikacja obsługuje przesyłanie i status. Agent może przesłać przygotowane audio w częściach przez REST API albo użyć narzędzi MCP z przypisanymi zakresami, a potem sprawdzać zadanie, aż transkrypcja będzie gotowa.
- Sprawdź i wyeksportuj. Edytuj transkrypcję i oznaczenia osób mówiących w aplikacji albo pobierz tekst przez API. Token agenta może też wyeksportować transkrypcję w granicach przyznanych mu zakresów.
Oprogramowanie do automatycznej transkrypcji audio i wideo
Oprogramowanie Hushscript do automatycznej transkrypcji zamienia nagraną mowę na tekst, który możesz przeszukiwać, edytować i eksportować. Opcja nagrywania w aplikacji pozwala też nagrać głos przed transkrypcją. Aby zapisać samo nagranie bez transkrypcji, użyj bezpłatnego dyktafonu.
Automatyczna transkrypcja wideo przebiega w tym samym tekstowym procesie, gdy aplikacja wyodrębni lub skonwertuje audio lokalnie. Przykład przesyłania przez REST poniżej zaczyna się od przygotowanego audio; aby przekazać aplikacji swój lokalny plik wideo, użyj procesu w przeglądarce opisanego na stronie wideo na tekst.
Czy mogę wypróbować automatyczną transkrypcję za darmo?
Tak. Publiczny podgląd transkrybuje do pięciu minut z jednego pliku, obsługiwanego linku do audio albo nagrania w przeglądarce przed zalogowaniem, a lokalne wideo działa, gdy przeglądarka przygotuje jego audio. Pełna transkrypcja wymaga konta: konto osobiste spełniające warunki dostaje 30 bezpłatnych minut po weryfikacji karty (zasady podaje Cennik), a konto maszynowe pomija minuty powitalne i zaczyna od pakietu kupionego przy rejestracji.
Automatyzacja transkrypcji przez API lub MCP
Aplikacja w przeglądarce służy do pracy z nagraniami bezpośrednio. Do automatyzacji transkrypcji REST API i serwer MCP pozwalają agentowi przesyłać przygotowane audio, sprawdzać zadania, pobierać transkrypcje i eksportować wyniki. Agent może otworzyć własne konto w procesie z płatnością na początku, bez osoby będącej właścicielem konta; hostowana strona płatności nadal wymaga przeglądarki, a wystawca karty może wymagać kroku uwierzytelnienia. Osoba może zamiast tego utworzyć token z przypisanymi zakresami z istniejącego konta w aplikacji. Ten opis krok po kroku prowadzi przez konto maszynowe od rejestracji po rotację poświadczeń.
Rejestracja
POST /v1/agent/accounts otwiera rejestrację bez interfejsu (headless). Nie ma
jeszcze konta, ciasteczka ani tokenu: jest tylko oczekujący zakup.
curl -X POST https://api.hushscript.com/v1/agent/accounts \
-H "Content-Type: application/json" \
-d '{
"contact_email": "ops@example-agent.dev",
"pack_id": "300min",
"accept_terms_version": "2026-10-20",
"agent": {
"name": "research-crawler",
"platform": "langgraph",
"contact_url": "https://example-agent.dev/bots/research-crawler"
}
}'
{
"signup_id": "hsr1:eu:4c3a1f9e7b2d4e6f8a0c1b2d3e4f5061",
"claim_secret": "cs_9f3d2a1b7e6c4f5a8b9d0e1f2a3b4c5d",
"checkout_url": "https://checkout.stripe.com/c/pay/cs_test_a1B2c3D4e5F6",
"pack": "300min",
"amount": 599,
"currency": "usd",
"expires_at": 1789112400
}
contact_email służy wyłącznie do potwierdzeń i powiadomień, nigdy do
logowania. pack_id to jedno z 45min, 300min, 900min, 1800min,
6000min; nigdy nie wysyłaj samodzielnie amount ani currency, oba są
wyliczane z pakietu po stronie serwera.
Przy rejestracji można kupić tylko dwa najmniejsze pakiety, 45min i 300min.
Większy pack_id jest odrzucany, a odmowa zawiera details.allowed_packs z
listą tego, co to konto może teraz kupić, więc wywołujący może ponowić próbę bez
zgadywania. Reszta drabinki odblokowuje się wiekiem, nie wolumenem: zobacz
Co może kupić nowe konto poniżej.
accept_terms_version musi dokładnie odpowiadać bieżącej wersji zasad na
serwerze, inaczej wywołanie kończy się błędem policy_version_stale, który w
treści podaje bieżącą wartość. Opcjonalna wskazówka data_region jest
uwzględniana tylko wtedy, gdy zgadza się z regionem, który już wynika z twojej
lokalizacji sieciowej. Opcjonalne dry_run: true sprawdza wszystko bez sesji
Stripe i bez obciążenia; jego signup_id ma prefiks dry_ i nigdy nie może
zostać odebrany.
claim_secret jest pokazywany dokładnie raz, w tej odpowiedzi. Hushscript
przechowuje tylko jego skrót. Utrata go przed wywołaniem odbioru oznacza utratę
rejestracji: nie ma drogi odzyskania sekretu odbioru. Opłacona, nieodebrana
rejestracja trafia do procesu zwrotu opisanego poniżej; nie można jej odzyskać
przez wyszukiwanie.
Dokończ płatność we własnej przeglądarce
checkout_url to hostowana strona Stripe Checkout. Rejestracja wymaga w tym
kroku przeglądarki, ale nie musi to być przeglądarka człowieka: agent może ją
obsłużyć własną automatyzacją (wypełnić pola karty, wysłać, podążyć za
przekierowaniem). Hushscript w żadnym przypadku nie widzi danych karty; widzi je
Stripe. Czas na dokończenie płatności, a potem odbiór konta, to 30 minut, czyli
expires_at powyżej.
Co godzinę uruchamiany jest przegląd opłaconych, nieodebranych rejestracji po upływie 30-minutowego okna odbioru i dodatkowej godziny karencji. Próbuje on wykonać pełny zwrot, ponieważ minuty są księgowane dopiero przy odbiorze. Nieudane próby zwrotu są ponawiane i mogą wymagać ręcznej obsługi; nie ma gwarancji, że zwrot dotrze w określonym czasie.
Odbierz konto
POST /v1/agent/accounts/{signup_id}/claim zamienia opłaconą, nieodebraną
rejestrację w prawdziwe konto, jednym wywołaniem.
curl -X POST https://api.hushscript.com/v1/agent/accounts/hsr1:eu:4c3a1f9e7b2d4e6f8a0c1b2d3e4f5061/claim \
-H "Content-Type: application/json" \
-d '{"claim_secret": "cs_9f3d2a1b7e6c4f5a8b9d0e1f2a3b4c5d"}'
{
"user_id": "usr_7d1a2b3c4d5e6f708192a3b4c5d6e7f8",
"pat": "hsr1:eu:pat.k3n2j1.8f7e6d5c4b3a29180716253443526170",
"scopes": [
"transcripts:read",
"transcripts:write",
"transcribe",
"account:read",
"export",
"billing",
"pat:rotate"
],
"balance_seconds": 18000
}
Odbiór jest jednorazowy. Tworzy dokładnie jedno konto, ze sztuczną, niemożliwą
do rozpoznania tożsamością logowania, przyznaje opłacony pakiet dokładnie raz
nawet przy ponowieniu żądania i wystawia dokładnie jeden PAT: wartość pat
powyżej, również pokazywaną dokładnie raz.
Ten pierwszy token może transkrybować, czytać i edytować transkrypcje, eksportować, odczytywać saldo konta, kupować minuty i rotować samego siebie. Nie daje zakresów Insights, kontekstu, organizacji ani zapisu ustawień. Serwer MCP oferuje tylko narzędzia objęte zakresami tokenu.
Zły sekret, nieznany signup_id, rejestracja już odebrana, zwrócona lub
wygasła: wszystkie kończą się tym samym błędem agent_claim_invalid. Z
odpowiedzi nie da się tych przypadków odróżnić, i jest to zamierzone. Dopiero
gdy sam sekret przejdzie weryfikację, w grę wchodzi stan płatności: sesja
Checkout, która jeszcze się nie rozliczyła, zwraca zamiast tego wrong_state.
balance_seconds powyżej to całe saldo początkowe. Konta agentów nie dostają
bonusu powitalnego ani bezpłatnych minut za weryfikację karty, tak jak pierwsze
konto osoby; zaczynają wyłącznie od pakietu, który opłaciły. To celowe: konto
zostało opłacone, zanim powstało.
Kup więcej minut
Odtąd konto korzysta z endpointów /v1/, które w całości dokumentuje
/developers.
curl -X POST https://api.hushscript.com/v1/billing/purchase \
-H "Authorization: Bearer hsr1:eu:pat.k3n2j1.8f7e6d5c4b3a29180716253443526170" \
-H "Content-Type: application/json" \
-d '{
"pack": "300min",
"quick_payment_method_id": "pm_1PqR2sT3uV4wX5yZ",
"idempotency_key": "purchase-2026-09-11-01"
}'
{
"balance_seconds": 36000
}
Wymaga to zakresu billing, który odpowiedź na odbiór konta już przyznała.
Odbiór włącza też rozliczenia na tokenie i koncie; token utworzony przez osobę
potrzebuje zakresu billing i włączonych obu przełączników rozliczeń. Wywołania
rozliczeń PAT mają ciaśniejszy wspólny limit 60 żądań na minutę na konto dla
tras rozliczeń korzystających ze Stripe, sprawdzany przed ich żądaniami do
Stripe.
Co może kupić nowe konto
Rozmiar pakietu odblokowuje się wiekiem rozliczonych płatności, a nie tym, ile konto wydaje. Zakup liczy się do następnego poziomu tylko wtedy, gdy od daty jego płatności minęło 7 dni, więc zupełnie nowe konto nie dotrze do dużych pakietów, kupując szybko.
| Rozliczone płatności starsze niż 7 dni | Pakiety, które można kupić |
|---|---|
| Jeszcze nic, także świeżo odebrane konto | 45min, 300min |
| Co najmniej o wartości 45 minut | dochodzą 900min, 1800min |
| Co najmniej o wartości 15 godzin | dochodzi 6000min |
Odrzucony zakup podaje bieżący zestaw w details.allowed_packs, zamiast
kończyć się bez wyjaśnienia. Wywołanie rejestracji stosuje pierwszy wiersz tej
tabeli, dlatego opis krok po kroku kupuje 300min, a nie nic większego.
Niezależnie od drabinki kroczący 24-godzinny limit zużycia ogranicza tempo, w
jakim można wydawać saldo, które nie przekroczyło jeszcze okna sporów
płatniczych. Zakup przy rejestracji wlicza się do trzech prób zakupu konta w
kroczących 24 godzinach; odrzucone próby po rezerwacji też się liczą.
Transkrybuj
Przesyłanie i transkrypcja to ten sam wieloczęściowy proces co na każdym innym koncie. Przykład API przesyła przygotowane audio; nie przesyła pliku źródłowego lokalnego wideo.
curl -X POST https://api.hushscript.com/v1/uploads \
-H "Authorization: Bearer hsr1:eu:pat.k3n2j1.8f7e6d5c4b3a29180716253443526170" \
-H "Content-Type: application/json" \
-d '{
"size_bytes": 48213504,
"duration_seconds": 1860,
"title": "weekly-standup-2026-09-11",
"idempotency_key": "upload-2026-09-11-01"
}'
{
"job_id": "job_3a2b1c0d9e8f7a6b5c4d3e2f1a0b9c8d",
"part_urls": [
{ "n": 1, "url": "https://r2.hushscript.com/uploads/job_3a2b1c0d.../part-1?X-Amz-Signature=..." }
]
}
Wyślij PUT każdej części pod jej wstępnie podpisany adres URL, a potem wyślij
POST na /complete tego samego zadania z n i etag każdej tak wysłanej
części. Następnie odpytuj zadanie:
curl https://api.hushscript.com/v1/jobs/job_3a2b1c0d9e8f7a6b5c4d3e2f1a0b9c8d \
-H "Authorization: Bearer hsr1:eu:pat.k3n2j1.8f7e6d5c4b3a29180716253443526170"
{
"id": "job_3a2b1c0d9e8f7a6b5c4d3e2f1a0b9c8d",
"state": "done",
"transcript_id": "trs_6f5e4d3c2b1a0908f7e6d5c4b3a29180"
}
curl https://api.hushscript.com/v1/transcripts/trs_6f5e4d3c2b1a0908f7e6d5c4b3a29180 \
-H "Authorization: Bearer hsr1:eu:pat.k3n2j1.8f7e6d5c4b3a29180716253443526170"
{
"id": "trs_6f5e4d3c2b1a0908f7e6d5c4b3a29180",
"language": "en",
"duration_seconds": 1860,
"body": "..."
}
Rotacja poświadczeń
Konto maszynowe nie ma hasła ani działającej skrzynki pocztowej, więc nie ma ścieżki „nie pamiętam hasła”, gdy PAT wycieknie albo trzeba go po prostu wymienić. Rotacja jest tą ścieżką.
curl -X POST https://api.hushscript.com/v1/agent/credentials/rotate \
-H "Authorization: Bearer hsr1:eu:pat.k3n2j1.8f7e6d5c4b3a29180716253443526170"
{
"pat": "hsr1:eu:pat.p9q8r7.1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d",
"pat_id": "p9q8r7",
"scopes": [
"transcripts:read",
"transcripts:write",
"transcribe",
"account:read",
"export",
"billing",
"pat:rotate"
],
"expires_at": null
}
Wywołanie nie ma treści. Atomowo tworzy następcę i unieważnia token, który uwierzytelnił żądanie, więc stary PAT przestaje działać już przy następnym wywołaniu z jego użyciem. Następca zachowuje zakresy poprzednika, uprawnienie do rozliczeń, nazwę, etykietę klienta i zasady wygasania. Ta trasa dotyka wyłącznie tokenu wywołującego: nie może wyświetlać, tworzyć ani unieważniać żadnych innych poświadczeń konta. To jedyna ścieżka odzyskiwania poświadczeń, jaką ma konto maszynowe, więc rotuj, zanim stary token zostanie wyrzucony, a nie po.
Błędy
| Status | Kod | Slug | Znaczenie |
|---|---|---|---|
| 401 | 2000 | unauthorized |
Brak tokenu okaziciela lub jest nieprawidłowy |
| 403 | 2023 | pat_scope_missing |
Token nie ma zakresu potrzebnego do tego wywołania albo rozliczenia są wyłączone dla konta |
| 403 | 4021 | pat_purchase_requires_app |
Nie wskazano zapisanej karty lub obciążenie zostało odrzucone; nic nie obciążono |
| 403 | 4023 | pat_purchase_requires_authentication |
Wystawca karty wymaga weryfikacji, której wywołujący nie może wykonać; sama karta jest w porządku |
| 402 | 3001 | insufficient_balance |
Za małe saldo, by przyjąć zadanie |
| 429 | 5000 | rate_limited |
Zbyt wiele żądań; poczekaj na Retry-After |
Te błędy dotyczą rejestracji agenta i kontroli zakupów. Limit zakupów dotyczy też zakupów PAT na koncie osoby; zakup w sesji osoby jest z niego wyłączony.
| Status | Kod | Slug | Znaczenie |
|---|---|---|---|
| 409 | 4035 | agent_signup_pending |
Rejestracja dla tego contact_email jest nadal otwarta. Poczekaj, aż zostanie odebrana, zwrócona lub wygaśnie, albo użyj innego adresu |
| 401 | 4036 | agent_claim_invalid |
Zły sekret, nieznana rejestracja, już odebrana, zwrócona lub wygasła. Celowo identyczny |
| 403 | 4037 | agent_pack_locked |
Poziom tego konta nie pozwala jeszcze na ten pakiet. Zawiera details.allowed_packs; ponów próbę z jednym z nich |
| 429 | 4038 | agent_purchase_capped |
3 próby zakupu w ostatnich 24 godzinach, w tym nieudane po rezerwacji i zakup przy rejestracji konta agenta. Liczone na konto we wszystkich poświadczeniach, więc rotacja go nie zeruje. Zawiera details.retry_after_seconds |
Gdy sam sekret przejdzie weryfikację, nieopłacona sesja Checkout zwraca
wrong_state (4001), a nie agent_claim_invalid. Pełny katalog znajdziesz w
dokumencie OpenAPI.
Limity
Wywołania są ograniczone do 1200 na minutę. W przypadku konta agenta ten budżet należy do konta, a nie do pojedynczego tokenu: wszystkie poświadczenia w linii rotacji korzystają z tego samego, więc rotacja PAT nie daje następcy świeżego limitu. Wywołania rozliczeń PAT docierające do Stripe mają wspólny, ciaśniejszy limit 60 na minutę na konto. Obejmuje to konfigurację i zakup, zmiany karty domyślnej i jej usunięcie oraz chybienia pamięci podręcznej listy kart; sprawdzenie następuje przed wywołaniem Stripe. Opisany wyżej 24-godzinny limit zakupów liczy się tak samo, na konto, a nie na poświadczenie.
Dowiedz się więcej
Ta strona opisuje cykl życia konta: otwarcie go, zasilenie i utrzymanie jego poświadczeń. O wszystkim, co konto może potem robić, przeczytasz w REST API, w tym w pełnym dokumencie OpenAPI, albo w serwerze MCP, który daje to samo konto przez narzędzia zamiast surowego HTTP.