Introduction

Agents commonly handle text translation, but “making this video into an English version” usually isn’t a simple tool call: either manually uploading to a web app, or connecting ffmpeg, ASR, translation, TTS, and timeline alignment yourself.

pinch-eng/dsh-audio-dub is a dubbing plugin for DeepSeek Harness (DSH), encapsulating this process into a server-side task: passing in a local path or direct media URL, and returning a finished dubbing that preserves the original speaker’s voice.

What is this

It is a DSH dubbing plugin maintained by pinch-eng, under the MIT license, package version 0.1.0.

Its core positioning is: translating video or audio into another language while preserving the original speaker’s voice, i.e., AI voice cloning. Transcription, translation, voice cloning, and timing are all completed on the server, and DSH waits for the result.

The plugin provides three tools:

  • dub_media
  • dub_status
  • dub_languages

Supported target languages include:

zh, en, es, fr, de, pt, ru, ja, ko, it

The source language can be auto.

Core Tools

dub_media

Used to submit a dubbing task.

Parameter Type Required Description
source string Yes Local file path, or direct media URL
target_lang string Yes Target language
source_lang string No Source language, default auto
reduce_accent boolean No Optional parameter
wait boolean No Whether to wait for the result, default true
wait_seconds integer No Wait budget, default 600, max 1800

Local files are first uploaded to the presigned upload target in a streaming manner, and then the task is submitted.

Exhausting the wait budget does not mean the task failed. The task will continue on the server, and the returned job_id can be used with dub_status to query the status.

dub_status

Used to query task status.

Parameter Type Required Description
job_id string Yes Job ID returned by dub_media
wait boolean No Whether to wait for completion, default false
wait_seconds integer No Wait budget

dub_languages

No parameters.

This tool performs a local query, does not generate network calls, and does not incur costs.

Installation & Enablement

First install the plugin to a DSH profile. Taking the headless profile as an example:

dsh plugin --profile headless add github:pinch-eng/dsh-audio-dub

Upon installation, the plugin registers itself and does not require manual editing of cordis.yml.

Then set the API key:

export PINCH_API_KEY=pk_xxx

You can try a dubbing task:

dsh --profile headless "dub ./demo.mp4 into English"

Configuration

Below are the plugin configuration items and default values:

Field Type Default Description
apiKey string process.env.PINCH_API_KEY API key
baseUrl string https://portal.startpinch.com Service address
pollIntervalMs integer 15000 Polling interval for status while waiting, minimum 5000

MCP Alternative

If you do not install the plugin, you can also use the hosted MCP server via the official bridge:

- id: mcp-pinch
  name: '@deepseek-ai/dsh-mcp-client'
  config:
    serverName: pinch
    transport: streamable-http
    url: https://portal.startpinch.com/api/mcp
    headers:
      Authorization: !!js `Bearer ${process.env.PINCH_API_KEY}`

The plugin path is more suitable for using “dubbing a local file or direct media link” as a task tool; the MCP path exposes the same service as an MCP server.

Pricing & Limits

Verified service limits are as follows:

  • Price: $0.50 per 1 minute of media
  • Max single file 60 minutes
  • Max single file 2 GB
  • Download link validity 48 hours
  • After a download link expires, you can call dub_status again to get a new link

When the balance is empty, the tool will return insufficient_balance along with a top-up URL.

Security & Runtime Notes

When using this plugin, be aware of the scope of file reading and network access.

  • When source is a local path, the plugin reads that file; otherwise, it does not read other local files.
  • Network access is limited to baseUrl and the returned presigned storage target.
  • The API key is sent to baseUrl as an Authorization header and does not appear in tool results.
  • However, tool parameters are written to the session log, so do not paste the API key into the prompt.
  • The key is only used for dubbing-related endpoints and cannot be used to issue more keys.
  • source only accepts local file paths or direct media URLs; URLs for YouTube, Bilibili, social posts, etc., are not media files and will be rejected.

The plugin runs with the permissions of the current dsh process. It is recommended to check the source code, license, and dependencies before installation.

Runtime dependencies are as follows:

Node: ^22.19.0 || >=24.0.0
peerDependencies:
  @deepseek-ai/cordis ^4.0.1-rc.1
  @deepseek-ai/dsh-tools ^0.0.1-rc.1

Use Cases

This plugin is suitable for the following scenarios:

  • Need to translate local video or audio files into another language
  • Need to preserve the original speaker’s voice
  • Want to complete dubbing with a single tool call in a DSH workflow
  • Source file is a local path or direct media URL
  • Can accept pay-per-media-length billing, and the file does not exceed 60 minutes or 2 GB

If the source is a web link, a social platform link, or requires manual uploading to a web app, this plugin does not scrape page content and does not process non-media URLs.

Links

  • GitHub repository: pinch-eng/dsh-audio-dub
  • Directory page: The specific URL is not provided in verified materials; search for pinch-eng/dsh-audio-dub in the DSH community directory.