Karaoke-Zeitstempel global verschieben
Verschieben Sie einen vollständigen Karaoke-Text nach vorn oder hinten, ohne jede Zeile einzeln zu bearbeiten.
Im Browser ausführen – kostenlos
Übergeben Sie die Zeilen in Wiedergabereihenfolge mit Zeitstempeln in Millisekunden und wählen Sie einen positiven oder negativen Versatz. Das Werkzeug addiert diesen Wert zu jedem Zeitstempel, setzt Ergebnisse vor dem Titelanfang auf null und bewahrt den gelieferten Text unverändert. Außerdem weist es eine Ausgabe mit rückwärts laufenden Zeitstempeln zurück, damit Sie eine fehlerhafte Reihenfolge vor Export oder Veröffentlichung erkennen.
Korrigieren Sie einen konstanten Zeitversatz
Eine Karaoke-Datei kann in sich stimmig sein und dennoch sämtliche Textzeilen zu früh oder zu spät anzeigen. Das geschieht häufig, wenn ein Audiomaster ein neues Intro erhält, Stille am Anfang entfernt wird oder der synchronisierte Text aus einer anderen Ausgabe derselben Aufnahme stammt. Bleibt die Abweichung konstant, müssen Sie nicht jeden Einsatz neu setzen. Übergeben Sie die geordneten Textzeilen mit Zeitstempeln und tragen Sie in offset_ms einen Wert mit Vorzeichen ein. Ein positiver Versatz verzögert alle Zeilen, ein negativer zieht sie vor. Das Ergebnis behält Texte und Reihenfolge bei und berechnet die timestamp_ms-Werte neu. Da die Änderung global erfolgt, bleiben die Abstände zwischen Einsätzen erhalten – außer dort, wo sehr frühe negative Ergebnisse den Titelanfang erreichen. Arbeiten Sie in Millisekunden, damit die Korrektur eindeutig und wiederholbar ist: Eine Sekunde entspricht 1000 Millisekunden. Suchen Sie zuerst einen klaren musikalischen Bezugspunkt, messen Sie dessen Abstand zur angezeigten Zeile und verwenden Sie diese Differenz als Versatz.
Verstehen Sie die Nullbegrenzung und Reihenfolgeprüfung
Eine Audiozeitleiste kann keinen abspielbaren Zeitpunkt vor null enthalten. Deshalb wird jeder verschobene Zeitstempel nach unten auf null begrenzt. Wenn Sie beispielsweise Einsätze bei 300 und 900 Millisekunden um 1000 Millisekunden vorziehen, liegen beide anschließend bei null, statt negative Werte zu erhalten. Ihr relativer Abstand geht an dieser Grenze zwangsläufig verloren; Eingabereihenfolge und Text bleiben jedoch bestehen. Das ist hilfreich, wenn bei einem Schnitt mehr Vorlauf entfernt wurde, als vor den ersten Einsätzen lag. Nach jeder Berechnung prüft das Werkzeug die resultierende Folge. Gleiche Zeitstempel sind zulässig, weil mehrere Zeilen absichtlich gemeinsam erscheinen können – darunter mehrere auf null begrenzte Einträge. Liegt ein Zeitstempel unter dem vorherigen Ergebnis, gilt dies als Umkehrung und führt zu einem Fehler wegen ungültiger Eingabe. Eine automatische Sortierung könnte fehlerhafte Quelldaten verdecken und die beabsichtigte Textfolge verändern. Korrigieren Sie stattdessen Reihenfolge oder Zeitstempel der Quelle und führen Sie die Verschiebung erneut aus.
Nutzen Sie das korrigierte Ergebnis sicher weiter
Behandeln Sie die zurückgegebenen Zeilen als korrigierte Zeittabelle für den nächsten Schritt Ihres Karaoke-Ablaufs. Prüfen Sie sie mit genau dem Audiomaster, der veröffentlicht werden soll, und achten Sie besonders auf den ersten Gesangseinsatz, Abschnittswechsel und auf null begrenzte Zeilen. Wächst oder schrumpft die Abweichung im Verlauf des Titels, ist ein globaler Versatz ungeeignet. Dieses Muster weist auf Drift, ein anderes Tempo oder Schnitte innerhalb der Aufnahme hin und verlangt eine individuelle Neutaktung. Bewahren Sie die Originaldaten auf, damit der Vorgang rückgängig gemacht werden kann, und dokumentieren Sie den gewählten Versatz zusammen mit der bearbeiteten Ausgabe. Die Funktion arbeitet deterministisch, stellt keine Netzwerkanfragen und verändert weder Wortlaut noch Zeichensetzung oder Reihenfolge. Dadurch eignet sie sich für Build-Skripte, Stapelvorbereitung und wiederholbare Veröffentlichungskontrollen. Über die API kostet jede Anfrage $0.002; im Browser läuft dieselbe reine Berechnung. Senden Sie für verlässliche Prüfungen 1 bis 10,000 Textzeilen pro Anfrage.
Anwendungsfälle
Nach gekürztem Intro neu synchronisieren
Ziehen Sie alle Einsätze um genau die Dauer vor, die am Anfang des Audiomasters entfernt wurde.
Platz für einen neuen Auftakt schaffen
Verzögern Sie den Text, wenn ein Countdown, eine Kennung oder ein instrumentales Intro ergänzt wird.
Einen Karaoke-Export vereinheitlichen
Wenden Sie vor der Übergabe an Untertitel oder Player eine dokumentierte globale Korrektur an.
Häufige Fragen
Was bewirkt ein positiver Versatz?
Er verzögert jede Zeile, indem die angegebene Millisekundenzahl zu allen Zeitstempeln addiert wird.
Was geschieht, wenn ein negativer Versatz eine Zeile vor null setzt?
Diese Zeile erhält den Zeitstempel null; negative Ausgabezeiten werden nie zurückgegeben.
Dürfen mehrere Zeilen denselben Ergebniszeitpunkt haben?
Ja. Gleiche Zeitstempel sind gültig, auch wenn mehrere frühe Zeilen auf null begrenzt werden.
Warum führt eine Umkehrung zu einem Fehler statt zu einer Sortierung?
Automatisches Sortieren könnte fehlerhafte Quelldaten verbergen und die gewünschte Folge ändern; korrigieren Sie daher die Eingabe.
Lässt sich damit eine zunehmende Drift im Titel beheben?
Nein. Ein globaler Versatz behebt nur eine konstante Abweichung; fortschreitende Drift erfordert einzelne Anpassungen oder Zeitskalierung.
Was kostet eine API-Anfrage?
Jede API-Anfrage kostet $0.002. Sie können die Berechnung auch lokal im Browser ausführen.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/audio/karaoke-lyrics-sync-shift \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"lines":[{"timestamp_ms":1200,"text":"First line"},{"timestamp_ms":3500,"text":"Second line"}],"offset_ms":-1500}'const res = await fetch("https://api.kit.forhosting.com/audio/karaoke-lyrics-sync-shift", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"lines": [
{
"timestamp_ms": 1200,
"text": "First line"
},
{
"timestamp_ms": 3500,
"text": "Second line"
}
],
"offset_ms": -1500
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/audio/karaoke-lyrics-sync-shift",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"lines": [
{
"timestamp_ms": 1200,
"text": "First line"
},
{
"timestamp_ms": 3500,
"text": "Second line"
}
],
"offset_ms": -1500
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/audio/karaoke-lyrics-sync-shift", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"lines":[{"timestamp_ms":1200,"text":"First line"},{"timestamp_ms":3500,"text":"Second line"}],"offset_ms":-1500}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"lines":[{"timestamp_ms":1200,"text":"First line"},{"timestamp_ms":3500,"text":"Second line"}],"offset_ms":-1500}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/audio/karaoke-lyrics-sync-shift", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"lines": [
{
"timestamp_ms": 1200,
"text": "First line"
},
{
"timestamp_ms": 3500,
"text": "Second line"
}
],
"offset_ms": -1500
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "audio.karaoke_lyrics_sync_shift",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_mb | 200 |
max_minutes | 180 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |