Skip to main content
Every project has active settings — trim, background, subtitle style, layout — that control how exports are rendered. Use project settings when you want project-local overrides that aren’t worth bundling into a shared preset. See Render settings reference for the shared preset, settings.style, and settingsOverride field map.

client.projects.getSettings(projectId, options?)

Fetch a project’s active settings.
const config = await client.projects.getSettings("prj_abc123");
console.log(
  config.settings.trim,
  config.settings.style?.background,
  config.settings.displayLanguages,
);

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

Patch the active project settings. You can apply a preset, pass raw settings, or both (the preset is applied first, then settings overrides are merged on top).
const updated = await client.projects.updateSettings("prj_abc123", {
  presetId: "preset_abc123",
  settings: {
    trim: { startSeconds: 5, endSeconds: 180 },
  },
});

Fields

presetId
string
Apply a reusable preset. Omit it to leave the current preset unchanged.
settings
object
Patch applied on top of the preset. Use style for preset-shaped overrides, plus project-local fields such as displayLanguages, chordSettings, and duetSingerFilter.

Discovering valid fields

Convert the update schema to JSON Schema at runtime to discover every valid field:
import { RestUpdateProjectSettingsRequestSchema } from "@youka/sdk";

const schema = RestUpdateProjectSettingsRequestSchema.toJSONSchema();
console.log(JSON.stringify(schema, null, 2));
Agents should call this before mutating project settings so they always know the current shape.

Common patterns

await client.projects.updateSettings("prj_abc123", {
  settings: {
    trim: { startSeconds: 5.0, endSeconds: 180.0 },
  },
});

Project settings vs presets

QuestionUse
Same look across many projects?Presets
One-off trim or color tweak on a single project?Project settings
Base look + small project-specific overrides?Preset + project settings

What’s next