MCP / CLI 操作参考
共 111 个操作。CLI 和 MCP 共用以下输入结构。异步操作返回任务 ID,通过 tasks.get / tasks.wait 获取结果;MCP 将结果放在 structuredContent.result。
配置对象中 additionalProperties=true 表示支持应用原有高级字段;服务端仍执行对应业务校验。服务商字段请调用 providers.types 查询。
system.info
Application version, platform, profile, engine runtime paths (e.g. faster-whisper python runtime and binaries), storage topology (userData, storageRoot, temp, logs, models), installed models, hardware environment, providers, and architecture notes.
- CLI:
smartsub system info - MCP:
smartsub_system_info - 属性:读取;直接返回
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
system.capabilities
List all operations and whether they are read-only or asynchronous.
- CLI:
smartsub system capabilities - MCP:
smartsub_system_capabilities - 属性:读取;直接返回
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
system.logs
Read redacted application logs.
- CLI:
smartsub system logs - MCP:
smartsub_system_logs - 属性:读取;直接返回
{
"type": "object",
"properties": {
"projectId": {
"type": "string",
"minLength": 1
},
"date": {
"type": "string",
"minLength": 1
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 500,
"default": 100
},
"types": {
"type": "array",
"items": {
"type": "string",
"enum": ["info", "warning", "error"]
},
"maxItems": 3,
"description": "Filter by log level. Use [\"error\", \"warning\"] to diagnose failures quickly."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
system.languages
Supported language codes.
- CLI:
smartsub system languages - MCP:
smartsub_system_languages - 属性:读取;直接返回
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
system.sample
Absolute path of the bundled sample audio.
- CLI:
smartsub system sample - MCP:
smartsub_system_sample - 属性:读取;直接返回
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
tasks.list
List recent desktop and automation jobs.
- CLI:
smartsub tasks list - MCP:
smartsub_tasks_list - 属性:读取;直接返回
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
tasks.get
Get status, progress, error, result and output paths. Poll until a terminal status.
- CLI:
smartsub tasks get - MCP:
smartsub_tasks_get - 属性:读取;直接返回
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": ["id"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
tasks.wait
Wait up to 25 seconds for a terminal or review state. Timeout never cancels a job.
- CLI:
smartsub tasks wait - MCP:
smartsub_tasks_wait - 属性:读取;直接返回
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"timeoutMs": {
"type": "integer",
"minimum": 0,
"maximum": 25000,
"default": 25000
}
},
"required": ["id"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
tasks.cancel
Cancel only the specified job and its active child process.
- CLI:
smartsub tasks cancel - MCP:
smartsub_tasks_cancel - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": ["id"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
tasks.pause
Pause dispatch of additional files in a pipeline; active files may finish.
- CLI:
smartsub tasks pause - MCP:
smartsub_tasks_pause - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": ["id"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
tasks.resume
Resume a paused pipeline.
- CLI:
smartsub tasks resume - MCP:
smartsub_tasks_resume - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": ["id"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
tasks.retry
Retry interrupted or failed pipeline files using the saved execution settings.
- CLI:
smartsub tasks retry - MCP:
smartsub_tasks_retry - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"requestId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Reuse only to retry the same submission without running it twice."
}
},
"required": ["id"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
tasks.delete
Delete a completed task record; does not delete input media.
- CLI:
smartsub tasks delete - MCP:
smartsub_tasks_delete - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": ["id"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
transcribe
Generate original-language subtitles using an installed local ASR engine or configured cloud ASR provider. AI segmentation/correction is opt-in and requires config.refineProvider. Inspect settings.get, engines.list, models.list and providers.list before selecting resources. Returns a job ID.
- CLI:
smartsub transcribe - MCP:
smartsub_transcribe - 属性:修改/执行;异步任务
{
"type": "object",
"properties": {
"files": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
},
"minItems": 1,
"maxItems": 1000
},
"engine": {
"type": "string",
"enum": [
"builtin",
"fasterWhisper",
"funasr",
"qwen",
"fireRedAsr",
"parakeet",
"localCli",
"cloud"
]
},
"model": {
"type": "string",
"minLength": 1
},
"sourceLanguage": {
"type": "string",
"minLength": 1
},
"targetLanguage": {
"type": "string",
"minLength": 1
},
"providerId": {
"type": "string",
"minLength": 1,
"description": "For transcribe: cloud ASR provider ID (requires engine=\"cloud\"). For translate/pipeline.run: translation provider ID. Use config.asrProviderId and config.translateProvider for pipelines that need both; use config.refineProvider for AI segmentation/correction."
},
"outputDir": {
"type": "string",
"minLength": 1,
"description": "Defaults to a new directory per task under the profile automation outputs directory."
},
"name": {
"type": "string",
"minLength": 1
},
"requestId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Reuse only to retry the same submission without running it twice."
},
"config": {
"type": "object",
"properties": {
"dub": {
"type": "object",
"properties": {
"engine": {
"anyOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "local"
},
"modelId": {
"type": "string",
"minLength": 1
}
},
"required": ["kind", "modelId"],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "cloud"
},
"providerId": {
"type": "string",
"minLength": 1
}
},
"required": ["kind", "providerId"],
"additionalProperties": false
}
]
},
"voice": {
"type": "string",
"minLength": 1
},
"language": {
"type": "string",
"minLength": 1
},
"globalSpeed": {
"type": "number",
"minimum": 0.5,
"maximum": 2,
"default": 1
},
"cloneQuality": {
"type": "string",
"enum": ["standard", "high"]
},
"localConcurrency": {
"type": "integer",
"minimum": 1,
"maximum": 3
},
"overflow": {
"type": "string",
"enum": ["truncate", "shift"]
},
"overlapMode": {
"type": "string",
"enum": ["shift", "mix"]
}
},
"required": ["engine", "voice"],
"additionalProperties": false,
"description": "Opt-in dubbing. Use models.list for local TTS or providers.list(kind=\"tts\") for cloud; choose a compatible voice with tts.voices or voices.list. Chat and ASR services cannot provide TTS."
},
"compose": {
"type": "object",
"properties": {
"subtitle": {
"type": "string",
"enum": ["hard", "soft", "none"]
},
"style": {
"type": "object",
"properties": {
"fontName": {
"type": "string",
"minLength": 1
},
"fontSize": {
"type": "number",
"minimum": 10,
"maximum": 72
},
"primaryColor": {
"type": "string",
"minLength": 1
},
"outlineColor": {
"type": "string",
"minLength": 1
},
"backColor": {
"type": "string",
"minLength": 1
},
"backOpacity": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"bold": {
"type": "boolean"
},
"italic": {
"type": "boolean"
},
"underline": {
"type": "boolean"
},
"borderStyle": {
"type": "number",
"enum": [1, 3]
},
"outline": {
"type": "number",
"minimum": 0,
"maximum": 10
},
"shadow": {
"type": "number",
"minimum": 0,
"maximum": 10
},
"alignment": {
"type": "integer",
"minimum": 1,
"maximum": 9
},
"marginL": {
"type": "number",
"minimum": 0
},
"marginR": {
"type": "number",
"minimum": 0
},
"marginV": {
"type": "number",
"minimum": 0
},
"positionY": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"secondLineColor": {
"type": "string",
"minLength": 1
},
"highlightTerms": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"highlightColor": {
"type": "string",
"minLength": 1
},
"glow": {
"type": "number",
"minimum": 0
},
"glowColor": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": true
},
"styleId": {
"type": "string",
"minLength": 1
},
"styleName": {
"type": "string",
"minLength": 1
},
"videoQuality": {
"type": "string",
"enum": ["original", "high", "standard"]
},
"encoderMode": {
"type": "string",
"enum": ["cpu", "hardware"]
}
},
"required": ["subtitle"],
"additionalProperties": false
},
"gates": {
"type": "object",
"properties": {
"subtitle": {
"type": "string",
"enum": ["auto", "manual"],
"default": "auto"
},
"dubbing": {
"type": "string",
"enum": ["auto", "manual"],
"default": "auto"
}
},
"additionalProperties": false
},
"asrProviderId": {
"type": "string",
"minLength": 1,
"description": "Cloud ASR provider ID from providers.list(kind=\"asr\"). Requires engine=\"cloud\" and a model in that provider's models list. Independent from translation/refinement/chat."
},
"translateProvider": {
"type": "string",
"minLength": 1,
"description": "Translation provider ID from providers.list(kind=\"translation\"). Required for translate and translating pipelines; \"-1\" is not a valid translation selection."
},
"useEmbeddedSubtitles": {
"type": "boolean"
},
"translateContent": {
"type": "string",
"enum": ["onlyTranslate", "sourceAndTranslate", "translateAndSource"]
},
"subtitleOutputFormats": {
"type": "array",
"items": {
"type": "string",
"enum": ["srt", "vtt", "ass", "lrc", "txt"]
},
"minItems": 1
},
"subtitleLayout": {
"type": "string",
"enum": ["original", "two-line"]
},
"subtitleLineWidth": {
"type": "number",
"exclusiveMinimum": 0
},
"maxSubtitleChars": {
"type": "number",
"minimum": -1
},
"subtitleMaxDuration": {
"type": "number",
"exclusiveMinimum": 0
},
"subtitleMaxGap": {
"type": "number",
"minimum": 0
},
"preserveSpeechPauses": {
"type": "boolean",
"description": "Preserve speech gaps during subtitle segmentation. Does not require an AI provider by itself."
},
"aiSegmentation": {
"type": "boolean",
"description": "Opt-in AI semantic segmentation of ASR output. Defaults to false for automation. Requires a configured AI refineProvider; do not enable just to generate original SRT."
},
"aiCorrection": {
"type": "boolean",
"description": "Opt-in AI correction of ASR text. Defaults to false for automation. Requires a configured AI refineProvider."
},
"refineProvider": {
"type": "string",
"minLength": 1,
"description": "AI provider ID from providers.list(kind=\"translation\") with isAi=true and configured=true. Required for AI segmentation/correction. Omitted or \"follow-translation\" uses the task translation provider. The in-app assistant can use its current AI service when omitted and no task service resolves. Explicit selections are never replaced."
},
"subtitleTranslationStyle": {
"type": "string",
"enum": ["neutral", "conversational"],
"description": "Defaults to neutral. Conversational style requires a configured AI translation provider, including translate-only tasks."
},
"speakerDiarization": {
"type": "boolean",
"description": "Opt-in speaker identification for media. Requires installed speaker models and Sherpa runtime; inspect models.list before enabling."
},
"speakerDiarizationCount": {
"type": "integer",
"minimum": 0,
"maximum": 8
},
"speakerDiarizationEmbedInSubtitle": {
"type": "boolean"
},
"manuscriptPath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
}
},
"additionalProperties": true,
"description": "Task overrides. Optional refinement, speaker identification, dubbing, composition and manuscript inputs are disabled unless explicitly supplied. Engine/model/provider preferences come from settings.get.defaults. Pass the desired task/recipe config here to reuse its advanced stages."
}
},
"required": ["files"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
translate
Translate subtitle files using a configured translation provider and explicit targetLanguage. A missing provider is an error; translation is never silently skipped. Conversational style requires an AI provider. Returns a job ID.
- CLI:
smartsub translate - MCP:
smartsub_translate - 属性:修改/执行;异步任务
{
"type": "object",
"properties": {
"files": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
},
"minItems": 1,
"maxItems": 1000
},
"engine": {
"type": "string",
"enum": [
"builtin",
"fasterWhisper",
"funasr",
"qwen",
"fireRedAsr",
"parakeet",
"localCli",
"cloud"
]
},
"model": {
"type": "string",
"minLength": 1
},
"sourceLanguage": {
"type": "string",
"minLength": 1
},
"targetLanguage": {
"type": "string",
"minLength": 1
},
"providerId": {
"type": "string",
"minLength": 1,
"description": "For transcribe: cloud ASR provider ID (requires engine=\"cloud\"). For translate/pipeline.run: translation provider ID. Use config.asrProviderId and config.translateProvider for pipelines that need both; use config.refineProvider for AI segmentation/correction."
},
"outputDir": {
"type": "string",
"minLength": 1,
"description": "Defaults to a new directory per task under the profile automation outputs directory."
},
"name": {
"type": "string",
"minLength": 1
},
"requestId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Reuse only to retry the same submission without running it twice."
},
"config": {
"type": "object",
"properties": {
"dub": {
"type": "object",
"properties": {
"engine": {
"anyOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "local"
},
"modelId": {
"type": "string",
"minLength": 1
}
},
"required": ["kind", "modelId"],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "cloud"
},
"providerId": {
"type": "string",
"minLength": 1
}
},
"required": ["kind", "providerId"],
"additionalProperties": false
}
]
},
"voice": {
"type": "string",
"minLength": 1
},
"language": {
"type": "string",
"minLength": 1
},
"globalSpeed": {
"type": "number",
"minimum": 0.5,
"maximum": 2,
"default": 1
},
"cloneQuality": {
"type": "string",
"enum": ["standard", "high"]
},
"localConcurrency": {
"type": "integer",
"minimum": 1,
"maximum": 3
},
"overflow": {
"type": "string",
"enum": ["truncate", "shift"]
},
"overlapMode": {
"type": "string",
"enum": ["shift", "mix"]
}
},
"required": ["engine", "voice"],
"additionalProperties": false,
"description": "Opt-in dubbing. Use models.list for local TTS or providers.list(kind=\"tts\") for cloud; choose a compatible voice with tts.voices or voices.list. Chat and ASR services cannot provide TTS."
},
"compose": {
"type": "object",
"properties": {
"subtitle": {
"type": "string",
"enum": ["hard", "soft", "none"]
},
"style": {
"type": "object",
"properties": {
"fontName": {
"type": "string",
"minLength": 1
},
"fontSize": {
"type": "number",
"minimum": 10,
"maximum": 72
},
"primaryColor": {
"type": "string",
"minLength": 1
},
"outlineColor": {
"type": "string",
"minLength": 1
},
"backColor": {
"type": "string",
"minLength": 1
},
"backOpacity": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"bold": {
"type": "boolean"
},
"italic": {
"type": "boolean"
},
"underline": {
"type": "boolean"
},
"borderStyle": {
"type": "number",
"enum": [1, 3]
},
"outline": {
"type": "number",
"minimum": 0,
"maximum": 10
},
"shadow": {
"type": "number",
"minimum": 0,
"maximum": 10
},
"alignment": {
"type": "integer",
"minimum": 1,
"maximum": 9
},
"marginL": {
"type": "number",
"minimum": 0
},
"marginR": {
"type": "number",
"minimum": 0
},
"marginV": {
"type": "number",
"minimum": 0
},
"positionY": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"secondLineColor": {
"type": "string",
"minLength": 1
},
"highlightTerms": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"highlightColor": {
"type": "string",
"minLength": 1
},
"glow": {
"type": "number",
"minimum": 0
},
"glowColor": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": true
},
"styleId": {
"type": "string",
"minLength": 1
},
"styleName": {
"type": "string",
"minLength": 1
},
"videoQuality": {
"type": "string",
"enum": ["original", "high", "standard"]
},
"encoderMode": {
"type": "string",
"enum": ["cpu", "hardware"]
}
},
"required": ["subtitle"],
"additionalProperties": false
},
"gates": {
"type": "object",
"properties": {
"subtitle": {
"type": "string",
"enum": ["auto", "manual"],
"default": "auto"
},
"dubbing": {
"type": "string",
"enum": ["auto", "manual"],
"default": "auto"
}
},
"additionalProperties": false
},
"asrProviderId": {
"type": "string",
"minLength": 1,
"description": "Cloud ASR provider ID from providers.list(kind=\"asr\"). Requires engine=\"cloud\" and a model in that provider's models list. Independent from translation/refinement/chat."
},
"translateProvider": {
"type": "string",
"minLength": 1,
"description": "Translation provider ID from providers.list(kind=\"translation\"). Required for translate and translating pipelines; \"-1\" is not a valid translation selection."
},
"useEmbeddedSubtitles": {
"type": "boolean"
},
"translateContent": {
"type": "string",
"enum": ["onlyTranslate", "sourceAndTranslate", "translateAndSource"]
},
"subtitleOutputFormats": {
"type": "array",
"items": {
"type": "string",
"enum": ["srt", "vtt", "ass", "lrc", "txt"]
},
"minItems": 1
},
"subtitleLayout": {
"type": "string",
"enum": ["original", "two-line"]
},
"subtitleLineWidth": {
"type": "number",
"exclusiveMinimum": 0
},
"maxSubtitleChars": {
"type": "number",
"minimum": -1
},
"subtitleMaxDuration": {
"type": "number",
"exclusiveMinimum": 0
},
"subtitleMaxGap": {
"type": "number",
"minimum": 0
},
"preserveSpeechPauses": {
"type": "boolean",
"description": "Preserve speech gaps during subtitle segmentation. Does not require an AI provider by itself."
},
"aiSegmentation": {
"type": "boolean",
"description": "Opt-in AI semantic segmentation of ASR output. Defaults to false for automation. Requires a configured AI refineProvider; do not enable just to generate original SRT."
},
"aiCorrection": {
"type": "boolean",
"description": "Opt-in AI correction of ASR text. Defaults to false for automation. Requires a configured AI refineProvider."
},
"refineProvider": {
"type": "string",
"minLength": 1,
"description": "AI provider ID from providers.list(kind=\"translation\") with isAi=true and configured=true. Required for AI segmentation/correction. Omitted or \"follow-translation\" uses the task translation provider. The in-app assistant can use its current AI service when omitted and no task service resolves. Explicit selections are never replaced."
},
"subtitleTranslationStyle": {
"type": "string",
"enum": ["neutral", "conversational"],
"description": "Defaults to neutral. Conversational style requires a configured AI translation provider, including translate-only tasks."
},
"speakerDiarization": {
"type": "boolean",
"description": "Opt-in speaker identification for media. Requires installed speaker models and Sherpa runtime; inspect models.list before enabling."
},
"speakerDiarizationCount": {
"type": "integer",
"minimum": 0,
"maximum": 8
},
"speakerDiarizationEmbedInSubtitle": {
"type": "boolean"
},
"manuscriptPath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
}
},
"additionalProperties": true,
"description": "Task overrides. Optional refinement, speaker identification, dubbing, composition and manuscript inputs are disabled unless explicitly supplied. Engine/model/provider preferences come from settings.get.defaults. Pass the desired task/recipe config here to reuse its advanced stages."
}
},
"required": ["files", "targetLanguage"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
pipeline.run
Run transcription/translation with opt-in AI refinement, speaker identification, dubbing and video composition. Select ASR, translation/refinement and TTS providers separately. Pass desired advanced stages in config; default review gates are automatic.
- CLI:
smartsub pipeline run - MCP:
smartsub_pipeline_run - 属性:修改/执行;异步任务
{
"type": "object",
"properties": {
"files": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
},
"minItems": 1,
"maxItems": 1000
},
"engine": {
"type": "string",
"enum": [
"builtin",
"fasterWhisper",
"funasr",
"qwen",
"fireRedAsr",
"parakeet",
"localCli",
"cloud"
]
},
"model": {
"type": "string",
"minLength": 1
},
"sourceLanguage": {
"type": "string",
"minLength": 1
},
"targetLanguage": {
"type": "string",
"minLength": 1
},
"providerId": {
"type": "string",
"minLength": 1,
"description": "For transcribe: cloud ASR provider ID (requires engine=\"cloud\"). For translate/pipeline.run: translation provider ID. Use config.asrProviderId and config.translateProvider for pipelines that need both; use config.refineProvider for AI segmentation/correction."
},
"outputDir": {
"type": "string",
"minLength": 1,
"description": "Defaults to a new directory per task under the profile automation outputs directory."
},
"name": {
"type": "string",
"minLength": 1
},
"requestId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Reuse only to retry the same submission without running it twice."
},
"config": {
"type": "object",
"properties": {
"dub": {
"type": "object",
"properties": {
"engine": {
"anyOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "local"
},
"modelId": {
"type": "string",
"minLength": 1
}
},
"required": ["kind", "modelId"],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "cloud"
},
"providerId": {
"type": "string",
"minLength": 1
}
},
"required": ["kind", "providerId"],
"additionalProperties": false
}
]
},
"voice": {
"type": "string",
"minLength": 1
},
"language": {
"type": "string",
"minLength": 1
},
"globalSpeed": {
"type": "number",
"minimum": 0.5,
"maximum": 2,
"default": 1
},
"cloneQuality": {
"type": "string",
"enum": ["standard", "high"]
},
"localConcurrency": {
"type": "integer",
"minimum": 1,
"maximum": 3
},
"overflow": {
"type": "string",
"enum": ["truncate", "shift"]
},
"overlapMode": {
"type": "string",
"enum": ["shift", "mix"]
}
},
"required": ["engine", "voice"],
"additionalProperties": false,
"description": "Opt-in dubbing. Use models.list for local TTS or providers.list(kind=\"tts\") for cloud; choose a compatible voice with tts.voices or voices.list. Chat and ASR services cannot provide TTS."
},
"compose": {
"type": "object",
"properties": {
"subtitle": {
"type": "string",
"enum": ["hard", "soft", "none"]
},
"style": {
"type": "object",
"properties": {
"fontName": {
"type": "string",
"minLength": 1
},
"fontSize": {
"type": "number",
"minimum": 10,
"maximum": 72
},
"primaryColor": {
"type": "string",
"minLength": 1
},
"outlineColor": {
"type": "string",
"minLength": 1
},
"backColor": {
"type": "string",
"minLength": 1
},
"backOpacity": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"bold": {
"type": "boolean"
},
"italic": {
"type": "boolean"
},
"underline": {
"type": "boolean"
},
"borderStyle": {
"type": "number",
"enum": [1, 3]
},
"outline": {
"type": "number",
"minimum": 0,
"maximum": 10
},
"shadow": {
"type": "number",
"minimum": 0,
"maximum": 10
},
"alignment": {
"type": "integer",
"minimum": 1,
"maximum": 9
},
"marginL": {
"type": "number",
"minimum": 0
},
"marginR": {
"type": "number",
"minimum": 0
},
"marginV": {
"type": "number",
"minimum": 0
},
"positionY": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"secondLineColor": {
"type": "string",
"minLength": 1
},
"highlightTerms": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"highlightColor": {
"type": "string",
"minLength": 1
},
"glow": {
"type": "number",
"minimum": 0
},
"glowColor": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": true
},
"styleId": {
"type": "string",
"minLength": 1
},
"styleName": {
"type": "string",
"minLength": 1
},
"videoQuality": {
"type": "string",
"enum": ["original", "high", "standard"]
},
"encoderMode": {
"type": "string",
"enum": ["cpu", "hardware"]
}
},
"required": ["subtitle"],
"additionalProperties": false
},
"gates": {
"type": "object",
"properties": {
"subtitle": {
"type": "string",
"enum": ["auto", "manual"],
"default": "auto"
},
"dubbing": {
"type": "string",
"enum": ["auto", "manual"],
"default": "auto"
}
},
"additionalProperties": false
},
"asrProviderId": {
"type": "string",
"minLength": 1,
"description": "Cloud ASR provider ID from providers.list(kind=\"asr\"). Requires engine=\"cloud\" and a model in that provider's models list. Independent from translation/refinement/chat."
},
"translateProvider": {
"type": "string",
"minLength": 1,
"description": "Translation provider ID from providers.list(kind=\"translation\"). Required for translate and translating pipelines; \"-1\" is not a valid translation selection."
},
"useEmbeddedSubtitles": {
"type": "boolean"
},
"translateContent": {
"type": "string",
"enum": ["onlyTranslate", "sourceAndTranslate", "translateAndSource"]
},
"subtitleOutputFormats": {
"type": "array",
"items": {
"type": "string",
"enum": ["srt", "vtt", "ass", "lrc", "txt"]
},
"minItems": 1
},
"subtitleLayout": {
"type": "string",
"enum": ["original", "two-line"]
},
"subtitleLineWidth": {
"type": "number",
"exclusiveMinimum": 0
},
"maxSubtitleChars": {
"type": "number",
"minimum": -1
},
"subtitleMaxDuration": {
"type": "number",
"exclusiveMinimum": 0
},
"subtitleMaxGap": {
"type": "number",
"minimum": 0
},
"preserveSpeechPauses": {
"type": "boolean",
"description": "Preserve speech gaps during subtitle segmentation. Does not require an AI provider by itself."
},
"aiSegmentation": {
"type": "boolean",
"description": "Opt-in AI semantic segmentation of ASR output. Defaults to false for automation. Requires a configured AI refineProvider; do not enable just to generate original SRT."
},
"aiCorrection": {
"type": "boolean",
"description": "Opt-in AI correction of ASR text. Defaults to false for automation. Requires a configured AI refineProvider."
},
"refineProvider": {
"type": "string",
"minLength": 1,
"description": "AI provider ID from providers.list(kind=\"translation\") with isAi=true and configured=true. Required for AI segmentation/correction. Omitted or \"follow-translation\" uses the task translation provider. The in-app assistant can use its current AI service when omitted and no task service resolves. Explicit selections are never replaced."
},
"subtitleTranslationStyle": {
"type": "string",
"enum": ["neutral", "conversational"],
"description": "Defaults to neutral. Conversational style requires a configured AI translation provider, including translate-only tasks."
},
"speakerDiarization": {
"type": "boolean",
"description": "Opt-in speaker identification for media. Requires installed speaker models and Sherpa runtime; inspect models.list before enabling."
},
"speakerDiarizationCount": {
"type": "integer",
"minimum": 0,
"maximum": 8
},
"speakerDiarizationEmbedInSubtitle": {
"type": "boolean"
},
"manuscriptPath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
}
},
"additionalProperties": true,
"description": "Task overrides. Optional refinement, speaker identification, dubbing, composition and manuscript inputs are disabled unless explicitly supplied. Engine/model/provider preferences come from settings.get.defaults. Pass the desired task/recipe config here to reuse its advanced stages."
},
"taskType": {
"type": "string",
"enum": ["generateOnly", "translateOnly", "generateAndTranslate"],
"default": "generateAndTranslate"
}
},
"required": ["files"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
pipeline.release
Release a subtitle or dubbing review gate.
- CLI:
smartsub pipeline release - MCP:
smartsub_pipeline_release - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"projectId": {
"type": "string",
"minLength": 1
},
"gate": {
"type": "string",
"enum": ["subtitle", "dubbing"]
},
"fileUuids": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
},
"required": ["projectId", "gate"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
subtitles.read
Read subtitle cues with a content version for safe editing. Paginated; times are milliseconds.
- CLI:
smartsub subtitles read - MCP:
smartsub_subtitles_read - 属性:读取;直接返回
{
"type": "object",
"properties": {
"filePath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
},
"offset": {
"type": "integer",
"minimum": 0,
"default": 0
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 500,
"default": 100
}
},
"required": ["filePath"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
subtitles.write
Write subtitle cues to a new file. In-place changes require overwrite=true and the version returned by subtitles.read.
- CLI:
smartsub subtitles write - MCP:
smartsub_subtitles_write - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"filePath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
},
"cues": {
"type": "array",
"items": {
"type": "object",
"properties": {
"startMs": {
"type": "number",
"minimum": 0
},
"endMs": {
"type": "number",
"minimum": 0
},
"text": {
"type": "string"
}
},
"required": ["startMs", "endMs", "text"],
"additionalProperties": false
},
"minItems": 1
},
"format": {
"type": "string",
"enum": ["srt", "vtt", "ass", "lrc", "txt"]
},
"overwrite": {
"type": "boolean",
"default": false
},
"expectedVersion": {
"type": "string",
"minLength": 1
}
},
"required": ["filePath", "cues"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
subtitles.validate
Validate a subtitle file.
- CLI:
smartsub subtitles validate - MCP:
smartsub_subtitles_validate - 属性:读取;直接返回
{
"type": "object",
"properties": {
"filePath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
}
},
"required": ["filePath"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
subtitles.detect-language
Detect subtitle language.
- CLI:
smartsub subtitles detect-language - MCP:
smartsub_subtitles_detect_language - 属性:读取;直接返回
{
"type": "object",
"properties": {
"filePath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
}
},
"required": ["filePath"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
subtitles.scan
Find subtitle/media pairs in a local directory.
- CLI:
smartsub subtitles scan - MCP:
smartsub_subtitles_scan - 属性:读取;直接返回
{
"type": "object",
"properties": {
"directoryPath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
},
"strict": {
"type": "boolean"
}
},
"required": ["directoryPath"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
subtitles.encoding
Detect subtitle character encoding.
- CLI:
smartsub subtitles encoding - MCP:
smartsub_subtitles_encoding - 属性:读取;直接返回
{
"type": "object",
"properties": {
"filePath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
}
},
"required": ["filePath"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
subtitles.convert
Convert subtitle format, encoding and Chinese script without overwriting input.
- CLI:
smartsub subtitles convert - MCP:
smartsub_subtitles_convert - 属性:修改/执行;异步任务
{
"type": "object",
"properties": {
"filePath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
},
"targetFormat": {
"type": "string",
"enum": ["srt", "vtt", "ass", "lrc", "txt"]
},
"outputDir": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
},
"sourceEncoding": {
"type": "string",
"minLength": 1
},
"targetEncoding": {
"type": "string",
"enum": ["utf-8", "utf-8-bom", "gb18030"]
},
"chineseConversion": {
"type": "string",
"enum": ["none", "s2t", "t2s", "s2tw", "tw2s", "s2hk", "hk2s"]
},
"cleanFormatting": {
"type": "boolean"
},
"includeTimestampsInTxt": {
"type": "boolean"
},
"requestId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Reuse only to retry the same submission without running it twice."
}
},
"required": ["filePath", "targetFormat"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
subtitles.sync
Shift or rescale subtitle timings.
- CLI:
smartsub subtitles sync - MCP:
smartsub_subtitles_sync - 属性:修改/执行;异步任务
{
"type": "object",
"properties": {
"filePath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
},
"offsetMs": {
"type": "number"
},
"config": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": ["offset", "scale", "two-point"],
"default": "offset"
},
"offsetMs": {
"type": "number"
},
"scaleRatio": {
"type": "number",
"exclusiveMinimum": 0
},
"scaleFraction": {
"type": "object",
"properties": {
"numerator": {
"type": "number",
"exclusiveMinimum": 0
},
"denominator": {
"type": "number",
"exclusiveMinimum": 0
}
},
"required": ["numerator", "denominator"],
"additionalProperties": false
},
"p1SourceMs": {
"type": "number",
"minimum": 0
},
"p1TargetMs": {
"type": "number",
"minimum": 0
},
"p2SourceMs": {
"type": "number",
"minimum": 0
},
"p2TargetMs": {
"type": "number",
"minimum": 0
},
"outputPath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
}
},
"additionalProperties": false,
"default": {}
}
},
"required": ["filePath"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
subtitles.merge
Merge primary and secondary subtitle files into bilingual subtitles.
- CLI:
smartsub subtitles merge - MCP:
smartsub_subtitles_merge - 属性:修改/执行;异步任务
{
"type": "object",
"properties": {
"primaryPath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
},
"secondaryPath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
},
"config": {
"type": "object",
"properties": {
"primaryPosition": {
"type": "string",
"enum": ["top", "bottom"],
"default": "top"
},
"separator": {
"type": "string"
},
"outputPath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
}
},
"additionalProperties": false,
"default": {}
}
},
"required": ["primaryPath", "secondaryPath"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
subtitles.split
Split bilingual subtitles.
- CLI:
smartsub subtitles split - MCP:
smartsub_subtitles_split - 属性:修改/执行;异步任务
{
"type": "object",
"properties": {
"filePath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
},
"config": {
"type": "object",
"properties": {
"outputDir": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
}
},
"additionalProperties": false,
"default": {}
}
},
"required": ["filePath"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
subtitles.optimize
Polish one source or translated subtitle using a configured AI provider.
- CLI:
smartsub subtitles optimize - MCP:
smartsub_subtitles_optimize - 属性:修改/执行;异步任务
{
"type": "object",
"properties": {
"sourceText": {
"type": "string"
},
"targetText": {
"type": "string",
"default": ""
},
"providerId": {
"type": "string",
"minLength": 1
},
"mode": {
"type": "string",
"enum": ["source", "translation"],
"default": "translation"
},
"sourceLanguage": {
"type": "string",
"minLength": 1
},
"targetLanguage": {
"type": "string",
"minLength": 1
},
"customPrompt": {
"type": "string",
"minLength": 1
},
"intent": {
"type": "string",
"enum": ["polish", "correct", "shorten"]
},
"requestId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Reuse only to retry the same submission without running it twice."
}
},
"required": ["sourceText", "providerId"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
subtitles.retranslate
Retranslate subtitle rows using an existing provider. Results are returned in the job result.
- CLI:
smartsub subtitles retranslate - MCP:
smartsub_subtitles_retranslate - 属性:修改/执行;异步任务
{
"type": "object",
"properties": {
"subtitles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"startEndTime": {
"type": "string",
"minLength": 1
},
"content": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": ["id", "startEndTime", "content"],
"additionalProperties": false
}
},
"providerId": {
"type": "string",
"minLength": 1
},
"sourceLanguage": {
"type": "string",
"minLength": 1
},
"targetLanguage": {
"type": "string",
"minLength": 1
},
"requestId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Reuse only to retry the same submission without running it twice."
}
},
"required": ["subtitles", "providerId", "sourceLanguage", "targetLanguage"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
proofread.read
Read canonical proofread data including speakers and translations.
- CLI:
smartsub proofread read - MCP:
smartsub_proofread_read - 属性:读取;直接返回
{
"type": "object",
"properties": {
"filePath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
}
},
"required": ["filePath"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
proofread.save
Save canonical proofread rows, speakers and rendered subtitles with conflict checking.
- CLI:
smartsub proofread save - MCP:
smartsub_proofread_save - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"filePath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
},
"expectedVersion": {
"type": "string",
"minLength": 1
},
"subtitles": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": {}
}
},
"speakers": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": {}
},
"default": []
},
"outputs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"filePath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
},
"contentType": {
"type": "string",
"minLength": 1
}
},
"required": ["filePath"],
"additionalProperties": false
},
"default": []
},
"embedSpeakerNames": {
"type": "boolean",
"default": false
}
},
"required": ["filePath", "expectedVersion", "subtitles"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
media.probe
Inspect media duration, dimensions, streams and codecs.
- CLI:
smartsub media probe - MCP:
smartsub_media_probe - 属性:读取;直接返回
{
"type": "object",
"properties": {
"filePath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
}
},
"required": ["filePath"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
media.subtitles
List embedded subtitle tracks.
- CLI:
smartsub media subtitles - MCP:
smartsub_media_subtitles - 属性:读取;直接返回
{
"type": "object",
"properties": {
"filePath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
}
},
"required": ["filePath"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
media.trim
Trim a video. config: startSec,endSec,mode (lossless|accurate),outputPath/outputDir.
- CLI:
smartsub media trim - MCP:
smartsub_media_trim - 属性:修改/执行;异步任务
{
"type": "object",
"properties": {
"filePath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
},
"config": {
"type": "object",
"properties": {
"startSec": {
"type": "number",
"minimum": 0
},
"endSec": {
"type": "number",
"exclusiveMinimum": 0
},
"mode": {
"type": "string",
"enum": ["lossless", "accurate"],
"default": "lossless"
},
"outputPath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
},
"outputDir": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
}
},
"required": ["startSec", "endSec"],
"additionalProperties": false
},
"requestId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Reuse only to retry the same submission without running it twice."
}
},
"required": ["filePath", "config"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
media.extract-audio
Extract audio. config: format (mp3|wav|aac|m4a|flac),bitrate,wavPreset,outputPath.
- CLI:
smartsub media extract-audio - MCP:
smartsub_media_extract_audio - 属性:修改/执行;异步任务
{
"type": "object",
"properties": {
"filePath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
},
"config": {
"type": "object",
"properties": {
"format": {
"type": "string",
"enum": ["mp3", "wav", "aac", "m4a", "flac"]
},
"bitrate": {
"type": "string",
"enum": ["128k", "192k", "256k", "320k"]
},
"wavPreset": {
"type": "string",
"enum": ["standard", "asr_16k_mono"]
},
"outputPath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
}
},
"required": ["format"],
"additionalProperties": false
},
"requestId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Reuse only to retry the same submission without running it twice."
}
},
"required": ["filePath", "config"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
media.compress
Compress video. Use the VideoCompressConfig fields.
- CLI:
smartsub media compress - MCP:
smartsub_media_compress - 属性:修改/执行;异步任务
{
"type": "object",
"properties": {
"filePath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
},
"config": {
"type": "object",
"properties": {
"preset": {
"type": "string",
"enum": ["wechat_25mb", "balanced_1080p", "fast_720p", "target_size"]
},
"targetSizeMb": {
"type": "number",
"exclusiveMinimum": 0
},
"outputPath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
}
},
"required": ["preset"],
"additionalProperties": false
},
"requestId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Reuse only to retry the same submission without running it twice."
}
},
"required": ["filePath", "config"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
media.gif
Convert video to GIF. Use the VideoToGifConfig fields.
- CLI:
smartsub media gif - MCP:
smartsub_media_gif - 属性:修改/执行;异步任务
{
"type": "object",
"properties": {
"filePath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
},
"config": {
"type": "object",
"properties": {
"startSec": {
"type": "number",
"minimum": 0
},
"endSec": {
"type": "number",
"exclusiveMinimum": 0
},
"fps": {
"type": "number",
"exclusiveMinimum": 0
},
"width": {
"type": "integer",
"exclusiveMinimum": 0
},
"outputPath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
}
},
"required": ["startSec", "endSec"],
"additionalProperties": false
},
"requestId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Reuse only to retry the same submission without running it twice."
}
},
"required": ["filePath", "config"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
media.extract-subtitles
Extract embedded text subtitles to files.
- CLI:
smartsub media extract-subtitles - MCP:
smartsub_media_extract_subtitles - 属性:修改/执行;异步任务
{
"type": "object",
"properties": {
"videoPath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
},
"streamIndices": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0
},
"minItems": 1
},
"targetFormat": {
"type": "string",
"enum": ["srt", "ass", "vtt"]
},
"outputDir": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
},
"requestId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Reuse only to retry the same submission without running it twice."
}
},
"required": ["videoPath", "streamIndices", "targetFormat"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
compose.run
Burn or mux subtitles into video. config uses MergeConfig: outputMode hardcode/softmux, style, videoQuality, encoderMode and optional audioTrack.
- CLI:
smartsub compose run - MCP:
smartsub_compose_run - 属性:修改/执行;异步任务
{
"type": "object",
"properties": {
"videoPath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
},
"subtitlePath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
},
"outputPath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
},
"config": {
"type": "object",
"properties": {
"outputMode": {
"type": "string",
"enum": ["hardcode", "softmux"],
"default": "hardcode"
},
"videoQuality": {
"type": "string",
"enum": ["original", "high", "standard"]
},
"encoderMode": {
"type": "string",
"enum": ["cpu", "hardware"]
},
"style": {
"type": "object",
"properties": {
"fontName": {
"type": "string",
"minLength": 1
},
"fontSize": {
"type": "number",
"minimum": 10,
"maximum": 72
},
"primaryColor": {
"type": "string",
"minLength": 1
},
"outlineColor": {
"type": "string",
"minLength": 1
},
"backColor": {
"type": "string",
"minLength": 1
},
"backOpacity": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"bold": {
"type": "boolean"
},
"italic": {
"type": "boolean"
},
"underline": {
"type": "boolean"
},
"borderStyle": {
"type": "number",
"enum": [1, 3]
},
"outline": {
"type": "number",
"minimum": 0,
"maximum": 10
},
"shadow": {
"type": "number",
"minimum": 0,
"maximum": 10
},
"alignment": {
"type": "integer",
"minimum": 1,
"maximum": 9
},
"marginL": {
"type": "number",
"minimum": 0
},
"marginR": {
"type": "number",
"minimum": 0
},
"marginV": {
"type": "number",
"minimum": 0
},
"positionY": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"secondLineColor": {
"type": "string",
"minLength": 1
},
"highlightTerms": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"highlightColor": {
"type": "string",
"minLength": 1
},
"glow": {
"type": "number",
"minimum": 0
},
"glowColor": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": true
},
"audioTrack": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": ["replace", "mix", "addTrack"]
},
"trackPath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
},
"duckRatio": {
"type": "number",
"exclusiveMinimum": 0
}
},
"required": ["mode", "trackPath"],
"additionalProperties": false
}
},
"additionalProperties": false,
"default": {}
},
"requestId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Reuse only to retry the same submission without running it twice."
}
},
"required": ["videoPath", "subtitlePath"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
compose.queue
Inspect the shared video composition queue.
- CLI:
smartsub compose queue - MCP:
smartsub_compose_queue - 属性:读取;直接返回
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
compose.encoders
Available hardware video encoders.
- CLI:
smartsub compose encoders - MCP:
smartsub_compose_encoders - 属性:读取;直接返回
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
compose.fonts
Installed fonts for subtitle composition.
- CLI:
smartsub compose fonts - MCP:
smartsub_compose_fonts - 属性:读取;直接返回
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
compose.presets
List subtitle style presets.
- CLI:
smartsub compose presets - MCP:
smartsub_compose_presets - 属性:读取;直接返回
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
compose.save-preset
Save a subtitle style preset.
- CLI:
smartsub compose save-preset - MCP:
smartsub_compose_save_preset - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"preset": {
"type": "object",
"additionalProperties": {},
"description": "Advanced SmartSub configuration. See the linked operation reference for the corresponding application type."
}
},
"required": ["preset"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
compose.delete-preset
Delete a subtitle style preset.
- CLI:
smartsub compose delete-preset - MCP:
smartsub_compose_delete_preset - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": ["id"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
providers.list
List saved providers without secret values. configured reports local configuration completeness (not network health); translation isAi providers support AI refinement, while ASR and TTS use separate provider kinds.
- CLI:
smartsub providers list - MCP:
smartsub_providers_list - 属性:读取;直接返回
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": ["translation", "asr", "tts"]
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
providers.types
Discover provider types, supported capabilities and configuration fields before creating an instance.
- CLI:
smartsub providers types - MCP:
smartsub_providers_types - 属性:读取;直接返回
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": ["translation", "asr", "tts"]
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
providers.save
Create or patch a provider by ID. Omitted credentials are preserved; secrets are write-only.
- CLI:
smartsub providers save - MCP:
smartsub_providers_save - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": ["translation", "asr", "tts"]
},
"provider": {
"type": "object",
"additionalProperties": {}
}
},
"required": ["kind", "provider"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
providers.delete
Delete one configured provider by ID.
- CLI:
smartsub providers delete - MCP:
smartsub_providers_delete - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": ["translation", "asr", "tts"]
},
"id": {
"type": "string",
"minLength": 1
}
},
"required": ["kind", "id"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
providers.test
Test a configured provider connection; may make a billable request.
- CLI:
smartsub providers test - MCP:
smartsub_providers_test - 属性:修改/执行;异步任务
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": ["translation", "asr", "tts"]
},
"id": {
"type": "string",
"minLength": 1
}
},
"required": ["kind", "id"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
providers.health
Cached service health; does not send network requests.
- CLI:
smartsub providers health - MCP:
smartsub_providers_health - 属性:读取;直接返回
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
settings.get
Read redacted application settings and task defaults.
- CLI:
smartsub settings get - MCP:
smartsub_settings_get - 属性:读取;直接返回
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
settings.update
Patch validated application settings; preserves omitted fields.
- CLI:
smartsub settings update - MCP:
smartsub_settings_update - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"settings": {
"type": "object",
"additionalProperties": {}
}
},
"required": ["settings"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
models.list
List installed ASR, TTS and speaker models and runtime status.
- CLI:
smartsub models list - MCP:
smartsub_models_list - 属性:读取;直接返回
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
models.install
Download a catalog model; returns a job ID.
- CLI:
smartsub models install - MCP:
smartsub_models_install - 属性:修改/执行;异步任务
{
"type": "object",
"properties": {
"engine": {
"type": "string",
"enum": [
"builtin",
"fasterWhisper",
"funasr",
"qwen",
"fireRedAsr",
"parakeet",
"tts",
"speakerDiarization"
]
},
"model": {
"type": "string",
"minLength": 1
},
"source": {
"type": "string",
"minLength": 1,
"default": "huggingface"
},
"needsCoreML": {
"type": "boolean",
"default": false
},
"requestId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Reuse only to retry the same submission without running it twice."
}
},
"required": ["engine"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
models.delete
Delete a model only while transcription and synthesis are idle.
- CLI:
smartsub models delete - MCP:
smartsub_models_delete - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"engine": {
"type": "string",
"enum": [
"builtin",
"fasterWhisper",
"funasr",
"qwen",
"fireRedAsr",
"parakeet",
"tts",
"speakerDiarization"
]
},
"model": {
"type": "string",
"minLength": 1
}
},
"required": ["engine"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
models.import
Import a local model file or directory with existing layout validation.
- CLI:
smartsub models import - MCP:
smartsub_models_import - 属性:修改/执行;异步任务
{
"type": "object",
"properties": {
"engine": {
"type": "string",
"enum": [
"builtin",
"fasterWhisper",
"funasr",
"qwen",
"fireRedAsr",
"parakeet",
"tts"
]
},
"modelId": {
"type": "string",
"minLength": 1
},
"sourcePath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
}
},
"required": ["engine", "sourcePath"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
engines.list
List ASR engine availability.
- CLI:
smartsub engines list - MCP:
smartsub_engines_list - 属性:读取;直接返回
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
engines.install
Install the faster-whisper runtime. Poll engines.progress until installation ends.
- CLI:
smartsub engines install - MCP:
smartsub_engines_install - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"source": {
"type": "string",
"minLength": 1,
"default": "github"
},
"variant": {
"type": "string",
"enum": ["cpu", "cuda"]
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
engines.progress
Runtime installation progress.
- CLI:
smartsub engines progress - MCP:
smartsub_engines_progress - 属性:读取;直接返回
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
engines.cancel
Cancel runtime installation.
- CLI:
smartsub engines cancel - MCP:
smartsub_engines_cancel - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
engines.remove
Remove faster-whisper runtime when idle.
- CLI:
smartsub engines remove - MCP:
smartsub_engines_remove - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
engines.import
Import a faster-whisper runtime archive.
- CLI:
smartsub engines import - MCP:
smartsub_engines_import - 属性:修改/执行;异步任务
{
"type": "object",
"properties": {
"sourcePath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
}
},
"required": ["sourcePath"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
tts.voices
List voices for a configured cloud TTS provider or installed local models.
- CLI:
smartsub tts voices - MCP:
smartsub_tts_voices - 属性:读取;直接返回
{
"type": "object",
"properties": {
"providerId": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
tts.synthesize
Synthesize text to an audio file. Select exactly one of model (installed local TTS, from models.list) or providerId (configured cloud TTS, from providers.list(kind="tts")). Select voice via tts.voices or voices.list and set language to the spoken language.
- CLI:
smartsub tts synthesize - MCP:
smartsub_tts_synthesize - 属性:修改/执行;异步任务
{
"type": "object",
"properties": {
"text": {
"type": "string",
"minLength": 1
},
"providerId": {
"type": "string",
"minLength": 1
},
"model": {
"type": "string",
"minLength": 1
},
"voice": {
"type": "string",
"minLength": 1
},
"language": {
"type": "string",
"minLength": 1,
"default": "en"
},
"outputPath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
},
"requestId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Reuse only to retry the same submission without running it twice."
}
},
"required": ["text", "voice"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
dubbing.get
Read a persisted dubbing session.
- CLI:
smartsub dubbing get - MCP:
smartsub_dubbing_get - 属性:读取;直接返回
{
"type": "object",
"properties": {
"sessionId": {
"type": "string",
"minLength": 1
}
},
"required": ["sessionId"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
dubbing.create
Create a dubbing session from subtitles and optional media.
- CLI:
smartsub dubbing create - MCP:
smartsub_dubbing_create - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"subtitlePath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
},
"videoPath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
},
"proofreadDataFile": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
}
},
"required": ["subtitlePath"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
dubbing.run
Synthesize all or stale subtitle cues. config uses DubbingConfig.
- CLI:
smartsub dubbing run - MCP:
smartsub_dubbing_run - 属性:修改/执行;异步任务
{
"type": "object",
"properties": {
"sessionId": {
"type": "string",
"minLength": 1
},
"config": {
"type": "object",
"properties": {
"engine": {
"anyOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "local"
},
"modelId": {
"type": "string",
"minLength": 1
}
},
"required": ["kind", "modelId"],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "cloud"
},
"providerId": {
"type": "string",
"minLength": 1
}
},
"required": ["kind", "providerId"],
"additionalProperties": false
}
]
},
"voice": {
"type": "string",
"minLength": 1
},
"language": {
"type": "string",
"minLength": 1
},
"globalSpeed": {
"type": "number",
"minimum": 0.5,
"maximum": 2,
"default": 1
},
"cloneQuality": {
"type": "string",
"enum": ["standard", "high"]
},
"localConcurrency": {
"type": "integer",
"minimum": 1,
"maximum": 3
},
"overflow": {
"type": "string",
"enum": ["truncate", "shift"]
},
"overlapMode": {
"type": "string",
"enum": ["shift", "mix"]
},
"background": {
"type": "string",
"enum": ["mute", "duck"],
"default": "mute"
},
"output": {
"type": "string",
"enum": ["audioOnly", "replaceTrack", "mixTrack", "addTrack"],
"default": "audioOnly"
},
"audioFormat": {
"type": "string",
"enum": ["wav", "mp3"]
},
"exportShiftedSubtitle": {
"type": "boolean"
}
},
"required": ["engine", "voice"],
"additionalProperties": false
},
"force": {
"type": "boolean"
},
"staleOnly": {
"type": "boolean"
},
"speakerId": {
"type": "integer"
},
"requestId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Reuse only to retry the same submission without running it twice."
}
},
"required": ["sessionId", "config"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
dubbing.export
Export the synthesized track or dubbed video using DubbingConfig.
- CLI:
smartsub dubbing export - MCP:
smartsub_dubbing_export - 属性:修改/执行;异步任务
{
"type": "object",
"properties": {
"sessionId": {
"type": "string",
"minLength": 1
},
"config": {
"type": "object",
"properties": {
"engine": {
"anyOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "local"
},
"modelId": {
"type": "string",
"minLength": 1
}
},
"required": ["kind", "modelId"],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "cloud"
},
"providerId": {
"type": "string",
"minLength": 1
}
},
"required": ["kind", "providerId"],
"additionalProperties": false
}
]
},
"voice": {
"type": "string",
"minLength": 1
},
"language": {
"type": "string",
"minLength": 1
},
"globalSpeed": {
"type": "number",
"minimum": 0.5,
"maximum": 2,
"default": 1
},
"cloneQuality": {
"type": "string",
"enum": ["standard", "high"]
},
"localConcurrency": {
"type": "integer",
"minimum": 1,
"maximum": 3
},
"overflow": {
"type": "string",
"enum": ["truncate", "shift"]
},
"overlapMode": {
"type": "string",
"enum": ["shift", "mix"]
},
"background": {
"type": "string",
"enum": ["mute", "duck"],
"default": "mute"
},
"output": {
"type": "string",
"enum": ["audioOnly", "replaceTrack", "mixTrack", "addTrack"],
"default": "audioOnly"
},
"audioFormat": {
"type": "string",
"enum": ["wav", "mp3"]
},
"exportShiftedSubtitle": {
"type": "boolean"
}
},
"required": ["engine", "voice"],
"additionalProperties": false
},
"requestId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Reuse only to retry the same submission without running it twice."
}
},
"required": ["sessionId", "config"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
dubbing.resynthesize
Resynthesize one cue with optional revised text and voice.
- CLI:
smartsub dubbing resynthesize - MCP:
smartsub_dubbing_resynthesize - 属性:修改/执行;异步任务
{
"type": "object",
"properties": {
"sessionId": {
"type": "string",
"minLength": 1
},
"index": {
"type": "integer",
"minimum": 0
},
"text": {
"type": "string"
},
"voiceId": {
"type": "string",
"minLength": 1
},
"config": {
"type": "object",
"properties": {
"engine": {
"anyOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "local"
},
"modelId": {
"type": "string",
"minLength": 1
}
},
"required": ["kind", "modelId"],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "cloud"
},
"providerId": {
"type": "string",
"minLength": 1
}
},
"required": ["kind", "providerId"],
"additionalProperties": false
}
]
},
"voice": {
"type": "string",
"minLength": 1
},
"language": {
"type": "string",
"minLength": 1
},
"globalSpeed": {
"type": "number",
"minimum": 0.5,
"maximum": 2,
"default": 1
},
"cloneQuality": {
"type": "string",
"enum": ["standard", "high"]
},
"localConcurrency": {
"type": "integer",
"minimum": 1,
"maximum": 3
},
"overflow": {
"type": "string",
"enum": ["truncate", "shift"]
},
"overlapMode": {
"type": "string",
"enum": ["shift", "mix"]
},
"background": {
"type": "string",
"enum": ["mute", "duck"],
"default": "mute"
},
"output": {
"type": "string",
"enum": ["audioOnly", "replaceTrack", "mixTrack", "addTrack"],
"default": "audioOnly"
},
"audioFormat": {
"type": "string",
"enum": ["wav", "mp3"]
},
"exportShiftedSubtitle": {
"type": "boolean"
}
},
"required": ["engine", "voice"],
"additionalProperties": false
},
"requestId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Reuse only to retry the same submission without running it twice."
}
},
"required": ["sessionId", "index", "config"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
dubbing.edit
Update cue texts with expected values using the existing session editing rules.
- CLI:
smartsub dubbing edit - MCP:
smartsub_dubbing_edit - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"sessionId": {
"type": "string",
"minLength": 1
},
"edits": {
"type": "array",
"items": {
"type": "object",
"properties": {
"index": {
"type": "integer",
"minimum": 0
},
"startMs": {
"type": "number",
"minimum": 0
},
"endMs": {
"type": "number",
"minimum": 0
},
"baseText": {
"type": "string"
},
"text": {
"type": "string"
}
},
"required": ["index", "startMs", "endMs", "baseText", "text"],
"additionalProperties": false
}
}
},
"required": ["sessionId", "edits"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
dubbing.speaker-voice
Set the voice for a speaker.
- CLI:
smartsub dubbing speaker-voice - MCP:
smartsub_dubbing_speaker_voice - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"sessionId": {
"type": "string",
"minLength": 1
},
"speakerId": {
"type": "integer"
},
"voiceId": {
"type": "string",
"minLength": 1
},
"globalVoiceId": {
"type": "string",
"minLength": 1
},
"config": {
"type": "object",
"properties": {
"engine": {
"anyOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "local"
},
"modelId": {
"type": "string",
"minLength": 1
}
},
"required": ["kind", "modelId"],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "cloud"
},
"providerId": {
"type": "string",
"minLength": 1
}
},
"required": ["kind", "providerId"],
"additionalProperties": false
}
]
},
"voice": {
"type": "string",
"minLength": 1
},
"language": {
"type": "string",
"minLength": 1
},
"globalSpeed": {
"type": "number",
"minimum": 0.5,
"maximum": 2,
"default": 1
},
"cloneQuality": {
"type": "string",
"enum": ["standard", "high"]
},
"localConcurrency": {
"type": "integer",
"minimum": 1,
"maximum": 3
},
"overflow": {
"type": "string",
"enum": ["truncate", "shift"]
},
"overlapMode": {
"type": "string",
"enum": ["shift", "mix"]
},
"background": {
"type": "string",
"enum": ["mute", "duck"],
"default": "mute"
},
"output": {
"type": "string",
"enum": ["audioOnly", "replaceTrack", "mixTrack", "addTrack"],
"default": "audioOnly"
},
"audioFormat": {
"type": "string",
"enum": ["wav", "mp3"]
},
"exportShiftedSubtitle": {
"type": "boolean"
}
},
"required": ["engine", "voice"],
"additionalProperties": false
}
},
"required": ["sessionId", "speakerId", "voiceId", "globalVoiceId"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
dubbing.speaker-settings
Set per-speaker synthesis settings.
- CLI:
smartsub dubbing speaker-settings - MCP:
smartsub_dubbing_speaker_settings - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"sessionId": {
"type": "string",
"minLength": 1
},
"speakerId": {
"type": "integer"
},
"settings": {
"type": "object",
"properties": {
"speed": {
"type": "number",
"minimum": 0.5,
"maximum": 2
},
"pitch": {
"type": "number",
"minimum": -12,
"maximum": 12
}
},
"required": ["speed", "pitch"],
"additionalProperties": false
},
"config": {
"type": "object",
"properties": {
"engine": {
"anyOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "local"
},
"modelId": {
"type": "string",
"minLength": 1
}
},
"required": ["kind", "modelId"],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "cloud"
},
"providerId": {
"type": "string",
"minLength": 1
}
},
"required": ["kind", "providerId"],
"additionalProperties": false
}
]
},
"voice": {
"type": "string",
"minLength": 1
},
"language": {
"type": "string",
"minLength": 1
},
"globalSpeed": {
"type": "number",
"minimum": 0.5,
"maximum": 2,
"default": 1
},
"cloneQuality": {
"type": "string",
"enum": ["standard", "high"]
},
"localConcurrency": {
"type": "integer",
"minimum": 1,
"maximum": 3
},
"overflow": {
"type": "string",
"enum": ["truncate", "shift"]
},
"overlapMode": {
"type": "string",
"enum": ["shift", "mix"]
},
"background": {
"type": "string",
"enum": ["mute", "duck"],
"default": "mute"
},
"output": {
"type": "string",
"enum": ["audioOnly", "replaceTrack", "mixTrack", "addTrack"],
"default": "audioOnly"
},
"audioFormat": {
"type": "string",
"enum": ["wav", "mp3"]
},
"exportShiftedSubtitle": {
"type": "boolean"
}
},
"required": ["engine", "voice"],
"additionalProperties": false
}
},
"required": ["sessionId", "speakerId", "settings"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
dubbing.cue-voice
Set an individual cue voice.
- CLI:
smartsub dubbing cue-voice - MCP:
smartsub_dubbing_cue_voice - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"sessionId": {
"type": "string",
"minLength": 1
},
"index": {
"type": "integer",
"minimum": 0
},
"voiceId": {
"type": "string",
"minLength": 1
}
},
"required": ["sessionId", "index", "voiceId"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
dubbing.media
Set the video associated with a dubbing session.
- CLI:
smartsub dubbing media - MCP:
smartsub_dubbing_media - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"sessionId": {
"type": "string",
"minLength": 1
},
"videoPath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
}
},
"required": ["sessionId", "videoPath"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
dubbing.borrow-silence
Extend a cue into available following silence.
- CLI:
smartsub dubbing borrow-silence - MCP:
smartsub_dubbing_borrow_silence - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"sessionId": {
"type": "string",
"minLength": 1
},
"index": {
"type": "integer",
"minimum": 0
},
"config": {
"type": "object",
"properties": {
"engine": {
"anyOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "local"
},
"modelId": {
"type": "string",
"minLength": 1
}
},
"required": ["kind", "modelId"],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "cloud"
},
"providerId": {
"type": "string",
"minLength": 1
}
},
"required": ["kind", "providerId"],
"additionalProperties": false
}
]
},
"voice": {
"type": "string",
"minLength": 1
},
"language": {
"type": "string",
"minLength": 1
},
"globalSpeed": {
"type": "number",
"minimum": 0.5,
"maximum": 2,
"default": 1
},
"cloneQuality": {
"type": "string",
"enum": ["standard", "high"]
},
"localConcurrency": {
"type": "integer",
"minimum": 1,
"maximum": 3
},
"overflow": {
"type": "string",
"enum": ["truncate", "shift"]
},
"overlapMode": {
"type": "string",
"enum": ["shift", "mix"]
},
"background": {
"type": "string",
"enum": ["mute", "duck"],
"default": "mute"
},
"output": {
"type": "string",
"enum": ["audioOnly", "replaceTrack", "mixTrack", "addTrack"],
"default": "audioOnly"
},
"audioFormat": {
"type": "string",
"enum": ["wav", "mp3"]
},
"exportShiftedSubtitle": {
"type": "boolean"
}
},
"required": ["engine", "voice"],
"additionalProperties": false
}
},
"required": ["sessionId", "index", "config"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
voices.list
List cloned voices.
- CLI:
smartsub voices list - MCP:
smartsub_voices_list - 属性:读取;直接返回
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
voices.analyze
Analyze reference audio before cloning.
- CLI:
smartsub voices analyze - MCP:
smartsub_voices_analyze - 属性:修改/执行;异步任务
{
"type": "object",
"properties": {
"sourcePath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
},
"engine": {
"type": "string",
"enum": ["zipvoice", "volcengine", "elevenlabs"]
}
},
"required": ["sourcePath", "engine"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
voices.inspect
Inspect a candidate reference range.
- CLI:
smartsub voices inspect - MCP:
smartsub_voices_inspect - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"analysisId": {
"type": "string",
"minLength": 1
},
"startMs": {
"type": "number",
"minimum": 0
},
"endMs": {
"type": "number",
"exclusiveMinimum": 0
},
"engine": {
"type": "string",
"enum": ["zipvoice", "volcengine", "elevenlabs"]
}
},
"required": ["analysisId", "startMs", "endMs", "engine"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
voices.denoise
Create denoised reference audio.
- CLI:
smartsub voices denoise - MCP:
smartsub_voices_denoise - 属性:修改/执行;异步任务
{
"type": "object",
"properties": {
"analysisId": {
"type": "string",
"minLength": 1
},
"startMs": {
"type": "number",
"minimum": 0
},
"endMs": {
"type": "number",
"exclusiveMinimum": 0
}
},
"required": ["analysisId", "startMs", "endMs"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
voices.transcribe
Transcribe a reference audio range.
- CLI:
smartsub voices transcribe - MCP:
smartsub_voices_transcribe - 属性:修改/执行;异步任务
{
"type": "object",
"properties": {
"analysisId": {
"type": "string",
"minLength": 1
},
"startMs": {
"type": "number",
"minimum": 0
},
"endMs": {
"type": "number",
"exclusiveMinimum": 0
},
"language": {
"type": "string",
"enum": ["zh", "en"]
}
},
"required": ["analysisId", "startMs", "endMs", "language"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
voices.create
Create a cloned voice from a previously analyzed range.
- CLI:
smartsub voices create - MCP:
smartsub_voices_create - 属性:修改/执行;异步任务
{
"type": "object",
"properties": {
"analysisId": {
"type": "string",
"minLength": 1
},
"startMs": {
"type": "number",
"minimum": 0
},
"endMs": {
"type": "number",
"exclusiveMinimum": 0
},
"engine": {
"type": "string",
"enum": ["zipvoice", "volcengine", "elevenlabs"]
},
"language": {
"type": "string",
"enum": ["zh", "en"]
},
"name": {
"type": "string",
"minLength": 1
},
"refText": {
"type": "string",
"minLength": 1
},
"localDenoise": {
"type": "boolean"
},
"volc": {
"type": "object",
"additionalProperties": {},
"description": "Advanced SmartSub configuration. See the linked operation reference for the corresponding application type."
},
"eleven": {
"type": "object",
"additionalProperties": {},
"description": "Advanced SmartSub configuration. See the linked operation reference for the corresponding application type."
},
"requestId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Reuse only to retry the same submission without running it twice."
}
},
"required": [
"analysisId",
"startMs",
"endMs",
"engine",
"language",
"name",
"refText"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
voices.rename
Rename a cloned voice.
- CLI:
smartsub voices rename - MCP:
smartsub_voices_rename - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
}
},
"required": ["id", "name"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
voices.delete
Remove a cloned voice. removeCloud explicitly opts into deleting the remote voice.
- CLI:
smartsub voices delete - MCP:
smartsub_voices_delete - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"removeCloud": {
"type": "boolean",
"default": false
}
},
"required": ["id"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
voices.cloud
List voices from a cloud provider.
- CLI:
smartsub voices cloud - MCP:
smartsub_voices_cloud - 属性:读取;直接返回
{
"type": "object",
"properties": {
"providerId": {
"type": "string",
"minLength": 1
}
},
"required": ["providerId"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
voices.link
Link an existing cloud voice.
- CLI:
smartsub voices link - MCP:
smartsub_voices_link - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"engine": {
"type": "string",
"enum": ["volcengine", "elevenlabs"]
},
"providerId": {
"type": "string",
"minLength": 1
},
"speakerId": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"language": {
"type": "string",
"enum": ["zh", "en"]
}
},
"required": ["engine", "providerId", "speakerId", "language"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
voices.status
Refresh cloud clone training status.
- CLI:
smartsub voices status - MCP:
smartsub_voices_status - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": ["id"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
voices.retrain
Retrain a cloud voice.
- CLI:
smartsub voices retrain - MCP:
smartsub_voices_retrain - 属性:修改/执行;异步任务
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"denoise": {
"type": "boolean"
},
"mss": {
"type": "boolean"
}
},
"required": ["id"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
voices.sample
Regenerate a cloned voice sample.
- CLI:
smartsub voices sample - MCP:
smartsub_voices_sample - 属性:修改/执行;异步任务
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": ["id"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
voices.export
Export a voice package to a new explicit path.
- CLI:
smartsub voices export - MCP:
smartsub_voices_export - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"outputPath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
}
},
"required": ["id", "outputPath"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
voices.import
Import a voice package from a local file.
- CLI:
smartsub voices import - MCP:
smartsub_voices_import - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"sourcePath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
}
},
"required": ["sourcePath"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
downloads.engines
Download engine installation status without a network update check.
- CLI:
smartsub downloads engines - MCP:
smartsub_downloads_engines - 属性:读取;直接返回
{
"type": "object",
"properties": {
"source": {
"type": "string",
"minLength": 1,
"default": "github"
},
"fetchRemote": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
downloads.install
Install or update yt-dlp or lux.
- CLI:
smartsub downloads install - MCP:
smartsub_downloads_install - 属性:修改/执行;异步任务
{
"type": "object",
"properties": {
"engine": {
"type": "string",
"enum": ["yt-dlp", "lux"]
},
"source": {
"type": "string",
"minLength": 1,
"default": "github"
},
"requestId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Reuse only to retry the same submission without running it twice."
}
},
"required": ["engine"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
downloads.check
Inspect video links and available formats.
- CLI:
smartsub downloads check - MCP:
smartsub_downloads_check - 属性:修改/执行;异步任务
{
"type": "object",
"properties": {
"urls": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
"engine": {
"type": "string",
"enum": ["auto", "yt-dlp", "lux"],
"default": "auto"
},
"requestId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Reuse only to retry the same submission without running it twice."
}
},
"required": ["urls"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
downloads.start
Download links; config uses StartDownloadPayload. Returns a job ID.
- CLI:
smartsub downloads start - MCP:
smartsub_downloads_start - 属性:修改/执行;异步任务
{
"type": "object",
"properties": {
"config": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1
},
"savePath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
},
"quality": {
"type": "string",
"enum": ["best", "1080p", "720p"],
"default": "best"
},
"engine": {
"type": "string",
"enum": ["auto", "yt-dlp", "lux"],
"default": "auto"
},
"writeSubs": {
"type": "boolean",
"default": true
},
"concurrency": {
"type": "integer",
"minimum": 1,
"maximum": 5
},
"entries": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri"
},
"expandPlaylist": {
"type": "boolean"
},
"meta": {
"type": "object",
"additionalProperties": {}
}
},
"required": ["url"],
"additionalProperties": false
},
"minItems": 1
},
"autoChain": {
"type": "object",
"properties": {
"recipeId": {
"type": "string",
"minLength": 1
},
"cloudUploadConsent": {
"type": "boolean"
},
"configKey": {
"type": "string",
"minLength": 1
}
},
"required": ["recipeId", "configKey"],
"additionalProperties": false
}
},
"required": ["name", "savePath", "entries"],
"additionalProperties": false
},
"requestId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Reuse only to retry the same submission without running it twice."
}
},
"required": ["config"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
downloads.resume
Resume a download batch.
- CLI:
smartsub downloads resume - MCP:
smartsub_downloads_resume - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"workItemId": {
"type": "string",
"minLength": 1
}
},
"required": ["workItemId"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
downloads.retry
Retry one download entry.
- CLI:
smartsub downloads retry - MCP:
smartsub_downloads_retry - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"workItemId": {
"type": "string",
"minLength": 1
},
"entryId": {
"type": "string",
"minLength": 1
},
"updateFirst": {
"type": "boolean",
"default": false
}
},
"required": ["workItemId", "entryId"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
downloads.cookies
List Cookie profile metadata; cookie contents are never returned.
- CLI:
smartsub downloads cookies - MCP:
smartsub_downloads_cookies - 属性:读取;直接返回
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
downloads.import-cookies
Import a Netscape cookie file for a configured site.
- CLI:
smartsub downloads import-cookies - MCP:
smartsub_downloads_import_cookies - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"sourcePath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
},
"customDef": {
"type": "object",
"additionalProperties": {},
"description": "Advanced SmartSub configuration. See the linked operation reference for the corresponding application type."
}
},
"required": ["id", "sourcePath"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
downloads.delete-cookies
Delete a cookie profile.
- CLI:
smartsub downloads delete-cookies - MCP:
smartsub_downloads_delete_cookies - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": ["id"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
glossaries.list
List glossary collections and entries.
- CLI:
smartsub glossaries list - MCP:
smartsub_glossaries_list - 属性:读取;直接返回
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
glossaries.create
Create a glossary.
- CLI:
smartsub glossaries create - MCP:
smartsub_glossaries_create - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1
},
"description": {
"type": "string"
}
},
"required": ["name"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
glossaries.update
Patch a glossary.
- CLI:
smartsub glossaries update - MCP:
smartsub_glossaries_update - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"patch": {
"type": "object",
"additionalProperties": {}
}
},
"required": ["id", "patch"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
glossaries.delete
Delete a glossary.
- CLI:
smartsub glossaries delete - MCP:
smartsub_glossaries_delete - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": ["id"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
glossaries.save-entry
Create or update a glossary entry.
- CLI:
smartsub glossaries save-entry - MCP:
smartsub_glossaries_save_entry - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"glossaryId": {
"type": "string",
"minLength": 1
},
"entry": {
"type": "object",
"additionalProperties": {}
}
},
"required": ["glossaryId", "entry"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
glossaries.delete-entry
Remove one glossary entry.
- CLI:
smartsub glossaries delete-entry - MCP:
smartsub_glossaries_delete_entry - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"glossaryId": {
"type": "string",
"minLength": 1
},
"entryId": {
"type": "string",
"minLength": 1
}
},
"required": ["glossaryId", "entryId"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
glossaries.import
Import CSV/TXT entries.
- CLI:
smartsub glossaries import - MCP:
smartsub_glossaries_import - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"glossaryId": {
"type": "string",
"minLength": 1
},
"sourcePath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
}
},
"required": ["glossaryId", "sourcePath"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
glossaries.export
Export a glossary to a new file.
- CLI:
smartsub glossaries export - MCP:
smartsub_glossaries_export - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"glossaryId": {
"type": "string",
"minLength": 1
},
"format": {
"type": "string",
"enum": ["csv", "txt"]
},
"outputPath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
}
},
"required": ["glossaryId", "format", "outputPath"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
recipes.list
List saved workflow recipes.
- CLI:
smartsub recipes list - MCP:
smartsub_recipes_list - 属性:读取;直接返回
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
recipes.save
Save a workflow recipe: name,goals,accepts,config.
- CLI:
smartsub recipes save - MCP:
smartsub_recipes_save - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"recipe": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"goals": {
"type": "object",
"properties": {
"translate": {
"type": "boolean"
},
"dub": {
"type": "boolean"
},
"video": {
"type": "boolean"
}
},
"required": ["translate", "dub", "video"],
"additionalProperties": false
},
"accepts": {
"type": "string",
"enum": ["media", "subtitle"]
},
"config": {
"type": "object",
"properties": {
"dub": {
"type": "object",
"properties": {
"engine": {
"anyOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "local"
},
"modelId": {
"type": "string",
"minLength": 1
}
},
"required": ["kind", "modelId"],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "cloud"
},
"providerId": {
"type": "string",
"minLength": 1
}
},
"required": ["kind", "providerId"],
"additionalProperties": false
}
]
},
"voice": {
"type": "string",
"minLength": 1
},
"language": {
"type": "string",
"minLength": 1
},
"globalSpeed": {
"type": "number",
"minimum": 0.5,
"maximum": 2,
"default": 1
},
"cloneQuality": {
"type": "string",
"enum": ["standard", "high"]
},
"localConcurrency": {
"type": "integer",
"minimum": 1,
"maximum": 3
},
"overflow": {
"type": "string",
"enum": ["truncate", "shift"]
},
"overlapMode": {
"type": "string",
"enum": ["shift", "mix"]
}
},
"required": ["engine", "voice"],
"additionalProperties": false,
"description": "Opt-in dubbing. Use models.list for local TTS or providers.list(kind=\"tts\") for cloud; choose a compatible voice with tts.voices or voices.list. Chat and ASR services cannot provide TTS."
},
"compose": {
"type": "object",
"properties": {
"subtitle": {
"type": "string",
"enum": ["hard", "soft", "none"]
},
"style": {
"type": "object",
"properties": {
"fontName": {
"type": "string",
"minLength": 1
},
"fontSize": {
"type": "number",
"minimum": 10,
"maximum": 72
},
"primaryColor": {
"type": "string",
"minLength": 1
},
"outlineColor": {
"type": "string",
"minLength": 1
},
"backColor": {
"type": "string",
"minLength": 1
},
"backOpacity": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"bold": {
"type": "boolean"
},
"italic": {
"type": "boolean"
},
"underline": {
"type": "boolean"
},
"borderStyle": {
"type": "number",
"enum": [1, 3]
},
"outline": {
"type": "number",
"minimum": 0,
"maximum": 10
},
"shadow": {
"type": "number",
"minimum": 0,
"maximum": 10
},
"alignment": {
"type": "integer",
"minimum": 1,
"maximum": 9
},
"marginL": {
"type": "number",
"minimum": 0
},
"marginR": {
"type": "number",
"minimum": 0
},
"marginV": {
"type": "number",
"minimum": 0
},
"positionY": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"secondLineColor": {
"type": "string",
"minLength": 1
},
"highlightTerms": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"highlightColor": {
"type": "string",
"minLength": 1
},
"glow": {
"type": "number",
"minimum": 0
},
"glowColor": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": true
},
"styleId": {
"type": "string",
"minLength": 1
},
"styleName": {
"type": "string",
"minLength": 1
},
"videoQuality": {
"type": "string",
"enum": ["original", "high", "standard"]
},
"encoderMode": {
"type": "string",
"enum": ["cpu", "hardware"]
}
},
"required": ["subtitle"],
"additionalProperties": false
},
"gates": {
"type": "object",
"properties": {
"subtitle": {
"type": "string",
"enum": ["auto", "manual"],
"default": "auto"
},
"dubbing": {
"type": "string",
"enum": ["auto", "manual"],
"default": "auto"
}
},
"additionalProperties": false
},
"asrProviderId": {
"type": "string",
"minLength": 1,
"description": "Cloud ASR provider ID from providers.list(kind=\"asr\"). Requires engine=\"cloud\" and a model in that provider's models list. Independent from translation/refinement/chat."
},
"translateProvider": {
"type": "string",
"minLength": 1,
"description": "Translation provider ID from providers.list(kind=\"translation\"). Required for translate and translating pipelines; \"-1\" is not a valid translation selection."
},
"useEmbeddedSubtitles": {
"type": "boolean"
},
"translateContent": {
"type": "string",
"enum": [
"onlyTranslate",
"sourceAndTranslate",
"translateAndSource"
]
},
"subtitleOutputFormats": {
"type": "array",
"items": {
"type": "string",
"enum": ["srt", "vtt", "ass", "lrc", "txt"]
},
"minItems": 1
},
"subtitleLayout": {
"type": "string",
"enum": ["original", "two-line"]
},
"subtitleLineWidth": {
"type": "number",
"exclusiveMinimum": 0
},
"maxSubtitleChars": {
"type": "number",
"minimum": -1
},
"subtitleMaxDuration": {
"type": "number",
"exclusiveMinimum": 0
},
"subtitleMaxGap": {
"type": "number",
"minimum": 0
},
"preserveSpeechPauses": {
"type": "boolean",
"description": "Preserve speech gaps during subtitle segmentation. Does not require an AI provider by itself."
},
"aiSegmentation": {
"type": "boolean",
"description": "Opt-in AI semantic segmentation of ASR output. Defaults to false for automation. Requires a configured AI refineProvider; do not enable just to generate original SRT."
},
"aiCorrection": {
"type": "boolean",
"description": "Opt-in AI correction of ASR text. Defaults to false for automation. Requires a configured AI refineProvider."
},
"refineProvider": {
"type": "string",
"minLength": 1,
"description": "AI provider ID from providers.list(kind=\"translation\") with isAi=true and configured=true. Required for AI segmentation/correction. Omitted or \"follow-translation\" uses the task translation provider. The in-app assistant can use its current AI service when omitted and no task service resolves. Explicit selections are never replaced."
},
"subtitleTranslationStyle": {
"type": "string",
"enum": ["neutral", "conversational"],
"description": "Defaults to neutral. Conversational style requires a configured AI translation provider, including translate-only tasks."
},
"speakerDiarization": {
"type": "boolean",
"description": "Opt-in speaker identification for media. Requires installed speaker models and Sherpa runtime; inspect models.list before enabling."
},
"speakerDiarizationCount": {
"type": "integer",
"minimum": 0,
"maximum": 8
},
"speakerDiarizationEmbedInSubtitle": {
"type": "boolean"
},
"manuscriptPath": {
"type": "string",
"minLength": 1,
"description": "Absolute local file or directory path on the SmartSub host."
}
},
"additionalProperties": true,
"description": "Task overrides. Optional AI refinement, speaker identification, dubbing, composition and manuscript inputs are disabled unless supplied here. Engine/model/provider preferences are inherited from settings.get.defaults. Further IFormData fields are accepted for compatibility; see types/types.ts."
}
},
"required": ["name", "goals", "accepts"],
"additionalProperties": false
}
},
"required": ["recipe"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
recipes.delete
Delete a saved recipe.
- CLI:
smartsub recipes delete - MCP:
smartsub_recipes_delete - 属性:修改/执行;直接返回
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": ["id"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}