Automatische Transkription in Hushscript verwandelt eine bestehende Audioaufnahme in ein bearbeitbares Transkript. In der Browser-App können Sie auch mit einem lokalen Video beginnen: Hushscript bereitet dessen Audio auf Ihrem Gerät vor und sendet nur dieses Audio zur Online-Spracherkennung. Sie prüfen und korrigieren das Ergebnis selbst: Dies ist kein Dienst für von Menschen geprüfte oder beglaubigte Transkriptionen.
So funktioniert automatische Transkription
- Aufnahme vorbereiten. Nutzen Sie eine Audiodatei, importieren Sie einen unterstützten Audiolink oder nehmen Sie Ihre Stimme in der Browser-App auf. Wählen Sie für Videoaufnahmen eine lokale Datei, damit die App das Audio auf Ihrem Gerät vorbereiten kann.
- Einreichen und auf das Transkript warten. Die App übernimmt Upload und Statusabfragen. Ein Agent kann vorbereitetes Audio in Teilen über die REST-API hochladen oder die MCP-Tools mit passenden Scopes nutzen und den Auftrag abfragen, bis das Transkript fertig ist.
- Prüfen und exportieren. Bearbeiten Sie das Transkript und die Sprecherbeschriftungen in der App oder rufen Sie den Text über die API ab. Ein Agenten-Token kann das Transkript auch innerhalb seiner erteilten Scopes exportieren.
Software für automatische Transkription von Audio und Video
Hushscripts Software für automatische Transkription verwandelt aufgenommene Sprache in Text, den Sie durchsuchen, bearbeiten und exportieren können. Über die Aufnahmefunktion in der App können Sie auch vor der Transkription eine Sprachaufnahme erstellen. Für eine separate Aufnahmedatei ohne Transkription nutzen Sie den kostenlosen Sprachrekorder.
Automatische Videotranskription folgt demselben Textablauf, nachdem die App das Audio lokal extrahiert oder konvertiert hat. Das REST-Upload-Beispiel unten beginnt mit vorbereitetem Audio; um der App stattdessen Ihre lokale Videodatei zu übergeben, nutzen Sie den Browser-Ablauf unter Video in Text.
Kann ich automatische Transkription kostenlos testen?
Ja. Die öffentliche Vorschau transkribiert vor der Anmeldung bis zu fünf Minuten aus einer Datei, einem unterstützten Audiolink oder einer Browseraufnahme. Ein lokales Video funktioniert, sobald der Browser dessen Audio vorbereitet hat. Für die vollständige Transkription brauchen Sie ein Konto: Ein berechtigtes persönliches Konto erhält 30 kostenlose Minuten nach Kartenverifizierung (siehe Preise zum Ablauf). Ein Maschinenkonto erhält keine Willkommensminuten und startet mit dem Paket, das es bei der Registrierung kauft.
Transkription mit der API oder MCP automatisieren
Die Browser-App dient der direkten Arbeit mit Aufnahmen. Für die Automatisierung lassen die REST-API und der MCP-Server einen Agenten vorbereitetes Audio hochladen, Aufträge prüfen, Transkripte abrufen und Ergebnisse exportieren. Ein Agent kann ein eigenes Konto über einen Ablauf mit Zahlung vor der Kontoeröffnung eröffnen, ohne menschlichen Kontoinhaber. Der gehostete Checkout braucht weiterhin einen Browser, und der Kartenaussteller kann einen Authentifizierungsschritt verlangen. Eine Person kann stattdessen in der App einen Token mit begrenzten Scopes für ein bestehendes Konto erstellen. Diese Anleitung begleitet das Maschinenkonto von der Registrierung bis zur Rotation seiner Zugangsdaten.
Registrieren
POST /v1/agent/accounts startet eine Registrierung ohne Benutzeroberfläche. Es gibt noch
kein Konto, kein Cookie und kein Token: nur einen ausstehenden Kauf.
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 dient nur für Belege und Benachrichtigungen, niemals als
Login. pack_id ist eines von 45min, 300min, 900min, 1800min,
6000min; senden Sie amount oder currency niemals selbst, beide werden
auf dem Server aus dem Paket abgeleitet. Nur die beiden kleinsten Pakete,
45min und 300min, können bei der Registrierung gekauft werden. Ein
größeres pack_id wird abgelehnt, und die Ablehnung enthält
details.allowed_packs mit den Paketen, die dieses Konto gerade kaufen darf,
sodass ein Aufrufer es ohne Raten erneut versuchen kann. Der Rest der
Stufenleiter schaltet sich mit dem Alter frei, nicht mit dem Volumen: siehe
Was ein neues Konto kaufen darf weiter unten.
accept_terms_version muss exakt der aktuellen Richtlinienversion des
Servers entsprechen, sonst schlägt der Aufruf mit policy_version_stale
fehl, dessen Body den aktuellen Wert nennt. Ein optionaler
data_region-Hinweis wird nur berücksichtigt, wenn er mit der Region
übereinstimmt, die Ihr Netzwerkstandort ohnehin nahelegt. Ein optionales
dry_run: true validiert alles ohne Stripe-Sitzung und ohne Belastung; seine
signup_id trägt das Präfix dry_ und kann nie aktiviert werden.
claim_secret wird genau einmal angezeigt, in dieser Antwort. Hushscript
speichert nur dessen Hash. Geht es vor dem Aktivierungsaufruf verloren, ist die
Registrierung verloren: Es gibt keinen Wiederherstellungsweg für dieses
Aktivierungsgeheimnis. Eine bezahlte, nicht aktivierte Registrierung durchläuft
das unten beschriebene Erstattungsverfahren; sie kann nicht durch eine Abfrage wiederhergestellt werden.
Checkout im eigenen Browser abschließen
checkout_url ist eine gehostete Stripe Checkout-Seite. Für diesen Schritt
braucht die Registrierung einen Browser, und es muss nicht der Browser einer
Person sein: Ein Agent kann ihn mit eigener Automatisierung steuern (Kartenfelder
ausfüllen, absenden, der Weiterleitung folgen). Hushscript sieht die Kartendaten
so oder so nie; Stripe schon. Das Zeitfenster für den Abschluss und die anschließende
Kontoaktivierung beträgt 30 Minuten, wie expires_at oben angibt.
Ein stündlicher Bereinigungslauf prüft bezahlte, nicht aktivierte Registrierungen nach dem 30-minütigen Aktivierungsfenster und einer weiteren Stunde Kulanz. Er versucht eine vollständige Erstattung, weil Minuten erst bei der Aktivierung gutgeschrieben werden. Fehlgeschlagene Erstattungsversuche werden wiederholt und können manuelle Bearbeitung erfordern; die Erstattung ist nicht zu einem bestimmten Zeitpunkt garantiert.
Konto aktivieren
POST /v1/agent/accounts/{signup_id}/claim verwandelt eine bezahlte,
noch nicht aktivierte Registrierung in einem einzigen Aufruf in ein echtes Konto.
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
}
Die Aktivierung erstellt genau ein Konto mit einer synthetischen, nicht
auflösbaren Anmeldeidentität und schreibt das bezahlte Paket genau einmal gut,
egal wie oft die Anfrage wiederholt wird. Sie erstellt einen PAT: den
pat-Wert oben.
Geht die Antwort verloren, wiederholen Sie den Aufruf mit demselben
claim_secret. Innerhalb einer Stunde nach der Aktivierung und solange das
dabei ausgestellte Token nie verwendet wurde, gibt die Wiederholung 201 für
dasselbe Konto zurück, mit derselben Antwortstruktur und einem neuen pat. Das
verlorene Token funktioniert dann nicht mehr. Nach der ersten Verwendung des
Tokens oder nach dieser Stunde antwortet eine Wiederholung mit
agent_claim_invalid. Eine Wiederholung, die sich mit einer noch laufenden
Aktivierung überschneidet, kann 429 rate_limited mit einem
Retry-After-Header erhalten; wiederholen Sie dann nach dieser Wartezeit.
Dieser erste Token kann transkribieren, Transkripte lesen und bearbeiten, exportieren, das Kontoguthaben lesen, Minuten kaufen und seinen eigenen Token rotieren. Er gewährt keine Scopes für Insights, Kontext, Organisationen oder das Schreiben von Einstellungen. Der MCP-Server bietet nur Tools an, die durch die Scopes des Tokens abgedeckt sind.
Ein falsches Geheimnis, eine unbekannte signup_id, eine erstattete und eine
abgelaufene Registrierung sowie eine wiederholte Aktivierung, deren Token
bereits verwendet wurde oder deren Stunde abgelaufen ist, beantworten alle mit
demselben Fehler agent_claim_invalid. Ein Aufrufer kann diese Fälle
absichtlich nicht anhand der Antwort unterscheiden. Erst wenn das Geheimnis
selbst stimmt, kommt der Zahlungsstatus ins Spiel: Eine Checkout Session, deren Zahlung
noch nicht abgeschlossen ist, antwortet stattdessen mit wrong_state.
Das balance_seconds oben ist das gesamte Startguthaben. Agenten-Konten
erhalten keinen Willkommensbonus und keine kostenlosen Minuten durch
Kartenverifizierung, wie es beim ersten Konto einer Person der Fall ist; sie
starten mit nichts außer dem Paket, das sie bezahlt haben. Das ist Absicht: Das Konto war bereits bezahlt, bevor es existierte.
Weitere Minuten kaufen
Von hier an nutzt das Konto die /v1/-Schnittstelle, die /developers vollständig
dokumentiert.
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
}
Das erfordert den Scope billing, den die Aktivierungsantwort oben bereits
gewährt hat. Die Aktivierung schaltet auch die Abrechnung für den Token und das
Konto frei; ein von einer Person erstellter Token braucht den Scope billing
und beide aktivierten Abrechnungsschalter. PAT-Abrechnungsaufrufe teilen sich
über alle Stripe aufrufenden Abrechnungsrouten ein engeres Limit von 60 Anfragen
pro Minute und Konto, das vor den Stripe-Anfragen geprüft wird.
Was ein neues Konto kaufen darf
Die Paketgröße schaltet sich anhand des Alters abgeschlossener Zahlungen frei, nicht danach, wie viel ein Konto ausgibt. Ein Kauf zählt erst zur nächsten Stufe, sobald seit seinem Zahlungsdatum mehr als 7 Tage vergangen sind, sodass ein brandneues Konto die großen Pakete nicht durch schnelles Kaufen erreichen kann.
| Abgeschlossene Zahlungen, die älter als 7 Tage sind | Pakete, die gekauft werden dürfen |
|---|---|
| Noch keine, auch nicht direkt nach der Aktivierung | 45min, 300min |
| Mindestens im Wert von 45 Minuten | fügt 900min, 1800min hinzu |
| Mindestens im Wert von 15 Stunden | fügt 6000min hinzu |
Ein abgelehnter Kauf nennt die aktuelle Auswahl in details.allowed_packs,
statt blind zu scheitern. Der Registrierungsaufruf wendet die erste Zeile
dieser Tabelle an, weshalb die Anleitung oben 300min kauft und nicht etwas
Größeres. Unabhängig von der Stufenleiter begrenzt eine gleitende
24-Stunden-Verbrauchsgrenze, wie schnell Guthaben ausgegeben werden kann,
das die Frist für Zahlungsanfechtungen noch nicht überschritten hat. Der Kauf bei der
Registrierung zählt zu den drei Kaufversuchen des Kontos innerhalb gleitender
24 Stunden; abgelehnte Versuche nach einer Reservierung zählen ebenfalls.
Transkribieren
Hochladen und Transkribieren laufen über denselben mehrteiligen Ablauf wie bei jedem anderen Konto. Das API-Beispiel reicht vorbereitetes Audio ein; es lädt nicht die Quelldatei eines lokalen Videos hoch.
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=..." }
]
}
Laden Sie jeden Teil per PUT an seine vorsignierte URL hoch, senden Sie
dann ein POST an /complete desselben Jobs mit dem n und etag jedes so
gesendeten Teils. Fragen Sie danach den Jobstatus regelmäßig ab:
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": "..."
}
Zugangsdaten rotieren
Ein Maschinenkonto hat kein Passwort und kein nutzbares Postfach, daher gibt es keinen „Passwort vergessen“-Weg, falls ein PAT offengelegt wird oder einfach ersetzt werden muss. Rotation ist dieser Weg.
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
}
Der Aufruf braucht keinen Body. Er erstellt einen Nachfolger für das Token, das die Anfrage authentifiziert hat. Der Nachfolger übernimmt die Scopes, die Abrechnungsberechtigung, den Namen, das Client-Label und die Ablaufrichtlinie des Vorgängers. Diese Route fasst nichts an außer dem eigenen Token des Aufrufers: Sie kann kein anderes Zugangstoken des Kontos auflisten, erstellen oder widerrufen. Es ist der einzige Weg zur Wiederherstellung von Zugangsdaten, den ein Maschinenkonto hat, also rotieren Sie, bevor das alte PAT verworfen wird, nicht danach.
Das alte Token wird nicht sofort widerrufen. Nach dem Rotieren funktioniert es
nur noch für eines: erneut rotate aufzurufen. Das gilt, bis das neue Token seine
erste erfolgreiche Anfrage stellt oder eine Stunde vergeht, je nachdem, was
zuerst eintritt. Auf allen anderen Routen antwortet das alte Token sofort mit
401.
Geht die Antwort mit dem neuen Token verloren, rufen Sie rotate erneut mit dem
alten Token auf, solange das neue unbenutzt ist. Sie erhalten ein neues
Geheimnis für dieselbe pat_id, und das frühere neue Geheimnis funktioniert
nicht mehr.
Behalten Sie das alte Token, bis das neue einmal funktioniert hat. Machen Sie
dann sofort einen Aufruf mit dem neuen Token, etwa GET /v1/account. Diese
erste erfolgreiche Anfrage setzt das alte Token endgültig außer Kraft.
Fehler
| Status | Code | Slug | Bedeutung |
|---|---|---|---|
| 401 | 2000 | unauthorized |
Fehlendes oder ungültiges Bearer-Token |
| 403 | 2023 | pat_scope_missing |
Dem Token fehlt der für diesen Aufruf nötige Scope, oder die Abrechnung ist für das Konto deaktiviert |
| 403 | 4021 | pat_purchase_requires_app |
Keine gespeicherte Karte genannt, oder die Belastung wurde abgelehnt; es wurde nichts berechnet |
| 403 | 4023 | pat_purchase_requires_authentication |
Der Kartenaussteller verlangt eine Bestätigung, die der Aufrufer nicht durchführen kann; die Karte selbst ist in Ordnung |
| 402 | 3001 | insufficient_balance |
Nicht genug Guthaben, um den Job zuzulassen |
| 429 | 5000 | rate_limited |
Zu viele Anfragen; warten Sie auf Retry-After |
Diese Fehler betreffen die Registrierung von Agenten und die Kaufkontrollen. Die Kaufgrenze gilt auch für PAT-Käufe auf dem Konto einer Person; Käufe über eine menschliche Sitzung sind davon ausgenommen.
| Status | Code | Slug | Bedeutung |
|---|---|---|---|
| 409 | 4035 | agent_signup_pending |
Für diese contact_email ist noch eine Registrierung offen. Warten Sie, bis sie aktiviert, erstattet oder abgelaufen ist, oder verwenden Sie eine andere Adresse |
| 401 | 4036 | agent_claim_invalid |
Falsches Geheimnis, unbekannte Registrierung, erstattet, abgelaufen oder bereits aktiviert, wobei das Token inzwischen verwendet wurde oder die Stunde abgelaufen ist. Absichtlich identisch |
| 403 | 4037 | agent_pack_locked |
Die Stufe dieses Kontos erlaubt dieses Paket noch nicht. Enthält details.allowed_packs; erneut mit einem davon versuchen |
| 429 | 4038 | agent_purchase_capped |
3 Kaufversuche in den letzten 24 Stunden, einschließlich Fehlschlägen nach einer Reservierung und des Kaufs bei der Registrierung eines Agenten-Kontos. Wird pro Konto über alle Zugangsdaten hinweg gezählt, Rotation setzt die Grenze also nicht zurück. Enthält details.retry_after_seconds |
Sobald das Aktivierungsgeheimnis selbst stimmt, antwortet eine unbezahlte Checkout
Session mit wrong_state (4001) statt mit agent_claim_invalid. Der
vollständige Katalog ist das
OpenAPI-Dokument.
Limits
Aufrufe sind auf 1.200 pro Minute begrenzt. Bei einem Agenten-Konto gehört dieses Budget dem Konto, nicht dem einzelnen Token: Alle Zugangsdaten in der Rotationsfolge greifen auf dasselbe Budget zu, die Rotation eines PAT verschafft dem Nachfolger also kein frisches Kontingent. PAT-Abrechnungsaufrufe, die Stripe erreichen, teilen sich ein engeres Limit von 60 pro Minute und Konto. Dazu zählen das Einrichten und Kaufen, Änderungen der Standardkarte und das Entfernen von Karten sowie das Abrufen der Kartenliste, wenn sie nicht im Cache liegt; die Prüfung erfolgt vor dem Stripe-Aufruf. Die 24-Stunden-Kaufgrenze oben wird auf dieselbe Weise gezählt, pro Konto statt pro Zugangstoken.
Mehr erfahren
Diese Seite behandelt den Lebenszyklus des Kontos: es eröffnen, finanzieren und sein Zugangstoken am Leben halten. Alles, was das Konto danach tun kann, zeigt die REST-API, einschließlich des vollständigen OpenAPI-Dokuments, oder der MCP-Server für dasselbe Konto über Tools statt über rohes HTTP.