Manual Video Watermark Removal offers precise, controllable removal of watermarks from videos. Users should provide a valid video URL and a mask image that indicates the watermark regions: use a black background with white areas where the watermark exists. The mask image resolution must exactly match the video's resolution (width × height). The system removes only the marked regions while preserving surrounding content, enabling accurate results for complex or persistent watermarks.
- Before using the API, make sure you have obtained the API key. Refer to the link below for instructions on how to obtain it. API For API Key Settings
- All uploaded and processed videos will be automatically deleted after 24 hours. Please make sure to save the videos you need to your local storage in a timely manner
- API Name:Manual Video Watermark Remover Create Job
- Request URL:
POST /api/unwatermark/api/v1/ai-manual-remove-video/create-job - Request Method:POST
- API Description:Submit a valid video URL and a corresponding mask image (black background with white areas marking watermark regions). The system strictly processes only the masked areas, creates a video unwatermarking job, and on success returns the job ID
job_id, the mask image URL mask_url, the original video URL origin_url, and the credits deducted deduct_credits.
| Header Name | Required | Example Value | Description |
|---|
| Content-Type | true | multipart/form-data | Specify request body format |
| ZF-API-KEY | true | xxxxxx...xxxxxx | User Authentication Token |
| Parameter Name | Type | Required | Description |
|---|
| original_video_url | string | true | Original video URL (HTTP/HTTPS). Constraints: size ≤ 100MB, resolution ≤ 1080p, duration ≤ 5 minutes, frame rate ≤ 30 fps. |
| mask_url | string | true | Mask image (black background, white watermark area). The mask image resolution must exactly match the video's resolution (width × height). |
curl -X POST https://api.unwatermark.ai/api/unwatermark/api/v1/ai-manual-remove-video/create-job \
-H "ZF-API-KEY: xxxxxx...xxxxxx" \
-H "Content-Type: multipart/form-data;" \
-F "original_video_url=https://cdn.example.com/path/to/video.mp4" \
-F "mask_url=https://xxxx/mask.png"
{
"code": 100000,
"result": {
"job_id": "xxxx",
"mask_url": "xxxxx.jpg",
"origin_url": "https://xxx.mp4",
"deduct_credits": 10
},
"message": {
"en": "Request Success",
"zh": "提交任务成功"
}
}
{
"code": 400000,
"result": {
"job_id": "xxx-xxx-xxx",
"deduct_credits": 10,
},
"message": {
"en": "Request Failure",
"zh": "请求失败"
}
}
- API Name:Get Manual Video Unwatermark Job Result
- Request URL:
GET /api/unwatermark/api/v1/ai-manual-remove-video/get-job/{job_id} - Request Method:GET
- API Description:Use the
job_id returned by the create-job API to query the job execution status and, when finished, obtain the processed video URL.
| Header Name | Required | Example Value | Description |
|---|
| ZF-API-KEY | true | xxxxxx...xxxxxx | User Authentication Token |
| Parameter Name | Type | Required | Description |
|---|
| job_id | string | true | Job ID from create |
curl -X GET "https://api.unwatermark.ai/api/unwatermark/api/v1/ai-manual-remove-video/get-job/{job_id}" \
-H "ZF-API-KEY: xxxxxx...xxxxxx"
{
"code": 300010,
"result": {
"input_url": "https://xxx.mp4"
},
"message": {
"en": "Video generation in progress.",
"zh": "视频生成中。",
"id": "Penciptaan video sedang berlangsung."
}
}
{
"code": 100000,
"result": {
"output_url": [
"https://xxx.mp4"
],
"input_url": "https://xxx.mp4",
},
"message": {
"en": "Video generated success.",
"zh": "视频处理成功。",
"id": "Generasi video berhasil"
}
}
{
"code": 300011,
"result": {
"input_url": "https://xxxxx.mp4"
},
"message": {
"en": "Video generated failed.",
"zh": "视频生成失败。",
"id": "Generasi video gagal."
}
}