DokuDeine erste Transkription
Deine erste Transkription
Erstelle deinen API-Schlüssel, transkribiere einen Video-Link oder eine Datei und hole das Transkript mit cURL, Python oder Node.js ab.
Hier richtest du deinen API-Zugang ein und holst dein erstes Transkript ab. Die API erreichst du unter https://api.transcript1.com. Deinen API-Schlüssel sendest du im Authorization-Header mit.
1. Konto anlegen und API-Schlüssel holen
Lege unter /signup ein Konto an. Du kannst dich mit E-Mail-Adresse, Google oder Microsoft registrieren. Nach der E-Mail-Bestätigung bekommst du einmalig 60 kostenlose Minuten pro Konto. Mit Google oder Microsoft stehen sie dir sofort zur Verfügung. Eine Kreditkarte brauchst du nicht.
Öffne im Dashboard die API-Schlüssel unter /dashboard/account/tokens und erstelle einen Schlüssel. Er beginnt mit t1_. Kopiere ihn direkt, denn du siehst ihn nur dieses eine Mal. Setze anschließend die Umgebungsvariable TRANSCRIPT1_API_KEY:
export TRANSCRIPT1_API_KEY="t1_..."2. Einen Video-Link an die API senden
Du kannst Links von YouTube, X, TikTok, Instagram, Facebook, Bluesky, Twitch, Dailymotion, Pinterest, LinkedIn und Snapchat übergeben. Unter Quellen und Einstellungen findest du die erlaubten öffentlichen Aufnahmen und die jeweiligen Einschränkungen. platform musst du nicht setzen: Die API erkennt die Plattform am Link. Für die folgenden Beispiele nehmen wir ein YouTube-Video.
Starte die Transkription mit POST /v1/transcriptions und der Video-URL. Mit dem Query-Parameter wait=60 wartet der Request bis zu 60 Sekunden auf den Abschluss. Das Transkript selbst ist in dieser Antwort noch nicht enthalten.
Im Python-Beispiel holst du es danach mit GET /v1/transcriptions/:id?wait=60 ab. Das Node.js-SDK übernimmt das Warten und liest den Schlüssel aus TRANSCRIPT1_API_KEY.
cURL
curl -X POST "https://api.transcript1.com/v1/transcriptions?wait=60" \
-H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ"}'Python
import os
import requests
headers = {"Authorization": f"Bearer {os.environ['TRANSCRIPT1_API_KEY']}"}
response = requests.post(
"https://api.transcript1.com/v1/transcriptions?wait=60",
headers=headers,
json={"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"},
)
response.raise_for_status()
transcription = response.json()
while True:
transcription = requests.get(
f"https://api.transcript1.com/v1/transcriptions/{transcription['id']}?wait=60",
headers=headers,
).json()
if transcription["status"] in ("completed", "failed", "canceled"):
break
if transcription["status"] == "completed":
print(transcription["transcript"]["text"])
else:
print(transcription["status"], transcription["error"])Node.js
Speichere den Code in index.mjs und führe node index.mjs aus. Für eine .js-Datei brauchst du stattdessen "type": "module" in deiner package.json.
// npm i @transcript1/sdk
import { Transcript1 } from '@transcript1/sdk';
const t1 = new Transcript1();
const transcription = await t1.transcribe('https://www.youtube.com/watch?v=dQw4w9WgXcQ');
console.log(transcription.transcript.text);Auf YouTube, X, TikTok, Bluesky, Dailymotion und LinkedIn prüft transcript1 zuerst, ob sich Untertitel in der Originalsprache nutzen lassen. Fehlt eine passende Spur, transkribiert die KI den Ton. Am bisherigen Untertitelabruf für YouTube und X ändert sich nichts. Außerhalb von YouTube liefern Untertitel nur Zeitstempel für ganze Segmente, nicht für einzelne Wörter.
Mit source=stt oder aktivierter Sprecherzuordnung nutzt du direkt die KI-Transkription. Im reinen Untertitelmodus lädt transcript1 dagegen nie Audio herunter und führt kein STT aus. Die verfügbaren Modi stehen unter Quellen und Einstellungen.
3. Status prüfen und Transkript abrufen
Am HTTP-Status erkennst du, ob du noch warten musst:
200: Die Transkription hat während der Wartezeit einen der abschließenden Status erreicht:completed,failedodercanceled.202: Die Transkription läuft noch. Frage mitGET /v1/transcriptions/:id?wait=60erneut ab. Auch dieser Request wartet bis zu 60 Sekunden. Wiederhole ihn, bisstatusden Abschluss meldet.
Bei completed enthält die Antwort das Transkript. Hier ein gekürztes Beispiel:
{
"id": "tr_8fK2Lm0PqRsTuVwXyZaBcD",
"object": "transcription",
"status": "completed",
"transcript_source": "youtube_captions",
"language": "en",
"billed_minutes": 4,
"transcript": {
"text": "Welcome back to the channel. Today we are looking at how transcripts are made.",
"speakers": [],
"segments": [
{ "start": 0, "end": 4.2, "speaker": null, "language": "en", "text": "Welcome back to the channel." },
{ "start": 4.2, "end": 9.8, "speaker": null, "language": "en", "text": "Today we are looking at how transcripts are made." }
]
}
}Den vollständigen Text findest du in transcript.text. In transcript.segments stehen die einzelnen Abschnitte. Deren start und end geben Anfang und Ende in Sekunden an.
Brauchst du eine Text- oder Untertiteldatei, wähle text, srt oder vtt. So rufst du zum Beispiel SRT ab:
curl "https://api.transcript1.com/v1/transcriptions/tr_8fK2Lm0PqRsTuVwXyZaBcD?format=srt" \
-H "Authorization: Bearer $TRANSCRIPT1_API_KEY"Der Aufruf lautet GET /v1/transcriptions/:id?format=srt. Text- und Untertitelformate bekommst du erst bei completed. Solange die Transkription noch nicht fertig ist, antwortet die API auch bei gewähltem Format mit dem JSON-Objekt samt Status.
4. Eine eigene Datei hochladen
Eine Audio- oder Videodatei von deinem Rechner kannst du bis 95 MB mit einem einzigen Request hochladen. Verwende dafür multipart/form-data:
curl -X POST "https://api.transcript1.com/v1/transcriptions?wait=60" \
-H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
-F [email protected]Größere Dateien bis 2 GB lädst du in Chunks hoch. Wenn die Verbindung abbricht, setzt du den Upload später fort. Wie das geht, steht unter Dateien hochladen.
Hier geht es weiter
- Quellen und Einstellungen: Wähle zwischen Untertiteln und KI-Transkription und stelle Sprecherzuordnung und Sprache ein.
- Dateien hochladen: Sende Dateien mit einem Request oder in Chunks.
- Webhooks einrichten: Lass dich nach Abschluss der Transkription mit einem signierten Request benachrichtigen.
- MCP-Server: Verbinde transcript1 mit Claude, ChatGPT, Cursor, VS Code oder Claude Code.
- API-Referenz: Schlage Endpoints und Parameter nach.
Zuletzt aktualisiert 14. Oktober 2026