豆荚水印去除

Veo / Gemini 视频水印
精确去除

基于反向 alpha 混合的数学还原,不是生成式修补 —— 不猜测像素、不损失画质。 提供 HTTP API 与控制台,按视频时长计费。

定价

¥0.01/ 秒

按视频时长计费,不足 1 秒按 1 秒计

  • 10 秒短视频¥0.10
  • 30 秒视频¥0.30
  • 1 分钟视频¥0.60
  • 5 分钟视频¥3.00

新用户注册即赠 1 元 体验金额。余额通过微信扫码充值,实时到账。 任务失败或处理超时(10 分钟)会 全额退回 已扣金额。

对接文档

接口基地址 https://water-removal.bo.run/api,请求与响应均为 JSON(UTF-8)。

1. 鉴权

控制台 的「API Key」页面创建密钥(形如 wr_live_…), 每个请求都要带上。明文只在创建时显示一次,请妥善保存。

Authorization: Bearer wr_live_xxxxxxxxxxxx

也支持用 X-API-Key: wr_live_… 请求头传递。

2. 提交去水印任务

POST /api/v1/watermark/remove

参数类型必填说明
typestring水印类型,目前仅支持 gemini(默认值)
sourceUrlstring待处理视频的公开可下载地址(http/https),最长 5 分钟
curl -X POST https://water-removal.bo.run/api/v1/watermark/remove \
  -H "Authorization: Bearer $WR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "gemini",
    "sourceUrl": "https://example.com/video.mp4"
  }'

成功返回 202 Accepted,费用在此刻已从余额预扣:

{
  "taskId": "task_9f2c1a7b3e5d4c8a0b1e2f3a",
  "status": "queued",
  "type": "gemini",
  "durationSeconds": 32.5,
  "chargedYuan": "0.33",
  "createdAt": "2026-07-28T10:20:30+08:00"
}

3. 查询任务

GET /api/v1/watermark/task/{taskId}

curl https://water-removal.bo.run/api/v1/watermark/task/task_9f2c1a7b3e5d4c8a0b1e2f3a \
  -H "Authorization: Bearer $WR_API_KEY"

status 有四种取值:

status含义
queued排队中,等待算力
processing处理中
done已完成,resultUrl 为结果视频地址
failed失败或超时,费用已全额退回

处理完成时:

{
  "taskId": "task_9f2c1a7b3e5d4c8a0b1e2f3a",
  "status": "done",
  "durationSeconds": 32.5,
  "chargedYuan": "0.33",
  "resultUrl": "https://w-r-static.oss-cn-hangzhou.aliyuncs.com/video/…",
  "createdAt": "2026-07-28T10:20:30+08:00",
  "finishedAt": "2026-07-28T10:21:14+08:00"
}

结果链接有效期 24 小时,过期后自动清理,请及时下载转存。

失败时:

{
  "taskId": "task_9f2c1a7b3e5d4c8a0b1e2f3a",
  "status": "failed",
  "errorCode": "no_watermark_detected",
  "errorMessage": "未检测到 Gemini / Veo 水印,请确认视频来源;本次不计费",
  "refunded": true,
  "chargedYuan": "0.33"
}

4. 查询余额

GET /api/v1/account/balance

{ "balanceMicro": 985000, "frozenMicro": 330000 }

金额单位是「微元」:1 元 = 1 000 000 微元。这样按秒计费的小数金额不会有浮点误差。 frozenMicro 是进行中任务的预扣金额,任务失败会退回可用余额。

5. 建议的轮询方式

提交后每 3–5 秒查询一次即可。单个用户的调用频率上限是 60 次 / 分钟, 超出会返回 429 并带 Retry-After 响应头。

import time, requests

BASE = "https://water-removal.bo.run/api/v1"
H = {"Authorization": f"Bearer {API_KEY}"}

task = requests.post(f"{BASE}/watermark/remove", headers=H, json={
    "type": "gemini",
    "sourceUrl": "https://example.com/video.mp4",
}).json()

while True:
    r = requests.get(f"{BASE}/watermark/task/{task['taskId']}", headers=H).json()
    if r["status"] == "done":
        print("下载地址:", r["resultUrl"])
        break
    if r["status"] == "failed":
        print("处理失败:", r["errorMessage"], "(费用已退回)")
        break
    time.sleep(5)

6. 错误码

出错时返回对应的 HTTP 状态码,响应体格式统一:

{ "error": { "code": "insufficient_funds", "message": "余额不足,请先充值" } }
HTTPcode说明
400invalid_request参数有误,或视频地址无法读取
401unauthorizedAPI Key 缺失或无效
402insufficient_funds余额不足,请先充值
404not_found任务不存在
429rate_limited超过 60 次/分钟的频率上限
500internal_error服务端异常,请稍后重试

任务失败时的 errorCode

errorCode说明
no_watermark_detected视频里没找到 Gemini / Veo 水印
process_failed处理过程出错
timeout超过 10 分钟未完成
dispatch_failed算力调度失败

以上情况均会 全额退回 已扣金额,refunded 字段为 true

7. 使用限制