Skip to main content
Use this page when you need the exact shape of a preset, a project settings patch, or an export settingsOverride.

Where this shape is used

SurfacePresetsProject settingsExport overridesMachine-readable schema
CLICLI presetsCLI projectsCLI exportsyouka preset schema --json for preset bodies
SDKSDK presetsSDK project settingsSDK exportsKaraokePresetSchema.toJSONSchema() and RestUpdateProjectSettingsRequestSchema.toJSONSchema()
APIAPI presetsAPI project settingsAPI exportsSame request bodies as this page

Core rule

  • preset is the reusable account-wide render configuration.
  • settings.style uses the exact same object shape as preset, but applies only to one project.
  • settingsOverride on an export uses the same object shape as settings.
  • Backgrounds, logos, intros, and outros are referenced by url, not by a media ID.

Object shapes

preset

{
  "aspectRatio": "16:9",
  "layout": {},
  "background": { "type": "auto" },
  "singerTextStyles": {
    "0": {},
  },
  "languageTextStyles": {
    "en": {},
  },
  "chordTextStyle": {},
  "overlays": {},
  "trim": {
    "startSeconds": 0,
    "endSeconds": 0,
  },
}

project settings / export settingsOverride

{
  "presetId": "preset_abc123",
  "settings": {
    "style": {},
    "trim": {
      "startSeconds": 5,
      "endSeconds": 180,
    },
    "displayLanguages": ["en", "es"],
    "chordSettings": {
      "displayMode": "inline",
      "notation": "chord_simple_pop",
      "transpose": 0,
      "capo": 0,
      "showLayer": true,
    },
    "duetSingerFilter": {
      "enabled": true,
      "selectedSingerIds": [0],
      "includeSharedLines": true,
    },
  },
}
settings.style is just a project-local preset. If you already know the preset shape, you also know the settings.style shape.

Top-level fields

preset and settings.style

PathTypeNotes
aspectRatiostringOne of the aspect ratios listed below.
layoutobjectLayout mode, line count, alignment, and transition behavior.
backgroundobjectDiscriminated union keyed by type.
singerTextStylesRecord<number, TextStyle>Keys are singer indexes such as "0" or "1".
languageTextStylesRecord<string, TextStyle>Keys are language codes such as "en" or "es".
chordTextStyleTextStyleOptional style used for chord overlays.
overlaysobjectTitle card, lead-in, breaks, and branding.
trimobjectOptional trim window with startSeconds and endSeconds.

settings and export settingsOverride

PathTypeNotes
presetIdstringOptional preset to apply first.
settings.styleKaraokePresetProject-local render style override.
settings.trimobjectProject-local trim override.
settings.displayLanguagesstring[]Languages to show and the order to show them in multilingual mode.
settings.chordSettingsobjectChord display mode, notation, transpose, capo, and visibility.
settings.duetSingerFilterobjectPractice-mode duet filter for singer-specific lines.

Common text-style fields

These fields apply to singerTextStyles.*, languageTextStyles.*, and chordTextStyle.
FieldTypeNotes
fontFamilystringFont family name.
fontSizenumberFont size.
fontWeightnumberNumeric font weight.
textColorstringFill color.
outlineColorstringStroke color.
outlineWidthnumberStroke width.
textEffectstringSee allowed values below.
activeLineColorstringActive lyric line color.
effectColorstringKaraoke highlight/effect color.
backgroundColorstringBackground fill behind text.
letterSpacingnumberLetter spacing adjustment.
lineSpacingnumberLine-height multiplier.
textCasestringSee allowed values below.
textDirectionstringSee allowed values below.
shadowColorstringShadow color.
shadowBlurnumberShadow blur.
shadowOffsetXnumberShadow X offset.
shadowOffsetYnumberShadow Y offset.
shadowOpacitynumberOptional shadow opacity override.
duetPositionstringSee allowed values below.

Background shape

background is selected by background.type.
background.typeRequired fieldsOptional fields
autononenone
colorcolornone
gradientcolorsangle
imageurlobjectFit, blur, dim
videourlobjectFit, dim

Overlay objects

PathFields
overlays.titleCardenabled, duration, titleStyle, artistStyle
overlays.leadInenabled, beats, minGap, useNextSingerStyle, style, width, height, offsetX, offsetY
overlays.instrumentalBreakhideLyrics, minGap, displayDuration
overlays.breakCountdownenabled, maxDuration, animation, useNextSingerStyle, style, textSize, hideBeforeEnd
overlays.breakProgressBarenabled, maxDuration, useNextSingerStyle, style, width, height, position, hideBeforeEnd
overlays.branding.logoenabled, url, position, paddingX, paddingY, scale, opacity
overlays.branding.introenabled, url, durationSeconds, effect, effectDuration
overlays.branding.outroenabled, url, durationSeconds, effect, effectDuration

Allowed values and ranges

PathAllowed values
aspectRatio16:9, 9:16, 4:3, 1:1
layout.typesingle, duet, karaoke, scrolling, multilingual, chords
layout.linesPerScreen2, 3, 4, 5, 6, 7, 8
layout.alignmenttop, center, bottom
layout.lineTransitionnone, fade, slide, dim
layout.duetSettings.overlapBehaviorboth, all-style
layout.languageSpacingNumber from 0 to 10
layout.containerHeightNumber from 20 to 100
layout.anticipationBufferNumber from 0 to 10
background.typeauto, color, gradient, image, video
background.objectFitcontain, cover, fill
*.textEffectnone, karaoke, highlight
*.textCasenone, uppercase, lowercase, capitalize
*.textDirectionauto, ltr, rtl
*.duetPositiontop, center, bottom
overlays.breakCountdown.animationspring, fade
overlays.breakProgressBar.positiontop, center, bottom
overlays.branding.logo.positiontop-left, top-right, bottom-left, bottom-right
overlays.branding.intro.effect and overlays.branding.outro.effectfade, crossfade, slide-left, slide-right, slide-up, slide-down, zoom-in, zoom-out, blur
settings.chordSettings.displayModeinline, grid
settings.chordSettings.notationchord_complex_pop, chord_simple_pop, chord_basic_pop, chord_complex_jazz, chord_simple_jazz, chord_basic_jazz, chord_complex_nashville, chord_simple_nashville, chord_basic_nashville, chord_majmin
settings.chordSettings.transposeInteger from -12 to 12
settings.chordSettings.capoInteger from 0 to 12
settings.duetSingerFilter.selectedSingerIds[]Non-negative integers

Schema commands

Use the human-readable tables above for docs, and the machine-readable schema below when you need every field with exact defaults:
youka preset schema --json