> ## Documentation Index
> Fetch the complete documentation index at: https://docs.youka.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Get a project's active settings



## OpenAPI

````yaml /openapi.json get /projects/{projectId}/settings
openapi: 3.1.0
info:
  title: Youka REST API
  version: v1
  description: REST API for project-based karaoke creation, styling, media, and exports.
servers:
  - url: https://api.youka.io/api/v1
    description: Production
  - url: http://localhost:3003/api/v1
    description: Local development
security:
  - bearerAuth: []
tags:
  - name: Account
    description: Inspect the API key's account identity.
  - name: Uploads
    description: Upload source audio or video before creating a project.
  - name: Credits
    description: Inspect available credit balance.
  - name: Billing
    description: Create checkout sessions and manage billing.
  - name: Projects
    description: Create projects and read the long-lived project state.
  - name: Tasks
    description: Poll async task progress until it reaches a terminal state.
  - name: Exports
    description: Create exports and fetch fresh download URLs.
  - name: Presets
    description: Manage reusable karaoke styling presets.
  - name: Media
    description: Manage uploaded reusable media.
  - name: Project Settings
    description: Read and update a project's active settings.
paths:
  /projects/{projectId}/settings:
    get:
      tags:
        - Project Settings
      summary: Get a project's active settings
      operationId: getProjectSettings
      parameters:
        - in: path
          name: projectId
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Project settings
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectSettings'
components:
  schemas:
    ProjectSettings:
      $schema: https://json-schema.org/draft/2020-12/schema
      type: object
      properties:
        presetId:
          type: string
        preset:
          type: object
          properties:
            aspectRatio:
              default: '16:9'
              type: string
              enum:
                - '16:9'
                - '9:16'
                - '4:3'
                - '1:1'
            layout:
              default:
                type: karaoke
                autoSplitLongLines: true
                linesPerScreen: 2
                alignment: bottom
                paddingHorizontal: 0
                paddingVertical: 5
                languageSpacing: 5
                containerHeight: 100
                scrollingFadeStrength: 0.5
                lineTransition: fade
                anticipationBuffer: 3
              type: object
              properties:
                type:
                  default: karaoke
                  type: string
                  enum:
                    - single
                    - duet
                    - karaoke
                    - scrolling
                    - multilingual
                    - chords
                autoSplitLongLines:
                  default: true
                  type: boolean
                linesPerScreen:
                  default: 2
                  anyOf:
                    - type: number
                      const: 2
                    - type: number
                      const: 3
                    - type: number
                      const: 4
                    - type: number
                      const: 5
                    - type: number
                      const: 6
                    - type: number
                      const: 7
                    - type: number
                      const: 8
                alignment:
                  default: bottom
                  type: string
                  enum:
                    - top
                    - center
                    - bottom
                paddingHorizontal:
                  default: 0
                  type: number
                paddingVertical:
                  default: 5
                  type: number
                languageSpacing:
                  default: 5
                  type: number
                  minimum: 0
                  maximum: 10
                containerHeight:
                  default: 100
                  type: number
                  minimum: 20
                  maximum: 100
                scrollingFadeStrength:
                  default: 0.5
                  type: number
                  minimum: 0
                  maximum: 1
                lineTransition:
                  default: fade
                  type: string
                  enum:
                    - none
                    - fade
                    - slide
                    - dim
                duetSettings:
                  type: object
                  properties:
                    overlapBehavior:
                      default: all-style
                      type: string
                      enum:
                        - both
                        - all-style
                  required:
                    - overlapBehavior
                  additionalProperties: false
                multilingualSettings:
                  type: object
                  properties: {}
                  additionalProperties: false
                anticipationBuffer:
                  default: 3
                  type: number
                  minimum: 0
                  maximum: 10
              required:
                - type
                - autoSplitLongLines
                - linesPerScreen
                - alignment
                - paddingHorizontal
                - paddingVertical
                - languageSpacing
                - containerHeight
                - scrollingFadeStrength
                - lineTransition
                - anticipationBuffer
              additionalProperties: false
            background:
              default:
                type: auto
              oneOf:
                - type: object
                  properties:
                    type:
                      type: string
                      const: auto
                  required:
                    - type
                  additionalProperties: false
                - type: object
                  properties:
                    type:
                      type: string
                      const: color
                    color:
                      default: '#000000'
                      type: string
                  required:
                    - type
                    - color
                  additionalProperties: false
                - type: object
                  properties:
                    type:
                      type: string
                      const: gradient
                    angle:
                      default: 0
                      type: number
                    colors:
                      default:
                        - '#000000'
                        - '#333333'
                      type: array
                      items:
                        type: string
                  required:
                    - type
                    - angle
                    - colors
                  additionalProperties: false
                - type: object
                  properties:
                    type:
                      type: string
                      const: image
                    url:
                      type: string
                    objectFit:
                      default: cover
                      type: string
                      enum:
                        - contain
                        - cover
                        - fill
                    blur:
                      type: number
                    dim:
                      type: number
                  required:
                    - type
                    - url
                    - objectFit
                  additionalProperties: false
                - type: object
                  properties:
                    type:
                      type: string
                      const: video
                    url:
                      type: string
                    objectFit:
                      default: cover
                      type: string
                      enum:
                        - contain
                        - cover
                        - fill
                    dim:
                      type: number
                  required:
                    - type
                    - url
                    - objectFit
                  additionalProperties: false
            singerTextStyles:
              default: {}
              type: object
              propertyNames:
                type: number
              additionalProperties:
                type: object
                properties:
                  fontFamily:
                    default: Arimo
                    type: string
                  fontSize:
                    default: 96
                    type: number
                  fontWeight:
                    default: 700
                    type: number
                  textColor:
                    default: '#FFFFFF'
                    type: string
                  outlineColor:
                    default: '#000000'
                    type: string
                  outlineWidth:
                    default: 20
                    type: number
                  textEffect:
                    default: karaoke
                    type: string
                    enum:
                      - none
                      - karaoke
                      - highlight
                  activeLineColor:
                    default: '#fff09a'
                    type: string
                  effectColor:
                    default: '#2185D0'
                    type: string
                  backgroundColor:
                    default: transparent
                    type: string
                  letterSpacing:
                    default: 0
                    type: number
                  lineSpacing:
                    default: 1.2
                    type: number
                  textCase:
                    default: none
                    type: string
                    enum:
                      - none
                      - uppercase
                      - lowercase
                      - capitalize
                  textDirection:
                    default: auto
                    type: string
                    enum:
                      - auto
                      - ltr
                      - rtl
                  shadowColor:
                    default: rgba(0,0,0,0.5)
                    type: string
                  shadowBlur:
                    default: 4
                    type: number
                  shadowOffsetX:
                    default: 0
                    type: number
                  shadowOffsetY:
                    default: 0
                    type: number
                  shadowOpacity:
                    type: number
                  duetPosition:
                    default: center
                    type: string
                    enum:
                      - top
                      - center
                      - bottom
                required:
                  - fontFamily
                  - fontSize
                  - fontWeight
                  - textColor
                  - outlineColor
                  - outlineWidth
                  - textEffect
                  - activeLineColor
                  - effectColor
                  - backgroundColor
                  - letterSpacing
                  - lineSpacing
                  - textCase
                  - textDirection
                  - shadowColor
                  - shadowBlur
                  - shadowOffsetX
                  - shadowOffsetY
                  - duetPosition
                additionalProperties: false
            languageTextStyles:
              default: {}
              type: object
              propertyNames:
                type: string
              additionalProperties:
                type: object
                properties:
                  fontFamily:
                    default: Arimo
                    type: string
                  fontSize:
                    default: 96
                    type: number
                  fontWeight:
                    default: 700
                    type: number
                  textColor:
                    default: '#FFFFFF'
                    type: string
                  outlineColor:
                    default: '#000000'
                    type: string
                  outlineWidth:
                    default: 20
                    type: number
                  textEffect:
                    default: karaoke
                    type: string
                    enum:
                      - none
                      - karaoke
                      - highlight
                  activeLineColor:
                    default: '#fff09a'
                    type: string
                  effectColor:
                    default: '#2185D0'
                    type: string
                  backgroundColor:
                    default: transparent
                    type: string
                  letterSpacing:
                    default: 0
                    type: number
                  lineSpacing:
                    default: 1.2
                    type: number
                  textCase:
                    default: none
                    type: string
                    enum:
                      - none
                      - uppercase
                      - lowercase
                      - capitalize
                  textDirection:
                    default: auto
                    type: string
                    enum:
                      - auto
                      - ltr
                      - rtl
                  shadowColor:
                    default: rgba(0,0,0,0.5)
                    type: string
                  shadowBlur:
                    default: 4
                    type: number
                  shadowOffsetX:
                    default: 0
                    type: number
                  shadowOffsetY:
                    default: 0
                    type: number
                  shadowOpacity:
                    type: number
                  duetPosition:
                    default: center
                    type: string
                    enum:
                      - top
                      - center
                      - bottom
                required:
                  - fontFamily
                  - fontSize
                  - fontWeight
                  - textColor
                  - outlineColor
                  - outlineWidth
                  - textEffect
                  - activeLineColor
                  - effectColor
                  - backgroundColor
                  - letterSpacing
                  - lineSpacing
                  - textCase
                  - textDirection
                  - shadowColor
                  - shadowBlur
                  - shadowOffsetX
                  - shadowOffsetY
                  - duetPosition
                additionalProperties: false
            chordTextStyle:
              type: object
              properties:
                fontFamily:
                  default: Arimo
                  type: string
                fontSize:
                  default: 96
                  type: number
                fontWeight:
                  default: 700
                  type: number
                textColor:
                  default: '#FFFFFF'
                  type: string
                outlineColor:
                  default: '#000000'
                  type: string
                outlineWidth:
                  default: 20
                  type: number
                textEffect:
                  default: karaoke
                  type: string
                  enum:
                    - none
                    - karaoke
                    - highlight
                activeLineColor:
                  default: '#fff09a'
                  type: string
                effectColor:
                  default: '#2185D0'
                  type: string
                backgroundColor:
                  default: transparent
                  type: string
                letterSpacing:
                  default: 0
                  type: number
                lineSpacing:
                  default: 1.2
                  type: number
                textCase:
                  default: none
                  type: string
                  enum:
                    - none
                    - uppercase
                    - lowercase
                    - capitalize
                textDirection:
                  default: auto
                  type: string
                  enum:
                    - auto
                    - ltr
                    - rtl
                shadowColor:
                  default: rgba(0,0,0,0.5)
                  type: string
                shadowBlur:
                  default: 4
                  type: number
                shadowOffsetX:
                  default: 0
                  type: number
                shadowOffsetY:
                  default: 0
                  type: number
                shadowOpacity:
                  type: number
                duetPosition:
                  default: center
                  type: string
                  enum:
                    - top
                    - center
                    - bottom
              required:
                - fontFamily
                - fontSize
                - fontWeight
                - textColor
                - outlineColor
                - outlineWidth
                - textEffect
                - activeLineColor
                - effectColor
                - backgroundColor
                - letterSpacing
                - lineSpacing
                - textCase
                - textDirection
                - shadowColor
                - shadowBlur
                - shadowOffsetX
                - shadowOffsetY
                - duetPosition
              additionalProperties: false
            overlays:
              default:
                branding:
                  logo:
                    enabled: false
                    position: bottom-right
                    paddingX: 20
                    paddingY: 20
                    scale: 0.1
                    opacity: 1
                  intro:
                    enabled: false
                    durationSeconds: 0
                    effect: fade
                    effectDuration: 0.5
                  outro:
                    enabled: false
                    durationSeconds: 0
                    effect: fade
                    effectDuration: 0.5
                titleCard:
                  enabled: true
                  duration: 5
                  autoHideBeforeLyrics: true
                  titleStyle:
                    fontFamily: Arimo
                    fontSize: 200
                    fontWeight: 700
                    textColor: '#2185D0'
                    outlineColor: '#000000'
                    outlineWidth: 30
                  artistStyle:
                    fontFamily: Arimo
                    fontSize: 150
                    fontWeight: 700
                    textColor: '#FFFFFF'
                    outlineColor: '#000000'
                    outlineWidth: 30
                leadIn:
                  enabled: true
                  beats: 4
                  minGap: 3
                  useNextSingerStyle: true
                  style:
                    color: '#2185D0'
                    outlineColor: '#000000'
                    outlineWidth: 3
                  width: 0.2
                  height: 1
                  offsetX: -2
                  offsetY: 0
                instrumentalBreak:
                  hideLyrics: true
                  minGap: 5
                  displayDuration: 3
                breakCountdown:
                  enabled: true
                  maxDuration: 3
                  animation: fade
                  useNextSingerStyle: false
                  style:
                    color: '#FFFFFF'
                    outlineColor: '#000000'
                    outlineWidth: 14.5
                  textSize: 80
                  hideBeforeEnd: 0
                breakProgressBar:
                  enabled: true
                  maxDuration: 10
                  useNextSingerStyle: false
                  style:
                    color: '#2185D0'
                    outlineColor: '#000000'
                    outlineWidth: 5
                    backgroundColor: '#FFFFFF'
                    fillColor: '#2185D0'
                  width: 47
                  height: 7.5
                  position: center
                  cornerRadius: 0
                  hideBeforeEnd: 0
              type: object
              properties:
                branding:
                  default:
                    logo:
                      enabled: false
                      position: bottom-right
                      paddingX: 20
                      paddingY: 20
                      scale: 0.1
                      opacity: 1
                    intro:
                      enabled: false
                      durationSeconds: 0
                      effect: fade
                      effectDuration: 0.5
                    outro:
                      enabled: false
                      durationSeconds: 0
                      effect: fade
                      effectDuration: 0.5
                  type: object
                  properties:
                    logo:
                      default:
                        enabled: false
                        position: bottom-right
                        paddingX: 20
                        paddingY: 20
                        scale: 0.1
                        opacity: 1
                      type: object
                      properties:
                        enabled:
                          default: false
                          type: boolean
                        url:
                          type: string
                        position:
                          default: bottom-right
                          type: string
                          enum:
                            - top-left
                            - top-right
                            - bottom-left
                            - bottom-right
                        paddingX:
                          default: 20
                          type: number
                        paddingY:
                          default: 20
                          type: number
                        scale:
                          default: 0.1
                          type: number
                        opacity:
                          default: 1
                          type: number
                      required:
                        - enabled
                        - position
                        - paddingX
                        - paddingY
                        - scale
                        - opacity
                      additionalProperties: false
                    intro:
                      default:
                        enabled: false
                        durationSeconds: 0
                        effect: fade
                        effectDuration: 0.5
                      type: object
                      properties:
                        enabled:
                          default: false
                          type: boolean
                        url:
                          type: string
                        durationSeconds:
                          default: 0
                          type: number
                        effect:
                          default: fade
                          type: string
                          enum:
                            - fade
                            - crossfade
                            - slide-left
                            - slide-right
                            - slide-up
                            - slide-down
                            - zoom-in
                            - zoom-out
                            - blur
                        effectDuration:
                          default: 0.5
                          type: number
                      required:
                        - enabled
                        - durationSeconds
                        - effect
                        - effectDuration
                      additionalProperties: false
                    outro:
                      default:
                        enabled: false
                        durationSeconds: 0
                        effect: fade
                        effectDuration: 0.5
                      type: object
                      properties:
                        enabled:
                          default: false
                          type: boolean
                        url:
                          type: string
                        durationSeconds:
                          default: 0
                          type: number
                        effect:
                          default: fade
                          type: string
                          enum:
                            - fade
                            - crossfade
                            - slide-left
                            - slide-right
                            - slide-up
                            - slide-down
                            - zoom-in
                            - zoom-out
                            - blur
                        effectDuration:
                          default: 0.5
                          type: number
                      required:
                        - enabled
                        - durationSeconds
                        - effect
                        - effectDuration
                      additionalProperties: false
                  required:
                    - logo
                    - intro
                    - outro
                  additionalProperties: false
                titleCard:
                  default:
                    enabled: true
                    duration: 5
                    autoHideBeforeLyrics: true
                    titleStyle:
                      fontFamily: Arimo
                      fontSize: 200
                      fontWeight: 700
                      textColor: '#2185D0'
                      outlineColor: '#000000'
                      outlineWidth: 30
                    artistStyle:
                      fontFamily: Arimo
                      fontSize: 150
                      fontWeight: 700
                      textColor: '#FFFFFF'
                      outlineColor: '#000000'
                      outlineWidth: 30
                  type: object
                  properties:
                    enabled:
                      default: true
                      type: boolean
                    duration:
                      default: 5
                      type: number
                    autoHideBeforeLyrics:
                      default: true
                      type: boolean
                    titleStyle:
                      default:
                        fontFamily: Arimo
                        fontSize: 200
                        fontWeight: 700
                        textColor: '#2185D0'
                        outlineColor: '#000000'
                        outlineWidth: 30
                      type: object
                      properties:
                        fontFamily:
                          default: Arimo
                          type: string
                        fontSize:
                          default: 150
                          type: number
                        fontWeight:
                          default: 700
                          type: number
                        textColor:
                          default: '#FFFFFF'
                          type: string
                        outlineColor:
                          default: '#000000'
                          type: string
                        outlineWidth:
                          default: 4
                          type: number
                      required:
                        - fontFamily
                        - fontSize
                        - fontWeight
                        - textColor
                        - outlineColor
                        - outlineWidth
                      additionalProperties: false
                    artistStyle:
                      default:
                        fontFamily: Arimo
                        fontSize: 150
                        fontWeight: 700
                        textColor: '#FFFFFF'
                        outlineColor: '#000000'
                        outlineWidth: 30
                      type: object
                      properties:
                        fontFamily:
                          default: Arimo
                          type: string
                        fontSize:
                          default: 150
                          type: number
                        fontWeight:
                          default: 700
                          type: number
                        textColor:
                          default: '#FFFFFF'
                          type: string
                        outlineColor:
                          default: '#000000'
                          type: string
                        outlineWidth:
                          default: 4
                          type: number
                      required:
                        - fontFamily
                        - fontSize
                        - fontWeight
                        - textColor
                        - outlineColor
                        - outlineWidth
                      additionalProperties: false
                  required:
                    - enabled
                    - duration
                    - autoHideBeforeLyrics
                    - titleStyle
                    - artistStyle
                  additionalProperties: false
                leadIn:
                  default:
                    enabled: true
                    beats: 4
                    minGap: 3
                    useNextSingerStyle: true
                    style:
                      color: '#2185D0'
                      outlineColor: '#000000'
                      outlineWidth: 3
                    width: 0.2
                    height: 1
                    offsetX: -2
                    offsetY: 0
                  type: object
                  properties:
                    enabled:
                      default: true
                      type: boolean
                    beats:
                      default: 4
                      type: number
                    minGap:
                      default: 3
                      type: number
                    useNextSingerStyle:
                      default: true
                      type: boolean
                    style:
                      default:
                        color: '#2185D0'
                        outlineColor: '#000000'
                        outlineWidth: 3
                      type: object
                      properties:
                        color:
                          default: '#2185D0'
                          type: string
                        outlineColor:
                          default: '#000000'
                          type: string
                        outlineWidth:
                          default: 3
                          type: number
                      required:
                        - color
                        - outlineColor
                        - outlineWidth
                      additionalProperties: false
                    width:
                      default: 0.2
                      type: number
                    height:
                      default: 1
                      type: number
                    offsetX:
                      default: -2
                      type: number
                    offsetY:
                      default: 0
                      type: number
                  required:
                    - enabled
                    - beats
                    - minGap
                    - useNextSingerStyle
                    - style
                    - width
                    - height
                    - offsetX
                    - offsetY
                  additionalProperties: false
                instrumentalBreak:
                  default:
                    hideLyrics: true
                    minGap: 5
                    displayDuration: 3
                  type: object
                  properties:
                    hideLyrics:
                      default: true
                      type: boolean
                    minGap:
                      default: 5
                      type: number
                    displayDuration:
                      default: 3
                      type: number
                  required:
                    - hideLyrics
                    - minGap
                    - displayDuration
                  additionalProperties: false
                breakCountdown:
                  default:
                    enabled: true
                    maxDuration: 3
                    animation: fade
                    useNextSingerStyle: false
                    style:
                      color: '#FFFFFF'
                      outlineColor: '#000000'
                      outlineWidth: 14.5
                    textSize: 80
                    hideBeforeEnd: 0
                  type: object
                  properties:
                    enabled:
                      default: true
                      type: boolean
                    maxDuration:
                      default: 3
                      type: number
                    animation:
                      default: spring
                      type: string
                      enum:
                        - spring
                        - fade
                    useNextSingerStyle:
                      default: false
                      type: boolean
                    style:
                      default:
                        color: '#FFFFFF'
                        outlineColor: '#000000'
                        outlineWidth: 3
                      type: object
                      properties:
                        color:
                          default: '#FFFFFF'
                          type: string
                        outlineColor:
                          default: '#000000'
                          type: string
                        outlineWidth:
                          default: 3
                          type: number
                      required:
                        - color
                        - outlineColor
                        - outlineWidth
                      additionalProperties: false
                    textSize:
                      default: 80
                      type: number
                    hideBeforeEnd:
                      default: 1
                      type: number
                  required:
                    - enabled
                    - maxDuration
                    - animation
                    - useNextSingerStyle
                    - style
                    - textSize
                    - hideBeforeEnd
                  additionalProperties: false
                breakProgressBar:
                  default:
                    enabled: true
                    maxDuration: 10
                    useNextSingerStyle: false
                    style:
                      color: '#2185D0'
                      outlineColor: '#000000'
                      outlineWidth: 5
                      backgroundColor: '#FFFFFF'
                      fillColor: '#2185D0'
                    width: 47
                    height: 7.5
                    position: center
                    cornerRadius: 0
                    hideBeforeEnd: 0
                  type: object
                  properties:
                    enabled:
                      default: true
                      type: boolean
                    maxDuration:
                      default: 10
                      type: number
                    useNextSingerStyle:
                      default: false
                      type: boolean
                    style:
                      default:
                        color: '#2185D0'
                        backgroundColor: '#FFFFFF'
                        fillColor: '#2185D0'
                        outlineColor: '#000000'
                        outlineWidth: 5
                      type: object
                      properties:
                        color:
                          default: '#2185D0'
                          type: string
                        outlineColor:
                          default: '#000000'
                          type: string
                        outlineWidth:
                          default: 5
                          type: number
                        backgroundColor:
                          default: rgba(255, 255, 255, 0.2)
                          type: string
                        fillColor:
                          default: '#2185D0'
                          type: string
                      required:
                        - color
                        - outlineColor
                        - outlineWidth
                        - backgroundColor
                        - fillColor
                      additionalProperties: false
                    width:
                      default: 47
                      type: number
                    height:
                      default: 7.5
                      type: number
                    position:
                      default: center
                      type: string
                      enum:
                        - top
                        - center
                        - bottom
                    cornerRadius:
                      default: 0
                      type: number
                      minimum: 0
                      maximum: 50
                    hideBeforeEnd:
                      default: 0
                      type: number
                  required:
                    - enabled
                    - maxDuration
                    - useNextSingerStyle
                    - style
                    - width
                    - height
                    - position
                    - cornerRadius
                    - hideBeforeEnd
                  additionalProperties: false
              required:
                - branding
                - titleCard
                - leadIn
                - instrumentalBreak
                - breakCountdown
                - breakProgressBar
              additionalProperties: false
            trim:
              default:
                startSeconds: 0
                endSeconds: 0
              type: object
              properties:
                startSeconds:
                  default: 0
                  type: number
                endSeconds:
                  default: 0
                  type: number
              required:
                - startSeconds
                - endSeconds
              additionalProperties: false
          required:
            - aspectRatio
            - layout
            - background
            - singerTextStyles
            - overlays
            - trim
          additionalProperties: false
        settings:
          type: object
          properties:
            style:
              type: object
              properties:
                aspectRatio:
                  default: '16:9'
                  type: string
                  enum:
                    - '16:9'
                    - '9:16'
                    - '4:3'
                    - '1:1'
                layout:
                  default:
                    type: karaoke
                    autoSplitLongLines: true
                    linesPerScreen: 2
                    alignment: bottom
                    paddingHorizontal: 0
                    paddingVertical: 5
                    languageSpacing: 5
                    containerHeight: 100
                    scrollingFadeStrength: 0.5
                    lineTransition: fade
                    anticipationBuffer: 3
                  type: object
                  properties:
                    type:
                      default: karaoke
                      type: string
                      enum:
                        - single
                        - duet
                        - karaoke
                        - scrolling
                        - multilingual
                        - chords
                    autoSplitLongLines:
                      default: true
                      type: boolean
                    linesPerScreen:
                      default: 2
                      anyOf:
                        - type: number
                          const: 2
                        - type: number
                          const: 3
                        - type: number
                          const: 4
                        - type: number
                          const: 5
                        - type: number
                          const: 6
                        - type: number
                          const: 7
                        - type: number
                          const: 8
                    alignment:
                      default: bottom
                      type: string
                      enum:
                        - top
                        - center
                        - bottom
                    paddingHorizontal:
                      default: 0
                      type: number
                    paddingVertical:
                      default: 5
                      type: number
                    languageSpacing:
                      default: 5
                      type: number
                      minimum: 0
                      maximum: 10
                    containerHeight:
                      default: 100
                      type: number
                      minimum: 20
                      maximum: 100
                    scrollingFadeStrength:
                      default: 0.5
                      type: number
                      minimum: 0
                      maximum: 1
                    lineTransition:
                      default: fade
                      type: string
                      enum:
                        - none
                        - fade
                        - slide
                        - dim
                    duetSettings:
                      type: object
                      properties:
                        overlapBehavior:
                          default: all-style
                          type: string
                          enum:
                            - both
                            - all-style
                      required:
                        - overlapBehavior
                      additionalProperties: false
                    multilingualSettings:
                      type: object
                      properties: {}
                      additionalProperties: false
                    anticipationBuffer:
                      default: 3
                      type: number
                      minimum: 0
                      maximum: 10
                  required:
                    - type
                    - autoSplitLongLines
                    - linesPerScreen
                    - alignment
                    - paddingHorizontal
                    - paddingVertical
                    - languageSpacing
                    - containerHeight
                    - scrollingFadeStrength
                    - lineTransition
                    - anticipationBuffer
                  additionalProperties: false
                background:
                  default:
                    type: auto
                  oneOf:
                    - type: object
                      properties:
                        type:
                          type: string
                          const: auto
                      required:
                        - type
                      additionalProperties: false
                    - type: object
                      properties:
                        type:
                          type: string
                          const: color
                        color:
                          default: '#000000'
                          type: string
                      required:
                        - type
                        - color
                      additionalProperties: false
                    - type: object
                      properties:
                        type:
                          type: string
                          const: gradient
                        angle:
                          default: 0
                          type: number
                        colors:
                          default:
                            - '#000000'
                            - '#333333'
                          type: array
                          items:
                            type: string
                      required:
                        - type
                        - angle
                        - colors
                      additionalProperties: false
                    - type: object
                      properties:
                        type:
                          type: string
                          const: image
                        url:
                          type: string
                        objectFit:
                          default: cover
                          type: string
                          enum:
                            - contain
                            - cover
                            - fill
                        blur:
                          type: number
                        dim:
                          type: number
                      required:
                        - type
                        - url
                        - objectFit
                      additionalProperties: false
                    - type: object
                      properties:
                        type:
                          type: string
                          const: video
                        url:
                          type: string
                        objectFit:
                          default: cover
                          type: string
                          enum:
                            - contain
                            - cover
                            - fill
                        dim:
                          type: number
                      required:
                        - type
                        - url
                        - objectFit
                      additionalProperties: false
                singerTextStyles:
                  default: {}
                  type: object
                  propertyNames:
                    type: number
                  additionalProperties:
                    type: object
                    properties:
                      fontFamily:
                        default: Arimo
                        type: string
                      fontSize:
                        default: 96
                        type: number
                      fontWeight:
                        default: 700
                        type: number
                      textColor:
                        default: '#FFFFFF'
                        type: string
                      outlineColor:
                        default: '#000000'
                        type: string
                      outlineWidth:
                        default: 20
                        type: number
                      textEffect:
                        default: karaoke
                        type: string
                        enum:
                          - none
                          - karaoke
                          - highlight
                      activeLineColor:
                        default: '#fff09a'
                        type: string
                      effectColor:
                        default: '#2185D0'
                        type: string
                      backgroundColor:
                        default: transparent
                        type: string
                      letterSpacing:
                        default: 0
                        type: number
                      lineSpacing:
                        default: 1.2
                        type: number
                      textCase:
                        default: none
                        type: string
                        enum:
                          - none
                          - uppercase
                          - lowercase
                          - capitalize
                      textDirection:
                        default: auto
                        type: string
                        enum:
                          - auto
                          - ltr
                          - rtl
                      shadowColor:
                        default: rgba(0,0,0,0.5)
                        type: string
                      shadowBlur:
                        default: 4
                        type: number
                      shadowOffsetX:
                        default: 0
                        type: number
                      shadowOffsetY:
                        default: 0
                        type: number
                      shadowOpacity:
                        type: number
                      duetPosition:
                        default: center
                        type: string
                        enum:
                          - top
                          - center
                          - bottom
                    required:
                      - fontFamily
                      - fontSize
                      - fontWeight
                      - textColor
                      - outlineColor
                      - outlineWidth
                      - textEffect
                      - activeLineColor
                      - effectColor
                      - backgroundColor
                      - letterSpacing
                      - lineSpacing
                      - textCase
                      - textDirection
                      - shadowColor
                      - shadowBlur
                      - shadowOffsetX
                      - shadowOffsetY
                      - duetPosition
                    additionalProperties: false
                languageTextStyles:
                  default: {}
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties:
                    type: object
                    properties:
                      fontFamily:
                        default: Arimo
                        type: string
                      fontSize:
                        default: 96
                        type: number
                      fontWeight:
                        default: 700
                        type: number
                      textColor:
                        default: '#FFFFFF'
                        type: string
                      outlineColor:
                        default: '#000000'
                        type: string
                      outlineWidth:
                        default: 20
                        type: number
                      textEffect:
                        default: karaoke
                        type: string
                        enum:
                          - none
                          - karaoke
                          - highlight
                      activeLineColor:
                        default: '#fff09a'
                        type: string
                      effectColor:
                        default: '#2185D0'
                        type: string
                      backgroundColor:
                        default: transparent
                        type: string
                      letterSpacing:
                        default: 0
                        type: number
                      lineSpacing:
                        default: 1.2
                        type: number
                      textCase:
                        default: none
                        type: string
                        enum:
                          - none
                          - uppercase
                          - lowercase
                          - capitalize
                      textDirection:
                        default: auto
                        type: string
                        enum:
                          - auto
                          - ltr
                          - rtl
                      shadowColor:
                        default: rgba(0,0,0,0.5)
                        type: string
                      shadowBlur:
                        default: 4
                        type: number
                      shadowOffsetX:
                        default: 0
                        type: number
                      shadowOffsetY:
                        default: 0
                        type: number
                      shadowOpacity:
                        type: number
                      duetPosition:
                        default: center
                        type: string
                        enum:
                          - top
                          - center
                          - bottom
                    required:
                      - fontFamily
                      - fontSize
                      - fontWeight
                      - textColor
                      - outlineColor
                      - outlineWidth
                      - textEffect
                      - activeLineColor
                      - effectColor
                      - backgroundColor
                      - letterSpacing
                      - lineSpacing
                      - textCase
                      - textDirection
                      - shadowColor
                      - shadowBlur
                      - shadowOffsetX
                      - shadowOffsetY
                      - duetPosition
                    additionalProperties: false
                chordTextStyle:
                  type: object
                  properties:
                    fontFamily:
                      default: Arimo
                      type: string
                    fontSize:
                      default: 96
                      type: number
                    fontWeight:
                      default: 700
                      type: number
                    textColor:
                      default: '#FFFFFF'
                      type: string
                    outlineColor:
                      default: '#000000'
                      type: string
                    outlineWidth:
                      default: 20
                      type: number
                    textEffect:
                      default: karaoke
                      type: string
                      enum:
                        - none
                        - karaoke
                        - highlight
                    activeLineColor:
                      default: '#fff09a'
                      type: string
                    effectColor:
                      default: '#2185D0'
                      type: string
                    backgroundColor:
                      default: transparent
                      type: string
                    letterSpacing:
                      default: 0
                      type: number
                    lineSpacing:
                      default: 1.2
                      type: number
                    textCase:
                      default: none
                      type: string
                      enum:
                        - none
                        - uppercase
                        - lowercase
                        - capitalize
                    textDirection:
                      default: auto
                      type: string
                      enum:
                        - auto
                        - ltr
                        - rtl
                    shadowColor:
                      default: rgba(0,0,0,0.5)
                      type: string
                    shadowBlur:
                      default: 4
                      type: number
                    shadowOffsetX:
                      default: 0
                      type: number
                    shadowOffsetY:
                      default: 0
                      type: number
                    shadowOpacity:
                      type: number
                    duetPosition:
                      default: center
                      type: string
                      enum:
                        - top
                        - center
                        - bottom
                  required:
                    - fontFamily
                    - fontSize
                    - fontWeight
                    - textColor
                    - outlineColor
                    - outlineWidth
                    - textEffect
                    - activeLineColor
                    - effectColor
                    - backgroundColor
                    - letterSpacing
                    - lineSpacing
                    - textCase
                    - textDirection
                    - shadowColor
                    - shadowBlur
                    - shadowOffsetX
                    - shadowOffsetY
                    - duetPosition
                  additionalProperties: false
                overlays:
                  default:
                    branding:
                      logo:
                        enabled: false
                        position: bottom-right
                        paddingX: 20
                        paddingY: 20
                        scale: 0.1
                        opacity: 1
                      intro:
                        enabled: false
                        durationSeconds: 0
                        effect: fade
                        effectDuration: 0.5
                      outro:
                        enabled: false
                        durationSeconds: 0
                        effect: fade
                        effectDuration: 0.5
                    titleCard:
                      enabled: true
                      duration: 5
                      autoHideBeforeLyrics: true
                      titleStyle:
                        fontFamily: Arimo
                        fontSize: 200
                        fontWeight: 700
                        textColor: '#2185D0'
                        outlineColor: '#000000'
                        outlineWidth: 30
                      artistStyle:
                        fontFamily: Arimo
                        fontSize: 150
                        fontWeight: 700
                        textColor: '#FFFFFF'
                        outlineColor: '#000000'
                        outlineWidth: 30
                    leadIn:
                      enabled: true
                      beats: 4
                      minGap: 3
                      useNextSingerStyle: true
                      style:
                        color: '#2185D0'
                        outlineColor: '#000000'
                        outlineWidth: 3
                      width: 0.2
                      height: 1
                      offsetX: -2
                      offsetY: 0
                    instrumentalBreak:
                      hideLyrics: true
                      minGap: 5
                      displayDuration: 3
                    breakCountdown:
                      enabled: true
                      maxDuration: 3
                      animation: fade
                      useNextSingerStyle: false
                      style:
                        color: '#FFFFFF'
                        outlineColor: '#000000'
                        outlineWidth: 14.5
                      textSize: 80
                      hideBeforeEnd: 0
                    breakProgressBar:
                      enabled: true
                      maxDuration: 10
                      useNextSingerStyle: false
                      style:
                        color: '#2185D0'
                        outlineColor: '#000000'
                        outlineWidth: 5
                        backgroundColor: '#FFFFFF'
                        fillColor: '#2185D0'
                      width: 47
                      height: 7.5
                      position: center
                      cornerRadius: 0
                      hideBeforeEnd: 0
                  type: object
                  properties:
                    branding:
                      default:
                        logo:
                          enabled: false
                          position: bottom-right
                          paddingX: 20
                          paddingY: 20
                          scale: 0.1
                          opacity: 1
                        intro:
                          enabled: false
                          durationSeconds: 0
                          effect: fade
                          effectDuration: 0.5
                        outro:
                          enabled: false
                          durationSeconds: 0
                          effect: fade
                          effectDuration: 0.5
                      type: object
                      properties:
                        logo:
                          default:
                            enabled: false
                            position: bottom-right
                            paddingX: 20
                            paddingY: 20
                            scale: 0.1
                            opacity: 1
                          type: object
                          properties:
                            enabled:
                              default: false
                              type: boolean
                            url:
                              type: string
                            position:
                              default: bottom-right
                              type: string
                              enum:
                                - top-left
                                - top-right
                                - bottom-left
                                - bottom-right
                            paddingX:
                              default: 20
                              type: number
                            paddingY:
                              default: 20
                              type: number
                            scale:
                              default: 0.1
                              type: number
                            opacity:
                              default: 1
                              type: number
                          required:
                            - enabled
                            - position
                            - paddingX
                            - paddingY
                            - scale
                            - opacity
                          additionalProperties: false
                        intro:
                          default:
                            enabled: false
                            durationSeconds: 0
                            effect: fade
                            effectDuration: 0.5
                          type: object
                          properties:
                            enabled:
                              default: false
                              type: boolean
                            url:
                              type: string
                            durationSeconds:
                              default: 0
                              type: number
                            effect:
                              default: fade
                              type: string
                              enum:
                                - fade
                                - crossfade
                                - slide-left
                                - slide-right
                                - slide-up
                                - slide-down
                                - zoom-in
                                - zoom-out
                                - blur
                            effectDuration:
                              default: 0.5
                              type: number
                          required:
                            - enabled
                            - durationSeconds
                            - effect
                            - effectDuration
                          additionalProperties: false
                        outro:
                          default:
                            enabled: false
                            durationSeconds: 0
                            effect: fade
                            effectDuration: 0.5
                          type: object
                          properties:
                            enabled:
                              default: false
                              type: boolean
                            url:
                              type: string
                            durationSeconds:
                              default: 0
                              type: number
                            effect:
                              default: fade
                              type: string
                              enum:
                                - fade
                                - crossfade
                                - slide-left
                                - slide-right
                                - slide-up
                                - slide-down
                                - zoom-in
                                - zoom-out
                                - blur
                            effectDuration:
                              default: 0.5
                              type: number
                          required:
                            - enabled
                            - durationSeconds
                            - effect
                            - effectDuration
                          additionalProperties: false
                      required:
                        - logo
                        - intro
                        - outro
                      additionalProperties: false
                    titleCard:
                      default:
                        enabled: true
                        duration: 5
                        autoHideBeforeLyrics: true
                        titleStyle:
                          fontFamily: Arimo
                          fontSize: 200
                          fontWeight: 700
                          textColor: '#2185D0'
                          outlineColor: '#000000'
                          outlineWidth: 30
                        artistStyle:
                          fontFamily: Arimo
                          fontSize: 150
                          fontWeight: 700
                          textColor: '#FFFFFF'
                          outlineColor: '#000000'
                          outlineWidth: 30
                      type: object
                      properties:
                        enabled:
                          default: true
                          type: boolean
                        duration:
                          default: 5
                          type: number
                        autoHideBeforeLyrics:
                          default: true
                          type: boolean
                        titleStyle:
                          default:
                            fontFamily: Arimo
                            fontSize: 200
                            fontWeight: 700
                            textColor: '#2185D0'
                            outlineColor: '#000000'
                            outlineWidth: 30
                          type: object
                          properties:
                            fontFamily:
                              default: Arimo
                              type: string
                            fontSize:
                              default: 150
                              type: number
                            fontWeight:
                              default: 700
                              type: number
                            textColor:
                              default: '#FFFFFF'
                              type: string
                            outlineColor:
                              default: '#000000'
                              type: string
                            outlineWidth:
                              default: 4
                              type: number
                          required:
                            - fontFamily
                            - fontSize
                            - fontWeight
                            - textColor
                            - outlineColor
                            - outlineWidth
                          additionalProperties: false
                        artistStyle:
                          default:
                            fontFamily: Arimo
                            fontSize: 150
                            fontWeight: 700
                            textColor: '#FFFFFF'
                            outlineColor: '#000000'
                            outlineWidth: 30
                          type: object
                          properties:
                            fontFamily:
                              default: Arimo
                              type: string
                            fontSize:
                              default: 150
                              type: number
                            fontWeight:
                              default: 700
                              type: number
                            textColor:
                              default: '#FFFFFF'
                              type: string
                            outlineColor:
                              default: '#000000'
                              type: string
                            outlineWidth:
                              default: 4
                              type: number
                          required:
                            - fontFamily
                            - fontSize
                            - fontWeight
                            - textColor
                            - outlineColor
                            - outlineWidth
                          additionalProperties: false
                      required:
                        - enabled
                        - duration
                        - autoHideBeforeLyrics
                        - titleStyle
                        - artistStyle
                      additionalProperties: false
                    leadIn:
                      default:
                        enabled: true
                        beats: 4
                        minGap: 3
                        useNextSingerStyle: true
                        style:
                          color: '#2185D0'
                          outlineColor: '#000000'
                          outlineWidth: 3
                        width: 0.2
                        height: 1
                        offsetX: -2
                        offsetY: 0
                      type: object
                      properties:
                        enabled:
                          default: true
                          type: boolean
                        beats:
                          default: 4
                          type: number
                        minGap:
                          default: 3
                          type: number
                        useNextSingerStyle:
                          default: true
                          type: boolean
                        style:
                          default:
                            color: '#2185D0'
                            outlineColor: '#000000'
                            outlineWidth: 3
                          type: object
                          properties:
                            color:
                              default: '#2185D0'
                              type: string
                            outlineColor:
                              default: '#000000'
                              type: string
                            outlineWidth:
                              default: 3
                              type: number
                          required:
                            - color
                            - outlineColor
                            - outlineWidth
                          additionalProperties: false
                        width:
                          default: 0.2
                          type: number
                        height:
                          default: 1
                          type: number
                        offsetX:
                          default: -2
                          type: number
                        offsetY:
                          default: 0
                          type: number
                      required:
                        - enabled
                        - beats
                        - minGap
                        - useNextSingerStyle
                        - style
                        - width
                        - height
                        - offsetX
                        - offsetY
                      additionalProperties: false
                    instrumentalBreak:
                      default:
                        hideLyrics: true
                        minGap: 5
                        displayDuration: 3
                      type: object
                      properties:
                        hideLyrics:
                          default: true
                          type: boolean
                        minGap:
                          default: 5
                          type: number
                        displayDuration:
                          default: 3
                          type: number
                      required:
                        - hideLyrics
                        - minGap
                        - displayDuration
                      additionalProperties: false
                    breakCountdown:
                      default:
                        enabled: true
                        maxDuration: 3
                        animation: fade
                        useNextSingerStyle: false
                        style:
                          color: '#FFFFFF'
                          outlineColor: '#000000'
                          outlineWidth: 14.5
                        textSize: 80
                        hideBeforeEnd: 0
                      type: object
                      properties:
                        enabled:
                          default: true
                          type: boolean
                        maxDuration:
                          default: 3
                          type: number
                        animation:
                          default: spring
                          type: string
                          enum:
                            - spring
                            - fade
                        useNextSingerStyle:
                          default: false
                          type: boolean
                        style:
                          default:
                            color: '#FFFFFF'
                            outlineColor: '#000000'
                            outlineWidth: 3
                          type: object
                          properties:
                            color:
                              default: '#FFFFFF'
                              type: string
                            outlineColor:
                              default: '#000000'
                              type: string
                            outlineWidth:
                              default: 3
                              type: number
                          required:
                            - color
                            - outlineColor
                            - outlineWidth
                          additionalProperties: false
                        textSize:
                          default: 80
                          type: number
                        hideBeforeEnd:
                          default: 1
                          type: number
                      required:
                        - enabled
                        - maxDuration
                        - animation
                        - useNextSingerStyle
                        - style
                        - textSize
                        - hideBeforeEnd
                      additionalProperties: false
                    breakProgressBar:
                      default:
                        enabled: true
                        maxDuration: 10
                        useNextSingerStyle: false
                        style:
                          color: '#2185D0'
                          outlineColor: '#000000'
                          outlineWidth: 5
                          backgroundColor: '#FFFFFF'
                          fillColor: '#2185D0'
                        width: 47
                        height: 7.5
                        position: center
                        cornerRadius: 0
                        hideBeforeEnd: 0
                      type: object
                      properties:
                        enabled:
                          default: true
                          type: boolean
                        maxDuration:
                          default: 10
                          type: number
                        useNextSingerStyle:
                          default: false
                          type: boolean
                        style:
                          default:
                            color: '#2185D0'
                            backgroundColor: '#FFFFFF'
                            fillColor: '#2185D0'
                            outlineColor: '#000000'
                            outlineWidth: 5
                          type: object
                          properties:
                            color:
                              default: '#2185D0'
                              type: string
                            outlineColor:
                              default: '#000000'
                              type: string
                            outlineWidth:
                              default: 5
                              type: number
                            backgroundColor:
                              default: rgba(255, 255, 255, 0.2)
                              type: string
                            fillColor:
                              default: '#2185D0'
                              type: string
                          required:
                            - color
                            - outlineColor
                            - outlineWidth
                            - backgroundColor
                            - fillColor
                          additionalProperties: false
                        width:
                          default: 47
                          type: number
                        height:
                          default: 7.5
                          type: number
                        position:
                          default: center
                          type: string
                          enum:
                            - top
                            - center
                            - bottom
                        cornerRadius:
                          default: 0
                          type: number
                          minimum: 0
                          maximum: 50
                        hideBeforeEnd:
                          default: 0
                          type: number
                      required:
                        - enabled
                        - maxDuration
                        - useNextSingerStyle
                        - style
                        - width
                        - height
                        - position
                        - cornerRadius
                        - hideBeforeEnd
                      additionalProperties: false
                  required:
                    - branding
                    - titleCard
                    - leadIn
                    - instrumentalBreak
                    - breakCountdown
                    - breakProgressBar
                  additionalProperties: false
                trim:
                  default:
                    startSeconds: 0
                    endSeconds: 0
                  type: object
                  properties:
                    startSeconds:
                      default: 0
                      type: number
                    endSeconds:
                      default: 0
                      type: number
                  required:
                    - startSeconds
                    - endSeconds
                  additionalProperties: false
              required:
                - aspectRatio
                - layout
                - background
                - singerTextStyles
                - overlays
                - trim
              additionalProperties: false
            trim:
              type: object
              properties:
                startSeconds:
                  default: 0
                  type: number
                endSeconds:
                  default: 0
                  type: number
              required:
                - startSeconds
                - endSeconds
              additionalProperties: false
            displayLanguages:
              type: array
              items:
                type: string
            chordSettings:
              type: object
              properties:
                displayMode:
                  default: inline
                  type: string
                  enum:
                    - inline
                    - grid
                notation:
                  default: chord_simple_pop
                  type: string
                  enum:
                    - chord_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
                transpose:
                  default: 0
                  type: integer
                  minimum: -12
                  maximum: 12
                capo:
                  default: 0
                  type: integer
                  minimum: 0
                  maximum: 12
                showLayer:
                  default: true
                  type: boolean
              required:
                - displayMode
                - notation
                - transpose
                - capo
                - showLayer
              additionalProperties: false
            duetSingerFilter:
              type: object
              properties:
                enabled:
                  default: false
                  type: boolean
                selectedSingerIds:
                  default: []
                  type: array
                  items:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                includeSharedLines:
                  default: true
                  type: boolean
              required:
                - enabled
                - selectedSingerIds
                - includeSharedLines
              additionalProperties: false
          additionalProperties: false
      required:
        - presetId
        - preset
        - settings
      additionalProperties: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key

````