Developer Docs/Caption Removal API

Caption Removal API

Build Caption Removal integrations with A2E. Review authentication, request parameters, task creation, status, and result endpoints.

Overview

Detect and cleanly remove embedded captions, subtitles, or text overlays from video frames using AI inpainting.

Primary Endpoint

POST/api/v1/userCaptionRemoval/start

Create an asynchronous caption-removal task for the submitted source video and return the record used to monitor processing. ### Request - Send a valid bearer token. The server evaluates the operation in the authenticated caller's access context. - Send an `application/json` body. Required fields: `name`, `source_url`. - API-token callers may include `webhook_url` and `webhook_token` for best-effort terminal-state notifications; ordinary JWT/cookie calls ignore these fields. ### Behavior - This is an asynchronous operation: a successful submission creates a task and returns before processing finishes. - Persist the returned task identifier and use the corresponding detail or list operation to observe progress. - Treat the detail endpoint as the source of truth even when webhook delivery is enabled. ### Response - A `200` response confirms task acceptance; it does not by itself mean media generation has completed. - Retain the returned identifier and wait for a documented terminal status before using output URLs. - JSON object responses, including error responses, normally carry a top-level `trace_id` string for this request; include it when contacting support. It is not a task identifier. - Do not infer undocumented fields or statuses; clients should tolerate additional response properties. ### Errors - `400` — Bad Request - Invalid parameters. - `401` — Unauthorized - Invalid or missing JWT token. ### Related Operations - `GET /api/v1/userCaptionRemoval/allRecords` — Get all task records. - `GET /api/v1/userCaptionRemoval/{_id}` — Get task details. - `DELETE /api/v1/userCaptionRemoval/{_id}` — Delete caption removal task. Authentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).

Request Parameters

NameTypeRequiredDescription
namestringYesName of the caption removal task
source_urlstringYesURL of the source video
webhook_urlstringNoHTTPS URL to receive task.completed / task.failed notifications. Best-effort delivery, single attempt, no retries; clients should treat the detail API as the source of truth.; maxLength: 2048
webhook_tokenstringNoOptional plaintext token returned in the X-A2e-Webhook-Token header so receivers can verify the request originated from a2e.; maxLength: 256
Request schema and conditional rules
{
  "allOf": [
    {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the caption removal task",
          "example": "Remove captions from video"
        },
        "source_url": {
          "type": "string",
          "description": "URL of the source video",
          "example": "https://example.com/video.mp4"
        }
      },
      "required": [
        "name",
        "source_url"
      ]
    },
    {
      "$ref": "#/components/schemas/WebhookInput"
    }
  ]
}

Response Fields

code: integer
data: object
data._id: string
data.name: string
data.duration: number
data.source_url: string
data.current_status: string
data.coins: number
trace_id: string
Trace ID of this HTTP request. Include it when contacting support about this request. It is generated per request and is not a task identifier; use the returned task `_id` to query results.

Request Example

curl -X POST "https://www.a2e.com.cn/api/v1/userCaptionRemoval/start" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Remove captions from video",
  "source_url": "https://example.com/video.mp4"
}'

Related Endpoints

Responses

200

Caption removal task started successfully

400

Bad Request - Invalid parameters

401

Unauthorized - Invalid or missing bearer token

Caption Removal API Documentation