Automatically Creating a professional quality advertisement from product videography B-Roll
Overview
Creating professional product advertisements typically requires a team: copywriters for the script, voice actors for the narration, and editors to stitch it all together.
VideoDB streamlines this into a single, automated workflow.
In this tutorial, we will:
Upload raw product footage (a jewelry shoot). Analyze the visual content automatically. Generate a professional ad script based on the visuals. Synthesize a high-quality voiceover. Publish the final commercial.
Setup
📦 Installing VideoDB
🔑 API Key
You only need your VideoDB API Key.
Get your API key from . (Free for first 50 uploads, No credit card required).
import videodb
import os
from getpass import getpass
# Prompt user for API key securely
api_key = getpass("Please enter your VideoDB API Key: ")
os.environ["VIDEO_DB_API_KEY"] = api_key
Implementation
🌐 Step 1: Connect to VideoDB
Establish a connection to your VideoDB project.
from videodb import connect
# Connect to VideoDB
conn = connect()
coll = conn.get_collection()
🎥 Step 2: Upload Product Footage
We’ll upload a raw video clip of a jewelry product shoot from YouTube.
# Upload a video by URL
video = coll.upload(url='https://www.youtube.com/watch?v=2DcAMbmmYNM')
🔍 Step 3: Analyze Visuals
To write a relevant script, we first need to understand what’s in the video. We’ll use index_scenes() to extract detailed descriptions of the visual content.
Let's view the description of first scene from the video
import json
scenes = video.get_scene_index(scene_id)
print(json.dumps(scenes[0], indent=2))
Output:
{
"description": "The entire series of images presents a uniform and absolute darkness, an unbroken expanse of pure black. There are no discernible shapes, colors, or details to be found, suggesting a complete absence of light or any visual information whatsoever across the whole sequence.",
"end": 1.401,
"metadata": {},
"scene_metadata": {},
"start": 0.0
}
📝 Step 4: Generate Ad Script
Now we use VideoDB’s text generation to write the commercial. We feed the visual descriptions into the prompt to ensure the script perfectly matches the mood of the footage.
# Construct a prompt with the scene context
scene_context = "\n".join([f"- {scene['description']}" for scene in scenes])
prompt = f"""
Here is a visual description of a jewelry product video:
{scene_context}
Write a short, elegant, and luxurious voiceover script for this video advertisement.
- Tone: Sophisticated, calming, premium.
- Length: Short (approx 20 seconds of speech).
- Content: Focus on beauty, craftsmanship, and elegance.
- Format: Return ONLY the raw narration text.
"""
# Generate script
text_response = coll.generate_text(
prompt=prompt,
model_name="pro"
)
ad_script = text_response["output"]
print("--- Generated Ad Script ---")
print(ad_script)
🎙️ Step 5: Generate Voiceover
We’ll turn the script into audio.
# Generate speech directly as a VideoDB Audio Asset
audio = coll.generate_voice(
text=ad_script,
voice_name="Default"
)
🎬 Step 6: Compose the Advertisement
We’ll overlay the generated voiceover onto the original video using the Timeline editor.
from videodb.editor import Timeline, Track, Clip, VideoAsset, AudioAsset
# Create a timeline
timeline = Timeline(conn)
# 1. Video Track (Background)
video_track = Track()
video_asset = VideoAsset(id=video.id)
video_clip = Clip(asset=video_asset, duration=float(video.length))
video_track.add_clip(0, video_clip)
timeline.add_track(video_track)
# 2. Audio Track (Voiceover Overlay)
audio_track = Track()
audio_asset = AudioAsset(id=audio.id)
audio_clip = Clip(asset=audio_asset, duration=float(audio.length))
audio_track.add_clip(0, audio_clip)
timeline.add_track(audio_track)
🪄 Step 7: Review and Share
Generate the stream URL to watch your AI-created commercial.
from videodb import play_stream
stream_url = timeline.generate_stream()
play_stream(stream_url)
Output:
🎉 Conclusion
You have successfully automated the production of a product advertisement.
By replacing multiple external tools with VideoDB’s unified SDK, you can now build scalable video generation engines that turn raw footage into polished content automatically.