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

# Update video settings

> Update the video settings for your project



## OpenAPI

````yaml put /projects/{project_id}/video_settings
openapi: 3.0.1
info:
  title: BeyondWords REST API
  description: |-
    This is the documentation for the BeyondWords REST API.
              You can use this API to use BeyondWords programmatically.
              You can get your API Key and Project ID for each project in the Project settings tab in the BeyondWords
              <a href="https://dash.beyondwords.io/dashboard">dashboard</a>.
  version: 1.0.0
servers:
  - url: https://api.beyondwords.io/v1
security: []
paths:
  /projects/{project_id}/video_settings:
    parameters:
      - name: project_id
        in: path
        description: The numeric ID of your project
        required: true
        schema:
          type: string
    put:
      tags:
        - Video Settings
      summary: Update
      description: Update the video settings for your project
      operationId: video_settings#update
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/requestBodyVideoSettings'
            examples:
              example_video_settings:
                $ref: >-
                  #/components/examples/requestBodyUpdateVideoSettingsRequestExample
      responses:
        '200':
          description: successful
          content:
            application/json:
              examples:
                example:
                  $ref: '#/components/examples/videoSettingsExample'
              schema:
                $ref: '#/components/schemas/videoSettingsModel'
        '401':
          description: Invalid authentication token
          content:
            application/json:
              examples:
                example:
                  $ref: '#/components/examples/unauthorizedErrorExample'
              schema:
                $ref: '#/components/schemas/errorModel'
        '422':
          description: failure
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorModel'
      security:
        - apiKey: []
components:
  schemas:
    requestBodyVideoSettings:
      type: object
      properties:
        enabled:
          type: boolean
          description: When true, video generation is enabled for this content or project
        logo_image_url:
          type: string
          nullable: true
          description: >-
            The logo that should appear in the corner of the video. Defaults to
            the BeyondWords logo.
          format: uri
          maxLength: 2048
        logo_image_position:
          type: string
          enum:
            - top-left
            - top-right
          description: The position of the logo that appears in the corner of the video.
        background_color:
          type: string
          description: >-
            The background color of the video when there is no image. Supports
            CSS colors including linear-gradient(to right, ...)
        text_transform:
          type: string
          enum:
            - none
            - uppercase
            - lowercase
            - titlecase
          description: Text transformation to apply to captions
        text_background_color:
          type: string
          description: >-
            The background color to show behind text. Supports CSS colors
            including linear-gradient(to right, ...)
        text_background_radius:
          type: number
          minimum: 0
          maximum: 100
          description: Border radius of the text background
        text_color:
          type: string
          description: >-
            The foreground color of text. Supports CSS colors including
            linear-gradient(to right, ...)
        text_secondary_color:
          type: string
          nullable: true
          description: >-
            Color of the text captions to show on every other scene. (CSS color
            format)
        text_highlight_color:
          type: string
          nullable: true
          description: >-
            The foreground color of text whilst the word is being read out.
            Supports CSS colors including linear-gradient(to right, ...)
        text_highlight_secondary_color:
          type: string
          nullable: true
          description: >-
            Color of highlighted text to show on every other scene. Supports CSS
            colors including linear-gradient(to right, ...)
        text_highlight_background_color:
          type: string
          maxLength: 100
          description: >-
            Color of the background behind the highlighted text (CSS color
            format, supports linear-gradient(to right, ...))
        text_highlight_secondary_background_color:
          type: string
          maxLength: 100
          nullable: true
          description: >-
            Color of the background behind the highlighted text to show on every
            other scene (CSS color format, supports linear-gradient(to right,
            ...))
        text_highlight_background_radius:
          type: number
          minimum: 0
          maximum: 100
          description: Border radius of the highlight text background
        text_shadow:
          type: string
          description: >-
            Text shadow of non-highlighted words (CSS format, supports
            linear-gradient(to right, ...))
        text_highlight_shadow:
          type: string
          description: >-
            Text shadow of highlighted words (CSS format, supports
            linear-gradient(to right, ...))
          nullable: true
        text_stroke:
          type: string
          description: >-
            Text outline of non-highlighted words (CSS format, supports
            linear-gradient(to right, ...) and inside/center/outside)
        text_highlight_stroke:
          type: string
          description: >-
            Text outline of highlighted words (CSS format, supports
            linear-gradient(to right, ...) and inside/center/outside)
          nullable: true
        text_fonts:
          type: array
          items:
            type: string
          description: >-
            A list of fonts to use. Fonts will be prioritized automatically
            based on glyph coverage for the text. The default fonts are
            built-in, but you can include remote URLs to custom fonts in .ttf or
            .otf format.
        text_font_size:
          type: integer
          minimum: 30
          maximum: 90
          description: Font size for text captions (30-90).
        text_width:
          type: number
          minimum: 0
          maximum: 1
          description: Maximum width of text as a ratio of the frame width.
        text_lines:
          type: integer
          nullable: true
          description: >-
            The maximum number of lines of text to show at once. Must be between
            1 and 5. If not specified, text_lines will default to landscape=4,
            square=5, portrait=5.
          minimum: 1
          maximum: 5
        text_words:
          type: integer
          nullable: true
          minimum: 1
          description: Maximum number of words to show per line
        text_horizontal_align:
          type: string
          nullable: false
          enum:
            - start
            - center
            - end
          description: >-
            The horizontal alignment of text lines, either 'start', 'center', or
            'end'. A value of 'start' aligns the text to the left for
            left-to-right languages, right otherwise. A value of 'end' aligns
            the text to the right for left-to-right languages, left otherwise.
        text_vertical_align:
          type: string
          nullable: false
          enum:
            - start
            - center
            - end
          description: >-
            The vertical alignment of text lines, either 'start' (top),
            'center', or 'end' (bottom).
        text_horizontal_offset:
          type: number
          description: >-
            The horizontal offset of text relative to the frame width, between
            -1.0 and 1.0
        text_vertical_offset:
          type: number
          description: >-
            The vertical offset of text relative to the frame height, between
            -1.0 and 1.0
        text_animation:
          type: string
          enum:
            - classic
            - reveal
            - karaoke
            - pop
          description: The text animation to show
        entrance_animation:
          type: string
          enum:
            - none
            - fade
            - zoom-in
            - zoom-out
            - slide-up
            - slide-down
            - slide-left
            - slide-right
            - pop
          description: The entrance animation for image and video segments
        exit_animation:
          type: string
          enum:
            - none
            - fade
            - zoom-in
            - zoom-out
            - slide-up
            - slide-down
            - slide-left
            - slide-right
            - pop
          description: The exit animation for image and video segments
        waveform_color:
          type: string
          description: >-
            The color of the audio waveform bars. Supports CSS colors including
            linear-gradient(to right, ...)
        content_image_enabled:
          type: boolean
          description: When true, uses the content's featured image as video background
        image_extraction_enabled:
          type: boolean
          description: >-
            When true, automatically extracts images from HTML content.
            Alternatively, set the data-beyondwords-image='true' attribute.
        pan_and_zoom_enabled:
          type: boolean
          description: When true, applies pan and zoom effects to background images
        audio_and_waveform_enabled:
          type: boolean
          description: When true, video includes audio and animated waveform visualization
        text_captions_enabled:
          type: boolean
          description: When true, displays text captions overlaid on the video
        playback_mode:
          type: string
          enum:
            - cycle
            - space-evenly
            - follow-article
          description: >-
            The playback mode for images in the video. There are three available
            options. A value of 'cycle' will cycle through images, potentially
            repeating them according to cycle_time. A value of 'space-evenly'
            will space images evenly throughout the video without repeating
            them. A value of 'follow-article' will show images at the point when
            they appear in the article. Note that 'follow-article' is not
            applicable for summaries which have different text.
        cycle_time:
          type: integer
          description: >-
            The time in milliseconds to show each image when playback_mode is
            set to 'cycle'.
          minimum: 1000
          maximum: 60000
        variants:
          type: array
          items:
            type: string
        sizes:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              description:
                type: string
                nullable: true
              width:
                type: integer
              height:
                type: integer
              enabled:
                type: boolean
        template:
          type: object
          nullable: true
          properties:
            id:
              type: integer
            slug:
              type: string
              description: The video settings template slug
    videoSettingsModel:
      type: object
      properties:
        enabled:
          type: boolean
          nullable: false
          description: When true, video generation is enabled for this project
        logo_image_url:
          type: string
          nullable: true
          description: >-
            The logo that should appear in the corner of the video. Defaults to
            the BeyondWords logo.
          format: uri
          maxLength: 2048
        logo_image_position:
          type: string
          nullable: false
          enum:
            - top-left
            - top-right
          description: The position of the logo that appears in the corner of the video.
        background_color:
          type: string
          nullable: false
          description: >-
            The background color of the video when there is no image. Supports
            CSS colors including linear-gradient(to right, ...)
        text_transform:
          type: string
          enum:
            - none
            - uppercase
            - lowercase
            - titlecase
          description: Text transformation to apply to captions
        text_background_color:
          type: string
          nullable: false
          description: >-
            The background color to show behind text. Supports CSS colors
            including linear-gradient(to right, ...)
        text_background_radius:
          type: number
          minimum: 0
          maximum: 100
          description: Border radius of the text background
        text_color:
          type: string
          nullable: false
          description: >-
            The foreground color of text. Supports CSS colors including
            linear-gradient(to right, ...)
        text_secondary_color:
          type: string
          nullable: true
          description: >-
            Color of the text captions to show on every other scene (CSS color
            format)
        text_highlight_color:
          type: string
          nullable: true
          description: >-
            The foreground color of text whilst the word is being read out.
            Supports CSS colors including linear-gradient(to right, ...)
        text_highlight_secondary_color:
          type: string
          maxLength: 100
          nullable: true
          description: >-
            Color of highlighted text to show on every other scene. Supports CSS
            colors including linear-gradient(to right, ...)
        text_highlight_background_color:
          type: string
          maxLength: 100
          description: >-
            Color of the background behind the highlighted text (CSS color
            format, supports linear-gradient(to right, ...))
        text_highlight_secondary_background_color:
          type: string
          maxLength: 100
          nullable: true
          description: >-
            Color of the background behind the highlighted text to show on every
            other scene (CSS color format, supports linear-gradient(to right,
            ...))
        text_highlight_background_radius:
          type: number
          minimum: 0
          maximum: 100
          description: Border radius of the highlight text background
        text_shadow:
          type: string
          maxLength: 200
          description: >-
            Text shadow of non-highlighted words (CSS format, supports
            linear-gradient(to right, ...))
        text_highlight_shadow:
          type: string
          maxLength: 200
          nullable: true
          description: >-
            Text shadow of highlighted words (CSS format, supports
            linear-gradient(to right, ...))
        text_stroke:
          type: string
          maxLength: 200
          description: >-
            Text outline of non-highlighted words (CSS format, supports
            linear-gradient(to right, ...) and inside/center/outside)
        text_highlight_stroke:
          type: string
          maxLength: 200
          nullable: true
          description: >-
            Text outline of highlighted words (CSS format, supports
            linear-gradient(to right, ...) and inside/center/outside)
        text_fonts:
          type: array
          nullable: false
          items:
            type: string
          description: >-
            A list of fonts to use. Fonts will be prioritized automatically
            based on glyph coverage for the text. The default fonts are
            built-in, but you can include remote URLs to custom fonts in .ttf or
            .otf format.
        text_font_size:
          type: integer
          minimum: 30
          maximum: 90
          description: Font size for text captions (30-90).
        text_width:
          type: number
          minimum: 0
          maximum: 1
          description: Maximum width of text as a ratio of the frame width.
        text_lines:
          type: integer
          nullable: true
          description: >-
            The maximum number of lines of text to show at once. Must be between
            1 and 5. If not specified, text_lines will default to landscape=4,
            square=5, portrait=5.
          minimum: 1
          maximum: 5
        text_words:
          type: integer
          nullable: true
          minimum: 1
          description: Maximum number of words to show per line
        text_horizontal_align:
          type: string
          nullable: false
          enum:
            - start
            - center
            - end
          description: >-
            The horizontal alignment of text lines, either 'start', 'center', or
            'end'. A value of 'start' aligns the text to the left for
            left-to-right languages, right otherwise. A value of 'end' aligns
            the text to the right for left-to-right languages, left otherwise.
        text_vertical_align:
          type: string
          nullable: false
          enum:
            - start
            - center
            - end
          description: >-
            The vertical alignment of text lines, either 'start' (top),
            'center', or 'end' (bottom).
        text_horizontal_offset:
          type: number
          description: >-
            The horizontal offset of text relative to the frame width, between
            -1.0 and 1.0
        text_vertical_offset:
          type: number
          description: >-
            The vertical offset of text relative to the frame height, between
            -1.0 and 1.0
        text_animation:
          type: string
          enum:
            - classic
            - reveal
            - karaoke
            - pop
          description: The text animation to show
        entrance_animation:
          type: string
          enum:
            - none
            - fade
            - zoom-in
            - zoom-out
            - slide-up
            - slide-down
            - slide-left
            - slide-right
            - pop
          description: The entrance animation for image and video segments
        exit_animation:
          type: string
          enum:
            - none
            - fade
            - zoom-in
            - zoom-out
            - slide-up
            - slide-down
            - slide-left
            - slide-right
            - pop
          description: The exit animation for image and video segments
        waveform_color:
          type: string
          nullable: false
          description: >-
            The color of the audio waveform bars. Supports CSS colors including
            linear-gradient(to right, ...)
        content_image_enabled:
          type: boolean
          nullable: false
          description: When true, uses the content's featured image as video background
        image_extraction_enabled:
          type: boolean
          nullable: false
          description: >-
            When true, automatically extracts images from HTML content.
            Alternatively, set the data-beyondwords-image='true' attribute.
        pan_and_zoom_enabled:
          type: boolean
          nullable: false
          description: When true, applies pan and zoom effects to background images
        audio_and_waveform_enabled:
          type: boolean
          nullable: false
          description: When true, video includes audio and animated waveform visualization
        text_captions_enabled:
          type: boolean
          nullable: false
          description: When true, displays text captions overlaid on the video
        playback_mode:
          type: string
          nullable: false
          enum:
            - cycle
            - space-evenly
            - follow-article
          description: >-
            The playback mode for images in the video. There are three available
            options. A value of 'cycle' will cycle through images, potentially
            repeating them according to cycle_time. A value of 'space-evenly'
            will space images evenly throughout the video without repeating
            them. A value of 'follow-article' will show images at the point when
            they appear in the article. Note that 'follow-article' is not
            applicable for summaries which have different text.
        cycle_time:
          type: integer
          nullable: false
          description: >-
            The time in milliseconds to show each image when playback_mode is
            set to 'cycle'.
          minimum: 1000
          maximum: 60000
        variants:
          type: array
          nullable: false
          items:
            type: string
        sizes:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              description:
                type: string
                nullable: true
              width:
                type: integer
              height:
                type: integer
              enabled:
                type: boolean
    errorModel:
      type: object
      properties:
        code:
          type: integer
          description: Error code
        message:
          type: string
          description: Error message
        errors:
          type: array
          nullable: true
          items:
            type: object
            properties:
              location:
                type: string
              message:
                type: string
  examples:
    requestBodyUpdateVideoSettingsRequestExample:
      summary: A sample video settings request
      value:
        enabled: true
        logo_image_url: null
        logo_image_position: top-right
        background_color: white
        text_transform: none
        text_background_color: rgba(255, 255, 255, 0.88)
        text_background_radius: 8
        text_color: black
        text_secondary_color: null
        text_highlight_color: 'linear-gradient(to right, #933AFB, #FB3A41)'
        text_highlight_secondary_color: null
        text_highlight_background_color: linear-gradient(to right, pink, purple)
        text_highlight_secondary_background_color: null
        text_highlight_background_radius: 8
        text_shadow: 3px 3px 3px linear-gradient(to right, red, blue)
        text_highlight_shadow: null
        text_stroke: 0px transparent outside
        text_highlight_stroke: null
        text_fonts:
          - https://example.com/my-custom-font.ttf
          - Inter-Medium.ttf
          - fallbacks
        text_font_size: 64,
        text_width: 0.8
        text_lines: 1
        text_horizontal_align: center
        text_vertical_align: end
        text_horizontal_offset: 0
        text_vertical_offset: 0
        text_animation: karaoke
        entrance_animation: fade
        exit_animation: fade
        waveform_color: 'linear-gradient(to right, #933AFB, #FB3A41)'
        content_image_enabled: true
        image_extraction_enabled: true
        pan_and_zoom_enabled: true
        audio_and_waveform_enabled: true
        text_captions_enabled: true
        playback_mode: cycle
        cycle_time: 15000
    videoSettingsExample:
      summary: A sample video settings response
      value:
        enabled: true
        logo_image_url: https://example.com/logo.png
        logo_image_position: top-right
        background_color: white
        text_transform: none
        text_background_color: rgba(255, 255, 255, 0.88)
        text_background_radius: 8
        text_color: black
        text_secondary_color: null
        text_highlight_color: '#0cf'
        text_highlight_secondary_color: null
        text_highlight_background_color: linear-gradient(to right, pink, purple)
        text_highlight_secondary_background_color: null
        text_highlight_background_radius: 8
        text_shadow: 3px 3px 3px linear-gradient(to right, red, blue)
        text_highlight_shadow: null
        text_stroke: 0px transparent outside
        text_highlight_stroke: null
        text_fonts:
          - https://example.com/my-custom-font.ttf
          - Inter-Medium.ttf
          - fallbacks
        text_font_size: 64,
        text_width: 0.8
        text_lines: null
        text_words: null
        text_horizontal_align: start
        text_vertical_align: end
        text_horizontal_offset: 0
        text_vertical_offset: 0
        text_animation: karaoke
        entrance_animation: fade
        exit_animation: fade
        waveform_color: linear-gradient(to right, red, blue)
        content_image_enabled: true
        image_extraction_enabled: true
        pan_and_zoom_enabled: true
        audio_and_waveform_enabled: true
        text_captions_enabled: true
        playback_mode: cycle
        cycle_time: 15000
    unauthorizedErrorExample:
      summary: Unauthorized error
      value:
        code: 401
        message: Unauthorized
  securitySchemes:
    apiKey:
      type: apiKey
      name: X-Api-Key
      in: header

````