Composición final — Timeline Editor 4 clips seleccionados · overlay branding
Línea de tiempo — Vídeo compilado (4:32)
Clip 1
Clip 2
Clip 3
Clip 4
Outro
0:00
0:48
1:36
2:24
3:12
4:00
4:32
from videodb.timeline import Timeline
from videodb.asset import VideoAsset, TextAsset, ImageAsset, TextStyle
tl = Timeline(conn)
# Clips de los momentos más relevantes
clips = [(2,51), (7,32,8,5), (18,3,18,44), (24,15,25,2)]
for start, end in [(134,171), (452,485), (1083,1124), (1455,1502)]:
tl.add_inline(VideoAsset(asset_id=video.id, start=start, end=end))
# Overlay logo NeuroSaaS (esquina superior derecha)
logo = coll.upload(file_path="neurosaaas-logo.png", media_type="image")
tl.add_overlay(0, ImageAsset(
asset_id=logo.id, duration=272,
width=180, x="80%", y="5%"
))
# Texto branding
tl.add_overlay(0, TextAsset(
text="NeuroSaaS — Demo 2025", duration=272,
style=TextStyle(fontsize=28, fontcolor="#ffffff", x="5%", y="90%")
))
# Generar stream del vídeo editado
edited_url = tl.generate_stream()
print(f"Stream editado: {edited_url}")
Outputs generados
🎬
Vídeo Original con Subtítulos ES
https://stream.videodb.io/v3/vid_9x3kp2a8/subtitles/es
✂️
Clip Compilado (highlights)
https://stream.videodb.io/v3/compiled/hl_7e35ce
📱
Vídeo Vertical 9:16 (TikTok/Reels)
https://stream.videodb.io/v3/reframed/vt_9x3kp2a8
Código — Subtítulos + Reframe
# Subtítulos generados y burn-in en español
video.index_spoken_words(force=True)
sub_url = video.add_subtitle(
lang="es",
style={"fontsize": 22, "fontcolor": "#ffffff"}
)
# Obtener transcripción completa
transcript = video.get_transcript_text()
print(f"Transcripción: {len(transcript)} caracteres")
# Reencuadre a vertical 9:16 para social
from videodb import ReframeMode
# Reframe del clip compilado (4:32 = 272s)
vertical = video.reframe(
start=0, end=272,
target="vertical",
mode=ReframeMode.smart
)
print(f"Vertical URL: {vertical}")
# Transcripción → 14 momentos, 7.832 palabras