Skip to content

After a project finishes creation (status DONE), Shuffll automatically begins enhancement. This is the post-production stage that turns the raw assembled video into a polished, branded output — no API trigger is needed.

What enhancement does

  • Branding — applies the workspace logo, colour palette, and fonts to all scenes
  • Subtitles — generates accurate captions from the voiceover audio
  • Audio cleanup — reduces background noise and balances voiceover levels
  • Timing and pacing — trims pauses, adjusts clip lengths, and aligns transitions

Enhancement runs in parallel across several tasks. The percentages field reflects combined progress across all of them.

Polling enhancement status

A 202 response means enhancement is still running. A 200 response with isDone: true means it is complete and the project is ready to export.

curl "https://api.shuffll.com/api/v1/auth/project/6947b539cc95ea68854bb523/edit/status/enhance" \
  -H "x-api-key: YOUR_API_KEY"

In progress (HTTP 202):

{ "percentages": 60, "isDone": false }

Complete (HTTP 200):

{ "percentages": 100, "isDone": true }

Recommended polling interval: every 5–10 seconds.

Skipping manual polling

Set toAutoEnhance: true when creating a project to let enhancement start and complete without any polling. Combine with toAutoExport: true and a webhook URL to receive a single notification when the final video is ready.

Subtitle customisation

Enhancement generates subtitles automatically. You can customise their appearance using customTemplate.preConfigs.subtitles.styles:

"preConfigs": {
  "subtitles": {
    "styles": {
      "normal": {
        "fontSize": 36,
        "fontFamily": "Inter",
        "color": "#FFFFFF"
      },
      "highlight": {
        "color": "#FFD700"
      }
    }
  }
}

The normal style applies to all subtitle text. The highlight style is applied to the currently spoken word (karaoke-style highlighting).

Per-scene transcription improvements

If a scene contains unusual brand names or technical terms that the speech engine may mistranscribe, use wordBoost and customSpelling on the relevant scene:

"scenes": [
  {
    "id": "scene_001",
    "wordBoost": ["Shuffll", "GPT-4o"],
    "customSpelling": [
      { "from": ["shufle", "shuffle", "shufll"], "to": "Shuffll" }
    ]
  }
]
  • wordBoost — hints to the speech engine that these words are likely to appear
  • customSpelling — corrects known mistranscriptions in the final subtitle output