Personalized Video Messaging

Personalized Video Messaging

Personalized video messaging uses AI lip sync to create unique video content for individual recipients at scale. By combining text-to-speech with Sync’s lip sync API, a single recorded video becomes thousands of personalized messages — each with the speaker appearing to address the recipient by name. This approach leads to higher engagement, better conversion rates, and a more personal connection compared to generic video messages.

Follow these steps to run the personalized video messaging example:

1

Clone Github Repository

Clone the sync-examples repository.

$git clone https://github.com/synchronicity-labs/sync-examples.git
$cd sync-examples/personalized-video-messsging/python
2

Set Up Environment

Create a virtual environment and install the required dependencies:

$python -m venv venv
$source venv/bin/activate
$pip install -r requirements.txt
3

Configure API Keys

You will need Sync_API_KEY and ELEVEN_LABS_API_KEY to run the example. Update constants.py file with your own API keys:

  • SYNC_API_KEY: Your API key for Sync
  • ELEVEN_LABS_API_KEY: Your API key for ElevenLabs (used for voice generation).

Ensure the file is saved after adding your keys.

4

Prepare Input Data (Optional)

The repository includes a sample input file example.csv for quickstart. You can modify it with your own inputs if desired. Each row typically represents one recipient.

The input file should have the following columns:

  • video: URL of the video to be personalized.
  • text: Text to be personalized in the video.
  • segment_start: start time of the video segment to be personalized.
  • segment_end: end time of the video segment to be personalized.
  • output_format: output format of the video.
  • sync_mode: mode to sync text to video segment if lengths don’t match. options
  • voice_id: elevenlabs voice id to use for the video. If empty, audio from the video will be cloned.
  • lipsync_model: sync.so lipsync model to use for the video. default: lipsync-2
  • tts_model: elevenlabs text to speech model. default: eleven_multilingual_v2
5

Generate Videos

Execute the Python script:

$python main.py

This command will start the process of generating personalized videos based on the API keys you configured and the data in example.csv.

6

Check Results

On completion, the script will save the results to outputs.csv within the same directory. This file will contain output urls corresponding to each input.

That’s it! You’ve now created personalized video messages for your customers.

Frequently Asked Questions

Sync’s Batch API handles up to 500 video generations per request. You can submit a CSV of recipients and the system processes them in parallel, returning output URLs for each completed video. For volumes above 500, submit multiple batch requests.

The example project includes built-in ElevenLabs integration for text-to-speech. However, any TTS provider that outputs standard WAV or MP3 audio files works with Sync’s lip sync API — simply pass the generated audio URL as the audio_url parameter.

Cost depends on the lip sync model and video duration. Use the /v2/generate/estimate-cost endpoint to get exact pricing before submitting a batch. lipsync-2 is the most cost-effective option for high-volume personalized messaging.

  • Quickstart — get up and running with your first Sync API call
  • Python SDK — use the official Python SDK for streamlined API integration
  • Webhooks — receive real-time notifications when your video generations complete