← sync. labsCONTENT HISTORY

Update to sync. labs

Snapshot Nov 3, 2026 · 18:14 UTC · version 2.0.4

Collection source: downloaded plugin package.

WHAT CHANGED

First saved snapshot

No earlier snapshot is available to establish a change.

Save sync. labs and check future changes in Following.

Up to 10 plugins free · no card required.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "description": "Change or remove a few spoken words in a single-speaker video with sync. labs, keeping the speaker's own voice and re-syncing the lips. Use for fixing a misspoken word, a wrong name, number, price or date, a mispronunciation, or cutting a filler word or phrase without reshooting. Not for replacing a whole script (lipsync-video with a script), translation (translate-and-dub) or switching to a different voice.",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 203
    }
  ],
  "name": "edit-dialogue",
  "skill_md_contents": "---\nname: edit-dialogue\ndescription: Change or remove a few spoken words in a single-speaker video with sync. labs, keeping the speaker's own voice and re-syncing the lips. Use for fixing a misspoken word, a wrong name, number, price or date, a mispronunciation, or cutting a filler word or phrase without reshooting. Not for replacing a whole script (lipsync-video with a script), translation (translate-and-dub) or switching to a different voice.\n---\n\n# Fix spoken words\n\nDelivers one MP4 where only the agreed words change. Everything else keeps the original picture and voice.\n\n## Inputs\n\n- **Video**: a single-speaker video, as a file in this conversation, a public URL or a Sync video asset ID.\n- **The fix**: which words to change or remove, and what to say instead. Never guess the replacement words.\n\n## Tools\n\n| Step | Tool |\n| --- | --- |\n| Check support | `get-dialogue-options` |\n| Create the project | `projects_create` |\n| Save the video | `upload-media`, `assets_create`, `upload-dialogue-source` |\n| Transcribe | `create-dialogue-transcription`, `get-dialogue-transcription` |\n| Preview the new audio | `create-dialogue-preview`, `get-dialogue-preview` |\n| Quote | `estimate-dialogue-video` |\n| Create | `create-dialogue-video` |\n| Wait for the result | `generate_get-generation` |\n\n## Steps\n\n1. **Support.** Call `get-dialogue-options`. If Edit Dialogue isn't available, say so and stop. Note whether it advertises `keyedPreview`.\n2. **Project.** Call `projects_create` with a new random UUID as `id`, a short `name` and `defaultWorkflow: \"edit_dialogue\"`. Pass the returned `projectId` with `projectIntent: \"explicit\"` in every later call.\n3. **Save the video.** For a file, use `upload-media` with `mediaType: \"video\"`. For a URL, use `assets_create` with `type: \"VIDEO\"` and the project.\n4. **Transcribe.** Call `create-dialogue-transcription`, then `get-dialogue-transcription` with the returned `id` until it completes. If the API rejects the video's storage, call `upload-dialogue-source` and use its new asset ID for every later step.\n5. **Agree the edits.** Show the transcript lines around the fix. Turn the request into edits that use the transcript's word IDs:\n   - `{ \"kind\": \"change\", \"wordId\": \"w35\", \"replacement\": \"Mia\" }`, adding `\"pronunciation\": \"Meeah\"` only for a name the voice might say wrong;\n   - `{ \"kind\": \"remove\", \"wordIds\": [\"w12\", \"w13\"] }`.\n\n   Confirm the edits, and confirm the user has permission to use this speaker's voice.\n6. **Preview.** Call `create-dialogue-preview` with the edits and `transcriptionId`, plus a new `idempotencyKey` if `keyedPreview` is advertised. Poll `get-dialogue-preview` until it completes. If some edits failed, say which ones; don't present it as fully successful.\n7. **Quote.** Call `estimate-dialogue-video` with the completed preview's ID as `dialogueEditId` and `model: \"sync-3\"`. Show the estimate and wait for approval of the preview and the cost.\n8. **Create.** Call `create-dialogue-video` once with the same `dialogueEditId`, `model`, project and a new `idempotencyKey`. On a lost response, retry once with the same key and inputs.\n9. **Wait and deliver.** Poll `generate_get-generation` with the returned `id` and `wait: true`. Give the exact `outputUrl`, unchanged.\n\n## Limits\n\n- One speaker only. If several people talk, say so before transcribing.\n- Targeted words only. If the user wants a whole new script, explain that this keeps the original recording, and offer lipsync-video with a script and a chosen voice instead.\n- Never split a new script into many word edits to get around this limit.\n"
}

SHA-256 of public snapshot: 73960b99ed831d046ef500c9203e40d5eebf936949f81c16e256412a84512019