VideoDB — Flujo de Trabajo NeuroSaaS

Percepción, indexación y edición automatizada de vídeo · Cliente: NeuroSaaS B2B Analytics

Completado
1
Ingesta
YouTube URL → stream HLS
2
Índice hablado
Transcripción + keyword index
3
Búsqueda semántica
Timestamps + evidencias
4
Subtítulos ES
Generados + burn-in
5
Timeline edit
Clips + overlay branding
6
Reframe 9:16
Vertical para redes
14
Timestamps encontrados
4:32
Duración del clip final
3
Outputs generados
Vídeo ingesta — NeuroSaaS Webinar 2025
45:12
Video ID vid_9x3kp2a8
Colección neurosaaas-mkting
Resolución 1920×1080 · 30fps
Stream URL https://stream.videodb.io/...
Estado Procesado
Código de ingesta + índice
from dotenv import load_dotenv load_dotenv(".env") import videodb conn = videodb.connect() coll = conn.get_collection() # 1. Ingesta desde YouTube video = coll.upload( url="https://youtube.com/watch?v=neurosaaas-webinar" ) # video.id → "vid_9x3kp2a8" # video.stream_url → URL HLS reproducible # 2. Índice de palabras habladas video.index_spoken_words(force=True) # 3. Búsqueda de momentos clave from videodb.exceptions import InvalidRequestError for query in ["onboarding", "friction", "user drop"]: try: res = video.search(query) shots = res.get_shots() print(f"✓ {query}: {len(shots)} momentos") except InvalidRequestError as e: if "No results found" in str(e): shots = []
Momentos encontrados query: "onboarding" + "friction" + "user drop"
02:14 → 02:51
...cuando el usuario llega al paso de configuración inicial, el onboarding tiene que ser invisible, casi instintivo...
0.94
07:32 → 08:05
...los datos de friction que capturamos en el funnel de activación muestran un abandono del 68% en el paso 3...
0.91
11:48 → 12:20
...eso es exactamente el user drop que NeuroSaaS detecta en tiempo real, con heatmaps de sesión granulares...
0.89
18:03 → 18:44
...el problema del onboarding no es técnico, es de diseño de flujo. Aquí vemos un ejemplo real con un cliente SaaS...
0.87
24:15 → 25:02
...reducimos la friction del signup en un 41% simplemente reordenando los campos del formulario según los datos...
0.85
31:29 → 32:10
...el onboarding inteligente adapta el flujo según el perfil de empresa detectado en las primeras 3 sesiones...
0.82
38:44 → 39:28
...y aquí termina el ciclo: de detectar friction a proponer mejoras, todo dentro del dashboard de NeuroSaaS en tiempo real...
0.79
+7 momentos más · score > 0.50
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
Listo
45:12
✂️
Clip Compilado (highlights)
https://stream.videodb.io/v3/compiled/hl_7e35ce
Listo
4:32
📱
Vídeo Vertical 9:16 (TikTok/Reels)
https://stream.videodb.io/v3/reframed/vt_9x3kp2a8
Listo
4:32
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
Índices construidos
Spoken word index OK
Keyword index OK
Scene visual index Opcional
Segmentos indexados 2.712
Palabras transcritas 7.832
Operaciones VideoDB
upload() 1 video
index_spoken_words() Indexado
search() × 3 queries 14 hits
add_subtitle() ES burn-in
timeline + reframe() 9:16 ready
Próximos pasos sugeridos
Generar voiceover en español sobre el clip con coll.generate_voice()
Conectar feed RTSP de pantalla y emitir alertas en directo cuando aparezca "friction" o "churn"
Crear capítulos automáticos para YouTube con los timestamps de búsqueda
Transcodificar a 720p/1080p con conn.transcode() para CDN