| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- {
- "name": "douyin-video-transcript",
- "displayName": "抖音视频逐字稿转写",
- "description": "输入视频文件、视频 URL 或人工文案,通过 provider 抽象输出统一 transcript.json/txt,供抖音口播爆款拆解使用。",
- "category": "douyin",
- "version": "0.2.2",
- "type": "local-script",
- "execution": {
- "kind": "command",
- "command": "node",
- "args": [
- "scripts/tools/openclaw-tool-runner.js",
- "--tool",
- "douyin-video-transcriber.js",
- "--result-prefix",
- "DOUYIN_TRANSCRIPT_RESULT",
- "--",
- "--provider",
- "{{provider}}",
- "--order-id",
- "{{orderId}}",
- "--aweme-id",
- "{{awemeId}}",
- "--video-url",
- "{{videoUrl}}",
- "--douyin-url",
- "{{douyinUrl}}",
- "--media-url",
- "{{mediaUrl}}",
- "--file",
- "{{file}}",
- "--text",
- "{{text}}",
- "--transcript",
- "{{transcript}}",
- "--output",
- "{{output}}",
- "--download-media",
- "{{downloadMedia}}",
- "--extract-audio",
- "{{extractAudio}}",
- "--max-download-mb",
- "{{maxDownloadMb}}",
- "--download-timeout-ms",
- "{{downloadTimeoutMs}}",
- "--download-idle-timeout-ms",
- "{{downloadIdleTimeoutMs}}",
- "--language",
- "{{language}}",
- "--model",
- "{{model}}",
- "--timestamps",
- "{{timestamps}}",
- "--duration-ms",
- "{{durationMs}}",
- "--role-type",
- "{{roleType}}",
- "--role-num",
- "{{roleNum}}",
- "--pd",
- "{{pd}}",
- "--poll-interval-ms",
- "{{pollIntervalMs}}",
- "--max-polls",
- "{{maxPolls}}",
- "--ffmpeg-path",
- "{{ffmpegPath}}",
- "--ffprobe-path",
- "{{ffprobePath}}",
- "--gateway-base-url",
- "{{gatewayBaseUrl}}",
- "--gateway-max-duration-ms",
- "{{gatewayMaxDurationMs}}"
- ],
- "cwd": "{{workspaceRoot}}",
- "outputParser": { "type": "stdout-prefix-json", "prefix": "DOUYIN_TRANSCRIPT_RESULT=" },
- "exitCodes": { "0": "ok | media_resolved | needs_transcription | needs_provider_config | needs_media_processing | transcription_pending | transcription_failed", "1": "error" }
- },
- "parameters": {
- "type": "object",
- "required": ["provider", "output"],
- "properties": {
- "provider": { "type": "string", "enum": ["manual", "openai", "iflytek-ist", "iflytek-gateway", "iflytek-ast", "none", "volcengine"], "default": "none" },
- "orderId": { "type": "string", "description": "已有网关转写订单 ID;provider=iflytek-gateway 时可跳过上传直接查询" },
- "awemeId": { "type": "string" },
- "videoUrl": { "type": "string" },
- "douyinUrl": { "type": "string", "description": "抖音分享链接,脚本会先解析视频详情并下载真实媒体" },
- "mediaUrl": { "type": "string", "description": "已解析出的真实音频/视频媒体 URL" },
- "file": { "type": "string" },
- "text": { "type": "string" },
- "transcript": { "type": "string" },
- "output": { "type": "string" },
- "downloadMedia": { "type": "boolean", "default": false, "description": "provider=none 时只解析/下载媒体,不调用 ASR" },
- "extractAudio": { "type": "boolean", "default": false, "description": "强制用 ffmpeg 从视频中抽取 16k 单声道 WAV" },
- "maxDownloadMb": { "type": "integer", "default": 200, "description": "媒体下载大小上限,单位 MB" },
- "downloadTimeoutMs": { "type": "integer", "default": 120000 },
- "downloadIdleTimeoutMs": { "type": "integer", "default": 30000 },
- "language": { "type": "string", "default": "zh" },
- "model": { "type": "string", "default": "gpt-4o-mini-transcribe" },
- "timestamps": { "type": "boolean", "default": false },
- "durationMs": { "type": "integer", "description": "讯飞 IST 必填,真实音频时长毫秒数" },
- "roleType": { "type": "integer", "default": 1, "description": "讯飞 IST 说话人分离:0=关闭,1=通用角色分离,3=声纹角色分离" },
- "roleNum": { "type": "integer", "default": 0, "description": "讯飞 IST 说话人数量:0=盲分,1-10=已知人数" },
- "pd": { "type": "string", "default": "com", "description": "讯飞 IST 应用领域,默认通用 com" },
- "pollIntervalMs": { "type": "integer", "default": 4000 },
- "maxPolls": { "type": "integer", "default": 30 },
- "ffmpegPath": { "type": "string", "default": "ffmpeg" },
- "ffprobePath": { "type": "string", "default": "ffprobe" },
- "gatewayBaseUrl": { "type": "string", "default": "https://server.fmode.cn/api/apig/transcription" },
- "gatewayMaxDurationMs": {
- "type": "integer",
- "default": 480000,
- "description": "iflytek-gateway 单次转写时长上限,超过时不上传,返回 needs_media_processing。"
- }
- }
- },
- "output": {
- "type": "object",
- "properties": {
- "status": { "type": "string" },
- "provider": { "type": "string" },
- "outputDir": { "type": "string" },
- "files": { "type": "array" },
- "orderId": { "type": "string" },
- "awemeId": { "type": "string" },
- "sourceFile": { "type": "string" },
- "audioFile": { "type": "string" },
- "mediaUrl": { "type": "string" },
- "sourceKind": { "type": "string" },
- "durationMs": { "type": "integer" },
- "textLength": { "type": "integer" },
- "segmentCount": { "type": "integer" },
- "warningCount": { "type": "integer" }
- }
- },
- "deployment": {
- "toolInstallPaths": [
- "~/.openclaw/tools/douyin-video-transcriber.js",
- "~/.openclaw/workspace/scripts/tools/douyin-video-transcriber.js",
- "~/.openclaw/workspace/scripts/tools/openclaw-tool-runner.js"
- ]
- }
- }
|