Skip to main content
Projects are the top-level resource in Youka. Each project owns its source file, lyrics, exports, and project settings. Karaoke projects also contain separated stems.

Creating a project

For most cases, use client.projects.create() — it handles uploads for you.

Source types

Reads a file from disk.

Other fields

string
Project title. Defaults to the source filename.
karaoke | lyric-video
Workflow. Defaults to karaoke. lyric-video uses the original audio without stem separation.
SplitModel
Stem separation model for karaoke. Defaults to mdx23c. Rejected for lyric-video. See Split model reference.
string
Apply a reusable preset at creation time.
LyricsSource
Configure lyrics sync. See below.

Lyrics sources

client.projects.create(input, options?)

client.projects.create() also accepts a low-level inputFile source when you already have an uploaded inputFileId.

client.projects.quote(input, options?)

Quote the credits required to create a project without creating it.
client.projects.quote(...) accepts the same source forms as client.projects.create(...), including URL maxVideoQuality. If you already know the media duration and do not want to upload the file just to quote, pass the low-level REST shape:

client.uploads.create(body, options?)

Allocate an upload slot and get a signed URL.

client.uploads.upload(uploadUrl, body, options?)

PUT the file bytes to the signed URL.
FetchBody
required
Any fetch-compatible body: Blob, File, ArrayBuffer, Uint8Array, ReadableStream, or string.
Throws YoukaRequestError with code UPLOAD_FAILED if the upload returns a non-2xx status.

client.projects.get(projectId, options?)

Fetch the full project state, including stems, lyrics, and exports.

client.projects.update(projectId, body, options?)

Patch project metadata.
Pass at least one of title or artists.

client.projects.list(options?)

List every project owned by the authenticated account.
Returns an array of project list items (a leaner shape than getProject).

client.projects.delete(projectId, options?)

Delete a project and all its associated stems, lyrics, and exports.
Deletion is permanent. Pair with an idempotency key so retries are safe.

What’s next

  • Stems — re-run stem separation
  • Lyrics sync — re-sync lyrics
  • Exports — render finished videos
  • Tasks — wait on project operations with client.projects.wait

Lyric-video creation and model discovery

The same kind and lyric-processing choices work with projects.quote. Lyric-video quotes charge zero separation credits. Quote and create validate the same model, language, account, and source requirements. Quotes do not reserve credits or capacity. Use lyricsSource: null to skip lyric processing. Reference text in transcription is guidance and may differ from the result. Models that need isolated vocals cannot process a no-separation lyric video. See Automate lyric videos for capabilities, exact timing updates, and catalogue checkpoints.