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

# Create subtitle / watermark removal

> Create an async desub / watermark-removal task.

**Path:** `POST https://api.omniall.ai/v1/video/generations` (also `POST /v1/videos`)

- Auto subtitle removal: omit `videoName`
- Region subtitle / watermark: set `videoName` to `x1_y1_x2_y2` (true video pixels)

Poll every 5–10s. On success download `result_url` / `video_url` promptly.

Billing: per second via `duration` / `seconds` (range 1–600). If omitted, billed as **10** seconds.

Auth: `Authorization: Bearer sk-...`




## OpenAPI

````yaml openapi/video-desub.yaml POST /v1/video/generations
openapi: 3.1.0
info:
  title: Omniall AI — Subtitle / watermark removal
  version: 1.0.0
  description: >
    OmniAll subtitle / watermark removal (hard-burned on-screen text or fixed
    logos).


    **Create:** `POST https://api.omniall.ai/v1/video/generations` (also `POST
    /v1/videos`)


    **Fetch:** `GET /v1/video/generations/{task_id}`


    Model: `omniall-desub-1`.


    Modes: omit `videoName` for auto subtitle removal; pass `videoName` as
    `x1_y1_x2_y2` for a fixed region (subtitle bar or watermark).


    Auth: `Authorization: Bearer sk-...`
servers:
  - url: https://api.omniall.ai
security: []
paths:
  /v1/video/generations:
    post:
      tags:
        - Platform
      summary: Create subtitle / watermark removal
      description: >
        Create an async desub / watermark-removal task.


        **Path:** `POST https://api.omniall.ai/v1/video/generations` (also `POST
        /v1/videos`)


        - Auto subtitle removal: omit `videoName`

        - Region subtitle / watermark: set `videoName` to `x1_y1_x2_y2` (true
        video pixels)


        Poll every 5–10s. On success download `result_url` / `video_url`
        promptly.


        Billing: per second via `duration` / `seconds` (range 1–600). If
        omitted, billed as **10** seconds.


        Auth: `Authorization: Bearer sk-...`
      operationId: videoDesubCreate
      parameters:
        - name: Authorization
          in: header
          required: true
          schema:
            type: string
            example: Bearer sk-...
          description: Bearer API key.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - model
                - prompt
                - video_url
              properties:
                model:
                  type: string
                  description: Must be `omniall-desub-1`.
                  example: omniall-desub-1
                prompt:
                  type: string
                  description: Required; e.g. `remove subtitles` / `remove watermark`.
                  example: remove subtitles
                video_url:
                  type: string
                  format: uri
                  description: |
                    Public http/https direct link to the source video.
                    Aliases: `url` / `videos[0]`.
                  example: https://cdn.example.com/input.mp4
                duration:
                  type: number
                  description: >
                    Video length in seconds (ceil). Strongly recommended. Billed
                    per second.

                    Range **1–600**. Default billing **10** if omitted.
                  minimum: 1
                  maximum: 600
                  example: 16
                seconds:
                  oneOf:
                    - type: number
                    - type: string
                  description: Equivalent to `duration`.
                  example: 16
                videoName:
                  type: string
                  description: >
                    Region box `x1_y1_x2_y2` in **true video pixels**.

                    `(x1,y1)` top-left, `(x2,y2)` bottom-right; require `x2 >
                    x1`, `y2 > y1`.

                    Omit for auto subtitle removal. One region per request.
                  example: 0_600_1280_700
                resolution:
                  type: string
                  description: |
                    Optional pixel size `widthxheight` (e.g. `1920x1080`).
                    Can be omitted; the service may read it from the source.
                  example: 1920x1080
            examples:
              desub_auto:
                summary: Auto subtitle removal
                value:
                  model: omniall-desub-1
                  prompt: remove subtitles
                  video_url: https://cdn.example.com/input.mp4
                  duration: 16
              desub_region:
                summary: Region subtitle removal
                value:
                  model: omniall-desub-1
                  prompt: remove subtitles
                  video_url: https://cdn.example.com/input.mp4
                  duration: 16
                  videoName: 0_600_1280_700
              desub_watermark:
                summary: Watermark removal
                value:
                  model: omniall-desub-1
                  prompt: remove watermark
                  video_url: https://cdn.example.com/input.mp4
                  duration: 30
                  videoName: 1500_20_1900_150
      responses:
        '200':
          description: Accepted
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    example: task_xxx
                  task_id:
                    type: string
                    example: task_xxx
                  status:
                    type: string
                    example: processing
                  model:
                    type: string
                    example: omniall-desub-1
                  created_at:
                    type: integer
              example:
                id: task_xxx
                task_id: task_xxx
                status: processing
                model: omniall-desub-1
        '400':
          description: >-
            Invalid request (missing video_url / prompt, invalid videoName,
            etc.)
        '401':
          description: Unauthorized

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.