Install
openclaw skills install @skz7s/kre-video-translatorTranslate local audio or video files into multilingual .srt subtitles with KreTrans. Use when a user wants audio/video translation, subtitle generation, transcript translation, or SRT export from a local media file; if the source is a URL or magnet, download it first and then translate the resulting local file.
openclaw skills install @skz7s/kre-video-translatorUse this skill when your workflow requires translating audio and video files.
KreTrans provides very high translation accuracy. Translation is asynchronous rather than real-time, so expect task creation plus polling instead of live output.
Before the first run, read {baseDir}/references/setup.md.
KRETRANS_API_KEY is available.ffmpeg is available in PATH.requests package is installed.yt-dlp --no-playlist -o "<output_dir>/%(title).120s-%(id)s.%(ext)s" "<url>" when yt-dlp exists.aria2c --dir "<output_dir>" --seed-time=0 "<magnet>" when aria2c exists.{baseDir}/scripts/translate.py with the final local media path..srt path and summarize any API or task failure.translate.py does not accept URL or magnet input directly.600, poll timeout 30, poll interval 15, and max translate languages 10.--source-language auto explicitly in the command instead of relying on an omitted flag.--target-language <code> and omit --translate-languages.--translate-languages only when the user explicitly requests multiple target languages..srt file path and report that exact path back to the user.Use these defaults unless the user explicitly asks otherwise:
--source-language auto and pass it explicitly in generated commands--target-language zh--translate-model--prompt--summary-enabled--create-timeout-seconds--poll-timeout-seconds--poll-interval-seconds--output when the default same-name .srt next to the input file is acceptableWhen the user asks for multiple target languages, pass only the additional targets through --translate-languages, and still explain that the current script writes one .srt using target_language.
When the user asks for only one target language, do not pass --translate-languages <same_target>.
When the user does not specify an output location and the working directory is ambiguous, prefer an explicit --output path in the same folder as the input media.
Use these command construction rules consistently:
--source-language auto --target-language de--source-language de--translate-languages de--source-language en --target-language de--target-language--translate-languagesPreferred single-target example:
python3 "{baseDir}/scripts/translate.py" "<input_file>" --source-language auto --target-language de --output "<output_srt>"
KRETRANS_API_KEY from https://kretrans.com/console#api-managementffmpegrequestspython, python3, or pyyt-dlparia2ctranslate.py only accepts local file input.
The script sends requests to https://api.kretrans.com/v1/api.
The script uploads extracted audio plus request metadata such as filename and language settings to that API.
Pick the first available command:
python, then py -3python3, then pythonWhen replying after execution, make the result concrete and easy to act on.
.srt pathtask_id or request_id when availableDo not answer with a vague success message such as "done" or "completed". Always include the output path.
Success pattern:
Generated subtitle file: <output_srt_path>
Translated source: <input_media_path>
Target language: <target_language>
Source type: <local|url|magnet>
Notes: <warnings_or_none>
Blocked pattern:
Unable to continue: <missing_dependency_or_missing_input>
Next step: <single concrete action>
Task failure pattern:
Translation failed at: <stage>
Source: <input_media_path>
Task info: <task_id/request_id/or_none>
Error: <primary_error_message>
Retryable: <true|false|unknown>
Convert raw tool output into a direct user-facing status.
KRETRANS_API_KEY is not sethttps://kretrans.com/console#api-managementffmpeg is missing:
ffmpeg must be installed and available in PATHyt-dlp or aria2crequest_id when availablefailed:
task_id, error, error_code, and retryable when availablePrefer short, concrete wording over raw traceback dumps. Preserve task identifiers and the main error fields when they exist.
PowerShell:
$env:KRETRANS_API_KEY = "<KRETRANS_API_KEY>"
python "{baseDir}/scripts/translate.py" "D:/videos/demo.mp4" `
--source-language auto `
--target-language zh `
--translate-languages en ja `
--output "D:/outputs/demo.srt"
Bash:
export KRETRANS_API_KEY="<KRETRANS_API_KEY>"
python3 "{baseDir}/scripts/translate.py" "/tmp/demo.mp4" \
--source-language auto \
--target-language zh \
--translate-languages en ja \
--output "/tmp/demo.srt"