> For the documentation index, fetch https://sync.so/docs/llms.txt. Append .md to a page URL for Markdown. Documentation-search MCP: https://sync.so/docs/_mcp/server.

# Personalized Video Messaging

> Create personalized video messages at scale using AI lip sync. Automate sales outreach and marketing with the sync. labs API and ElevenLabs.

## 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 Labs' 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:

#### Clone Github Repository

Clone the [sync-examples repository](https://github.com/synchronicity-labs/sync-examples).

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

#### Set Up Environment

Create a virtual environment and install the required dependencies:

```bash
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```

#### Configure API Keys

You will need [Sync\_API\_KEY](https://sync.so/settings/api-keys) and [ELEVEN\_LABS\_API\_KEY](https://elevenlabs.io/docs/api-reference/authentication#api-keys) to run the example. Update constants.py file with your own API keys:

* `SYNC_API_KEY`: Your API key for Sync Labs
* `ELEVEN_LABS_API_KEY`: Your API key for ElevenLabs (used for voice generation).

Ensure the file is saved after adding your keys.

#### 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](/developer-guides/sync-mode)
* `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`

#### Generate Videos

Execute the Python script:

```bash
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`.

#### 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

#### How many personalized videos can I generate at once?

The CSV above is input to the example script, not the Batch API. The [Batch API](/api-reference/guides/batch-processing) accepts a JSONL file with 20 to 500 generation requests on eligible plans. Each line must contain a unique `request_id`, `endpoint: "/v2/generate"`, and a generation `payload`. Convert your recipient data into that format before submitting a batch; for volumes above 500, split it into batches that each meet these limits.

#### What TTS providers work with Sync Labs?

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 Labs' lip sync API — simply pass the generated audio URL as the audio\_url parameter.

#### How much does personalized video messaging cost?

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.