Skip to main content
Dieser Leitfaden zeigt den schnellsten Weg von einer Roh-Audiodatei zu einem gerenderten Karaoke-Video mit @youka/sdk.

Bevor du startest

  • Node.js 20 oder neuer
  • Ein Youka-API-Key in YOUKA_API_KEY (erstelle einen unter online.youka.io/account in API keys)
  • Eine lokale Audiodatei (./song.mp3) oder eine Remote-URL

Installation

npm install @youka/sdk

Erstellen, warten, exportieren

import { YoukaClient, YoukaRequestError, YoukaTaskError } from "@youka/sdk";

const client = new YoukaClient({
  apiKey: process.env.YOUKA_API_KEY!,
});

async function main() {
  // 1. Erstelle ein Projekt aus einer lokalen Datei
  const projectOperation = await client.projects.create({
    source: { type: "path", path: "./song.mp3" },
    lyricsSource: { type: "transcribe" },
  });

  // 2. Warte, bis Stems und Lyrics-Sync abgeschlossen sind
  const { project } = await client.projects.wait(projectOperation);
  console.log("Projekt bereit:", project.id, project.title);

  // 3. Starte einen Export
  const exportOperation = await client.exports.create(project.id, {
    resolution: "1080p",
    quality: "high",
  });

  // 4. Warte, bis der Export abgeschlossen ist
  const finishedExport = await client.exports.wait(exportOperation);
  await client.exports.download(finishedExport, {
    output: "./exports",
  });
  console.log("Export bereit:", finishedExport.url);
}

main().catch((error) => {
  if (error instanceof YoukaRequestError) {
    console.error("Anfrage fehlgeschlagen:", error.code, error.status, error.message);
    process.exit(1);
  }
  if (error instanceof YoukaTaskError) {
    console.error("Task fehlgeschlagen:", error.code, error.status, error.message);
    process.exit(1);
  }
  throw error;
});
client.projects.create() übernimmt Uploads für path, bytes und url sources. Für eine niedrigere Ebene der Upload-Kontrolle verwende client.uploads.*.

Drei Source-Typen

const operation = await client.projects.create({
  source: { type: "path", path: "./song.mp3" },
});

Was kommt als Nächstes

  • Projects — vollständige Projects-API
  • Exports — lokales Rendern und client.exports.prepareLocal
  • ErrorsYoukaRequestError und YoukaTaskError behandeln
  • AI agents — empfohlene Polling- und Retry-Patterns