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

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.
SplitModel
Stem separation model. Defaults to mdx23c. 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