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

# edit clips

> Change a set of clips together: the shape they are cut at, the caption look they wear (or none), punches from the words (or none), the crop following the subject, the platforms they are for, the look of their hooks, and bleeping. Anything particular to one clip (a graphic at a moment, B-roll over a line, a trim) is that clip's own edit_timeline. A clip that cannot take the change is named and the rest still change. Free, except captioning clips without stored words and reading a subject for the crop: cloud processing.



## OpenAPI

````yaml /openapi.json post /tools/edit_clips
openapi: 3.1.0
info:
  title: Eversince API
  version: '1'
  description: >-
    Every Eversince tool as one POST call, plus the routes beside them: the tool
    list, account and keys, uploads, webhooks and models. The prose is at
    https://docs.eversince.ai.
servers:
  - url: https://eversince.ai/api/v1
security:
  - bearer: []
tags:
  - name: Discovery
    description: The tool list, the same on the MCP server, the REST API and the CLI.
  - name: Workspace
    description: Jobs, balances, settings, templates, skills and the overview.
  - name: Library
    description: >-
      Items, search, import, reading media, comments, boards, calendars, the
      brand kit and public links.
  - name: Timeline
    description: 'Video editing: timelines, clips, captions, sound, language and rendering.'
  - name: Canvas
    description: 'Still editing: canvases, slides, layers and rendering.'
  - name: Generation
    description: Image, video and audio generation, upscaling, cutouts and models.
  - name: Research
    description: 'What platforms publish: pulling and keeping posts.'
  - name: Account
    description: Balances, keys, workspaces and script sessions.
  - name: Uploads
    description: Files into the library by presigned upload or by URL.
  - name: Webhooks
    description: Job results posted to a URL as they complete.
  - name: Models
    description: Generation models and cost estimates.
paths:
  /tools/edit_clips:
    post:
      tags:
        - Timeline
      summary: edit clips
      description: >-
        Change a set of clips together: the shape they are cut at, the caption
        look they wear (or none), punches from the words (or none), the crop
        following the subject, the platforms they are for, the look of their
        hooks, and bleeping. Anything particular to one clip (a graphic at a
        moment, B-roll over a line, a trim) is that clip's own edit_timeline. A
        clip that cannot take the change is named and the rest still change.
        Free, except captioning clips without stored words and reading a subject
        for the crop: cloud processing.
      operationId: edit_clips
      parameters:
        - $ref: '#/components/parameters/IdempotencyKey'
        - $ref: '#/components/parameters/WorkspaceId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                clips:
                  minItems: 1
                  maxItems: 50
                  type: array
                  items:
                    type: string
                  description: The clips to change, by timeline id.
                aspect:
                  description: The shape every one of them takes.
                  type: string
                  enum:
                    - '16:9'
                    - '9:16'
                    - '21:9'
                    - '9:21'
                    - '1:1'
                    - '4:3'
                    - '3:4'
                    - '3:2'
                    - '2:3'
                    - '5:4'
                    - '4:5'
                captions:
                  description: >-
                    A caption look every clip wears (a template saved for the
                    workspace, or a built-in one), or false to take the captions
                    off.
                  anyOf:
                    - type: string
                    - type: boolean
                      const: false
                emphasis:
                  description: The words this set is about, lit and marked.
                  type: object
                  properties:
                    words:
                      description: >-
                        The words drawn in the emphasis color wherever they are
                        spoken. Matched whole and case-insensitively.
                      maxItems: 30
                      type: array
                      items:
                        type: string
                    color:
                      description: >-
                        What those words are drawn in. Absent takes the look's
                        own accent.
                      type: string
                    emoji:
                      description: >-
                        An emoji written into the line after a word, as
                        {"launch":"🚀"}. Use sparingly: one or two across a
                        clip.
                      type: object
                      propertyNames:
                        type: string
                      additionalProperties:
                        type: string
                zoom:
                  description: >-
                    Punch in on the words, as auto_zoom does, or false to take
                    the punches off.
                  anyOf:
                    - type: string
                      enum:
                        - light
                        - medium
                        - strong
                    - type: boolean
                      const: false
                reframe:
                  description: >-
                    Move each crop to follow the subject; "speaker" follows
                    whoever is talking where two people share the frame, on a
                    recording the voices have been told apart in (speakers).
                  anyOf:
                    - type: boolean
                    - type: string
                      const: speaker
                platforms:
                  description: >-
                    Where these cuts are meant to go, as cut_clips names them.
                    Drawn as marks under each tile; the shape does not change,
                    give aspect for that.
                  maxItems: 6
                  type: array
                  items:
                    type: string
                hook_style:
                  description: >-
                    A new look for every hook in these clips; only the fields
                    given change: font_family, font_size (px at the clip's
                    resolution), font_weight (100 to 900), color,
                    background_color (null for none), background_opacity,
                    background_padding, background_radius, position (top-left to
                    bottom-right), offset_y, text_transform
                    (none|uppercase|lowercase|capitalize), animation
                    (none|fade|slide|pop), stroke_color, stroke_width, seconds
                    (0.5 to 15).
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties: {}
                bleep:
                  description: >-
                    Bleep swearing: the sound covered where it is said and the
                    word starred in the captions. true takes the usual list.
                  anyOf:
                    - type: boolean
                      const: true
                    - type: object
                      properties:
                        words:
                          description: >-
                            Words to bleep beyond the usual swearing and slurs,
                            matched whole.
                          maxItems: 50
                          type: array
                          items:
                            type: string
                        only_these:
                          description: Bleep only the words given.
                          type: boolean
                        with:
                          description: A tone over each word, or silence. Absent is a tone.
                          type: string
                          enum:
                            - tone
                            - silence
                context:
                  description: 'Optional: one sentence shown to the user beside this action.'
                  type: string
                  maxLength: 600
              required:
                - clips
      responses:
        '200':
          description: >-
            Done, or a job started for work that runs longer (follow it with
            get_jobs).
          content:
            application/json:
              schema:
                type: object
                required:
                  - ok
                  - data
                  - meta
                properties:
                  ok:
                    const: true
                  data:
                    type: object
                    additionalProperties: true
                  meta:
                    type: object
                    properties:
                      request_id:
                        type: string
                      cost:
                        $ref: '#/components/schemas/Cost'
                      cloud_processing:
                        $ref: '#/components/schemas/CloudProcessing'
                  media:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
        default:
          $ref: '#/components/responses/Error'
components:
  parameters:
    IdempotencyKey:
      name: Idempotency-Key
      in: header
      required: false
      schema:
        type: string
      description: >-
        Retry a paid dispatch safely: the same key returns the job already
        dispatched instead of charging again.
    WorkspaceId:
      name: x-workspace-id
      in: header
      required: false
      schema:
        type: string
      description: The workspace this one call acts in, when it is not the key's own.
  schemas:
    Cost:
      type: object
      description: AI credits the call cost.
      additionalProperties: true
    CloudProcessing:
      type: object
      description: Cloud processing the call used, and what is left.
      properties:
        ran_on:
          const: cloud
        minutes:
          type: number
        queued_minutes:
          type: number
        left_minutes:
          type: number
        bought_minutes:
          type: number
        note:
          type: string
    Error:
      type: object
      required:
        - ok
        - error
      properties:
        ok:
          const: false
        error:
          type: object
          required:
            - code
            - message
            - retryable
          properties:
            code:
              type: string
            message:
              type: string
              description: What went wrong, in words to act on.
            retryable:
              type: boolean
            suggested_action:
              type: string
              description: The next step that works.
            cloud_processing:
              $ref: '#/components/schemas/CloudProcessing'
  responses:
    Error:
      description: The call was refused or failed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: >-
        An API key (es_live_…) from Settings, under API keys, or an OAuth access
        token.

````