GhostCut Skill for AI Agents

Install the Skill first, then let your Agent follow the official docs to integrate video translation, subtitle removal, dubbing, and image translation.

Send the prompt below to your Agent to add the Skills.

Visit https://github.com/zhaoli-ai/GhostCut-ai/blob/main/skills.md and follow the instructions to install GhostCut Skill for me.
Video AI Video Inpainting

Subtitles / text / logos

Dubbing Translation & Dubbing

Multilingual translation / AI voices

Subtitle Subtitle Processing

OCR / ASR / SRT burn-in

Image AI Image AI

Image translation / text removal

Why GhostCut

Why Choose GhostCut

Full localization workflow

Cover the complete workflow from import, translation, proofreading, removal, dubbing and burn-in to final video download. It supports both fast API + website collaboration and full API automation.

70%

Used by leading short drama globalization customers and service providers

Covers leading short drama globalization customers as well as AI short drama production and delivery teams.

200K

Nearly 200K live-action and AI short drama episodes localized per day

More than 2,000 titles flow through daily production, suitable for batch task queues.

10x

One-click translation and dubbing helps customers improve overall localization efficiency by 10x

Turn translation, dubbing, subtitle removal, and final video retrieval into reusable production actions.

Workflow

Turn localization into
orchestratable production steps

Create project Upload media Subtitle Translation Human review Subtitle Removal AI dubbing Download final video

Customer Paths

Who is GhostCut API for?

Choose integration depth by business model: companies can call standalone capabilities, globalization teams can combine localization workflows, and Agents can orchestrate GhostCut as a tool.

01 · Independent API

Ecommerce / Content Platforms

Integrate image translation, image text removal, video text removal, subtitle generation, and other standalone capabilities into your existing backend.

  • Batch process product images, detail pages, and marketing assets
  • Turn text removal and subtitle processing into internal production tools
  • Use callback and polling to connect existing task queues
03 · Agent Native

Agent / Automation Platforms

Let Codex, Cursor, Claude Code, or internal bots read the Skill first, then submit tasks, query status, and handle callbacks according to the docs.

  • The Skill constrains authentication, signing, endpoints, and task queries
  • Inject credentials through environment variables or a secrets manager
  • Turn video processing into orchestratable tool actions

Localization Workflow

Localization Workflow for Global Distribution

This section explains how a short drama moves from the source video to a localized final video. You can connect only the front-end and back-end workflow to the API while keeping detailed refinement on the website, or integrate translation, proofreading, removal, dubbing, and final video download fully through the API.

Choose Mode

Choose an integration mode

These two modes are not sequential steps; they represent different integration depths.

API + Web

API + Website Collaboration Mode

Best for teams that want a fast integration. Use the API first for the most time-consuming and standardized steps: project creation, video upload, subtitle upload, subtitle translation, and final video download. Keep complex interactions such as subtitle proofreading, subtitle removal, and AI dubbing on the GhostCut website.

Full API

Full API Mode

Best for teams with an internal system or automation platform. Source video upload, subtitle processing, proofreading, removal, dubbing, burn-in, task status, and result retrieval are all handled through the API.

Run Workflow

Review the processing steps

Whichever integration mode you choose, a short drama usually goes through these stages.

01

Import media

Create a project through the API, upload the video and any existing subtitles. If there are no subtitles, continue with recognition or translation later.

02

Subtitle Translation

Translate Chinese subtitles into the target language. When human review is needed, proofread on the website; when systematic processing is required, continue through the API.

03

Process visuals and audio

Remove original subtitles based on the source video, burn in new subtitles, and choose whether to use AI dubbing, voice cloning, or keep the background audio.

04

Get the final video

After the task is complete, get status through callback or polling, download the final video, and send it back to your content library, ad system, or publishing workflow.

Minimum Call Shape

Minimum Call Shape

After installing the Skill, the minimum call is not an isolated curl command, but a repeatable loop: credentials -> payload -> signed POST -> work ID -> status query.

import hashlib
import json
import os

import requests

APP_KEY = os.environ["GHOSTCUT_APP_KEY"]
APP_SECRET = os.environ["GHOSTCUT_APP_SECRET"]
BASE_URL = "https://api.zhaoli.com"
VIDEO_URL = "https://example.com/input.mp4"


def post(path, payload):
    body = json.dumps(payload, ensure_ascii=False, separators=(",", ":"))
    body_md5 = hashlib.md5(body.encode("utf-8")).hexdigest()
    app_sign = hashlib.md5((body_md5 + APP_SECRET).encode("utf-8")).hexdigest()

    response = requests.post(
        BASE_URL + path,
        headers={
            "Content-Type": "application/json",
            "AppKey": APP_KEY,
            "AppSign": app_sign,
        },
        data=body.encode("utf-8"),
        timeout=30,
    )
    response.raise_for_status()
    return response.json()


payload = {
    "urls": [VIDEO_URL],
    "needChineseOcclude": 2,
    "videoInpaintLang": "all",
    "extraOptions": json.dumps(
        {"extra_inpaint_config": {"model": "advanced_lite"}},
        separators=(",", ":"),
    ),
    "videoInpaintMasks": json.dumps(
        [{
            "type": "remove_only_ocr",
            "start": 0,
            "end": 99999,
            "region": [[0, 0], [1, 0], [1, 1], [0, 1]],
        }],
        separators=(",", ":"),
    ),
}

result = post("/v-w-c/gateway/ve/work/free", payload)
work_id = result["body"]["dataList"][0]["id"]
print("work_id:", work_id)

status = post("/v-w-c/gateway/ve/work/status", {"idWorks": [work_id]})
print(json.dumps(status, ensure_ascii=False, indent=2))

Replace VIDEO_URL with your own public video URL. Local videos must be uploaded first to obtain an accessible URL. Set AppKey and AppSecret through environment variables before running.

01

The signature and request body must match

The example serializes payload into compact JSON, generates the request header with AppSign = md5(md5(body_str) + AppSecret), and sends the exact same body_str.

02

Task creation only means it entered the queue

After /work/free succeeds, save body.dataList[0].id. Query normal video results with /work/status; processStatus == 1 means processing succeeded.

03

Upload local media first

For local media, request upload credentials first, upload the file to OSS, and use the returned URL in later API calls.

Demo Scenarios

Demos

Below are parameter examples for three high-frequency tasks. The sample code assumes the signed request helper is already wrapped: ghostcutPost(path, payload)

01 · Video AI Advanced text removal / hardcoded subtitle removal
const payload = {
  urls: ["https://gc100.cdn.izhaoli.cn/demo/1691660164246.mp4"],
  needChineseOcclude: 2,
  videoInpaintLang: "all",
  extraOptions: JSON.stringify({
    extra_inpaint_config: { model: "advanced_lite" }
  }),
  videoInpaintMasks: JSON.stringify([{
    type: "remove_only_ocr",
    start: 0,
    end: 99999,
    region: [[0, 0], [1, 0], [1, 1], [0, 1]]
  }])
};

const task = await ghostcutPost("/v-w-c/gateway/ve/work/free", payload);
const workId = task.body.dataList[0].id;

Integration Path

Integration

From credentials to processed results, GhostCut API integration is split into four steps: prepare access, install the Skill, submit the first task, and receive or query results.

01

Get API credentials

After logging in to GhostCut, open User Center, create API access under "My Account", and get the AppKey and AppSecret for request signing.

02

Install the integration Skill

Agents should read skills.md and install ghostcut-skill first. Developers can run npx skills add zhaoli-ai/GhostCut-ai.

03

Run the first task

Use the minimum call example to submit a video text removal task and verify the AppSign signature, task creation, and status query flow.

04

Get processing results

In production, pass callback when creating the task and keep polling as a fallback. Query video results with /work/status and image tasks with /image/translate/query.

Billing

Billing and Quotas

API billing follows the same rules as the GhostCut website. You can first run tests with your website account, then choose the right package based on task volume, concurrency, and delivery schedule.

Same Account Billing API and website tasks share membership, credits, and quotas

Under the same account, API-submitted tasks and website-created tasks are billed by the same rules. Before batch launch, confirm account balance, expected task volume, concurrency needs, and delivery schedule.

View membership and pricing

Production Rules

Production

Video limits Video duration and size

Current media duration is limited to 15 minutes, and each file must be under 1000MB. Split longer videos first and compress oversized files.

Media URL Media must be publicly accessible

Video, image, and SRT URLs must not depend on login state, intranet access, or local paths, and URLs should not contain Chinese characters.

Image limits Image limits

Images must be no larger than 2000 * 2000 px and 50MB. Supported formats: png, jpeg, jpg, bmp, webp. Upload local images first.

Callbacks Callbacks and idempotency

Verify Callback-Sign, deduplicate by work ID or task ID, and return HTTP 200 with a non-empty body after persisting or enqueueing the event.

Retry Retries and compensation

Failed callbacks are retried roughly every 30 minutes within 24 hours. Even when using callback, keep compensation polling.

For AI Coding Tools

For AI Coding Tools

Give Codex, Cursor, Claude Code, internal bots, or automated Agents the installation entry, minimum loop, auth signing, async callback, and machine-readable index. Credentials should only be provided through environment variables, and real fields are governed by the Skill docs.

FAQ

FAQ

Clarify the most common concepts, access, scenarios, async tasks, media, and billing questions before integration to reduce trial and error for developers and Agents.

How are GhostCut Skill and GhostCut API related?

GhostCut API provides video translation, subtitle removal, dubbing, image translation, and related capabilities. GhostCut Skill is the integration guide read by AI Agents and AI Coding tools so they can install, authenticate, sign requests, and call the API through the official workflow.

How can developers get a GhostCut API Key?

Log in to your GhostCut account, open User Center, create API access under "My Account", and get the AppKey and AppSecret for request signing.

What use cases is GhostCut API suitable for?

It is suitable for short drama globalization, AI short drama localization, ecommerce asset localization, video subtitle removal, image translation, batch dubbing, internal content production systems, and automated Agent workflows.

Does the API support a complete short drama localization workflow?

Yes. You can integrate project creation, media upload, subtitle translation, proofreading, subtitle removal, AI dubbing, final video download, and related steps, or use selected capabilities together with the GhostCut website.

Do tasks return results synchronously or run asynchronously?

Video and image processing usually run as asynchronous tasks. After submitting a task, first get the task or work ID, then retrieve the final result through the status query API or callback. In production, prefer callback and keep polling as a fallback.

Can local video or image file paths be sent directly?

No. Media must be a publicly accessible URL. For local media, request upload credentials first, upload the file to OSS, and then use the returned URL in later API calls.

What should I check first when a call fails?

First check whether AppSign was generated from the exact same request body, whether the media URL is publicly accessible, whether file size and format meet the limits, whether the correct task ID was used, and whether the final status was confirmed through the correct query API.

How is GhostCut API billed?

GhostCut API uses the same billing rules as the GhostCut website. API tasks and website tasks share membership, credits, and quotas under the same account. Before going live, confirm account balance, expected task volume, concurrency needs, and delivery schedule. Packages, quotas, and prices are subject to the billing document.