You must have the server running before opening the UI. See Running the server if you haven’t set it up yet.
Step 1 — Product identification
This step calls/api/identify-product and returns a specific, purchasable product SKU matched to the viewer’s profile.
Enter a brand name
Type a brand name into the Brand field — for example,
Toyota, Samsung, or Sony. This tells Gemini which product catalog to draw from.Enter viewer / user data
Paste viewer context into the User / viewer data textarea. This can be JSON or plain text and should describe the viewer’s income, lifestyle, location, or interests — anything that helps Gemini pick the most relevant product.Example:
Choose a mode
Select Full or Minimal from the mode selector.
- Full — generates a detailed prompt with richer product-matching instructions
- Minimal — generates a shorter prompt, faster but less nuanced
Set language and brand voice (optional)
- Language — sets the language for the identified product description (defaults to English)
- Brand voice notes — free-text guidance passed to Gemini, such as
"premium feel, sustainability focus"
Generate the prompt or run identification
You have two options:
- Generate prompt — builds the meta-prompt locally and shows it in the output area. No Gemini call is made. Useful for inspecting or exporting the prompt.
- Identify with Gemini — sends the prompt to Gemini and returns the identified product. Requires
GEMINI_API_KEYin your.env.
2025 Toyota RAV4 XLE Hybrid AWD.Step 2 — Video clip analysis
This step uploads a video and calls/api/analyze-video to find the optimal ad placement timestamp.
Set the product to advertise
The Product to advertise field should contain the product identified in step 1. Click Use from step 1 to auto-fill it, or type a product name manually.
Upload a video clip
Click Choose file and select an MP4 file. Other formats supported by ffmpeg also work, but MP4 is recommended for broadest compatibility.The maximum upload size is controlled by
MAX_VIDEO_UPLOAD_MB (default: 200 MB).Analyze the clip
Click Analyze clip with Gemini. Gemini receives the full video file and the product name, then returns:
- A scene-by-scene breakdown
- The optimal ad placement timestamp
- A visual edit description (where and how to place the product on the character)
- A
video_idused to reference the uploaded clip in the next step
The
video_id returned by the analysis expires after 30 minutes (VIDEO_CACHE_MAX_AGE_S). If you wait longer than that before generating the merged video, you must re-upload the clip and run the analysis again.Step 3 — Merged video generation
This step calls/api/generate-ad-video and splices the personalized ad segment into the original clip.
Check voiceover requirements
Voiceover generation requires either:
ELEVENLABS_API_KEYset in your.env, orALLOW_SILENT_VOICEOVER=1in your.envto skip voiceover and insert a silent audio track instead
Generate the merged video
Click Generate merged video. Splyce will:
- Extract the frame at the selected timestamp
- Use a Gemini image model to place the product on the character in that frame
- Generate a voiceover line via ElevenLabs
- Assemble the 3-second ad segment with ffmpeg
- Splice the segment into the original video