# Create subtitle erase task

Erase hard-coded subtitles from a video you previously generated via
XRToken. Async.

**Completion notification — pick one**:
- Set `callback_url` → XRToken POSTs you on terminal state, no polling
- Or poll `GET /v1/videos/erase-subtitle/{taskId}` yourself

**Input constraint**: only works for videos generated through XRToken,
and only within 23 hours of generation. Pass the `video_task_id` —
XRToken handles the rest.

**Processing time**: typically under 20–30 minutes when queues are
idle; may stretch to 2–3 hours under peak load. Use `callback_url`
to avoid long-polling.

**Subtitles that WILL be erased**:
- Vertical position: horizontal subtitles in the **bottom 50%** of the frame
- Font size: character height between **1% and 10%** of the video height
- Language: Chinese or English

**Subtitles that WON'T be erased**:
- Text in the **top 50%** of the frame
- Text that is too small (< 1% height) or too large (> 10% height)
- Languages other than Chinese / English, or unrecognized scripts

**May be incorrectly erased**: scene text that sits in the bottom
half and meets the size thresholds (banners, signage) is treated
as subtitles and gets erased. Control such text at generation time
if possible.

**Billing**: per video second; currently free during rollout. Each
call still writes a zero-amount freeze/settle pair to the ledger so
billing history reflects every call. The erased clip is automatically
inserted into the gallery alongside the original.

## POST /v1/videos/erase-subtitle

> Create subtitle erase task

Erase hard-coded subtitles from a video you previously generated via
XRToken. Async.

**Completion notification — pick one**:
- Set `callback_url` → XRToken POSTs you on terminal state, no polling
- Or poll `GET /v1/videos/erase-subtitle/{taskId}` yourself

**Input constraint**: only works for videos generated through XRToken,
and only within 23 hours of generation. Pass the `video_task_id` —
XRToken handles the rest.

**Processing time**: typically under 20–30 minutes when queues are
idle; may stretch to 2–3 hours under peak load. Use `callback_url`
to avoid long-polling.

**Subtitles that WILL be erased**:
- Vertical position: horizontal subtitles in the **bottom 50%** of the frame
- Font size: character height between **1% and 10%** of the video height
- Language: Chinese or English

**Subtitles that WON'T be erased**:
- Text in the **top 50%** of the frame
- Text that is too small (< 1% height) or too large (> 10% height)
- Languages other than Chinese / English, or unrecognized scripts

**May be incorrectly erased**: scene text that sits in the bottom
half and meets the size thresholds (banners, signage) is treated
as subtitles and gets erased. Control such text at generation time
if possible.

**Billing**: per video second; currently free during rollout. Each
call still writes a zero-amount freeze/settle pair to the ledger so
billing history reflects every call. The erased clip is automatically
inserted into the gallery alongside the original.

### Authentication

`Authorization: Bearer tr-xxx`

### Request Body

Content-Type: `application/json`

- **video_task_id** `string` **(required)**  
  Video generation task ID — the `id` field returned by
- **callback_url** `string`  
  Optional. When the task reaches a terminal state (succeeded or

### Response

- **id** `string` **(required)**  
  Subtitle-erase task ID (use to poll status)
- **upstream_id** `string`  
  Upstream Volcengine task ID
- **status** ``processing`` **(required)**  
  
- **created_at** `string` **(required)**  
  

### Error Codes

- `400`: 
- `401`: 
- `402`: 
- `429`: 
- `502`:
