Skip to main content
Hướng dẫn này trình bày lộ trình nhanh nhất từ một tệp âm thanh thô đến một video karaoke đã được render bằng @youka/sdk.

Trước khi bắt đầu

  • Node.js 20 trở lên
  • Một Youka API key trong YOUKA_API_KEY (tạo tại online.youka.io/account trong mục API keys)
  • Một tệp âm thanh cục bộ (./song.mp3) hoặc một URL từ xa

Cài đặt

npm install @youka/sdk

Tạo, chờ, xuất

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

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

async function main() {
  // 1. Tạo một dự án từ tệp cục bộ
  const projectOperation = await client.projects.create({
    source: { type: "path", path: "./song.mp3" },
    lyricsSource: { type: "transcribe" },
  });

  // 2. Chờ tách stem và đồng bộ lời hoàn tất
  const { project } = await client.projects.wait(projectOperation);
  console.log("Project ready:", project.id, project.title);

  // 3. Bắt đầu một lần xuất
  const exportOperation = await client.exports.create(project.id, {
    resolution: "1080p",
    quality: "high",
  });

  // 4. Chờ quá trình xuất hoàn tất
  const finishedExport = await client.exports.wait(exportOperation);
  await client.exports.download(finishedExport, {
    output: "./exports",
  });
  console.log("Export ready:", finishedExport.url);
}

main().catch((error) => {
  if (error instanceof YoukaRequestError) {
    console.error("Request failed:", error.code, error.status, error.message);
    process.exit(1);
  }
  if (error instanceof YoukaTaskError) {
    console.error("Task failed:", error.code, error.status, error.message);
    process.exit(1);
  }
  throw error;
});
client.projects.create() xử lý upload cho các nguồn path, bytes, và url. Để kiểm soát upload ở mức thấp hơn, hãy dùng client.uploads.*.

Ba loại nguồn

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

Tiếp theo là gì

  • Projects — API dự án đầy đủ
  • Exports — render cục bộ và client.exports.prepareLocal
  • Errors — xử lý YoukaRequestErrorYoukaTaskError
  • AI agents — các mẫu polling và retry được khuyến nghị