pycaps-new / src /ui /step4_render.py
Franco Zanardi
feature: allow edit templates
6774799
import streamlit as st
import os
from pycaps import Document
from utils import go_to_step, create_pipeline_builder, setup_api_keys, handle_unexpected_exception
def render_step4():
st.header("Final Render")
api_key = st.session_state.get('api_key_input')
api_key_type = st.session_state.get('api_key_type')
try:
with st.spinner("Rendering final video... This is the last step! 🎬"):
pipeline = create_pipeline_builder().with_input_video(st.session_state.video_path).build()
if not pipeline:
raise RuntimeError("Could not build pipeline for rendering.")
setup_api_keys(api_key_type, api_key)
pipeline.prepare()
document_to_render = Document.from_dict(st.session_state.processed_doc)
pipeline.render(document_to_render)
if pipeline._output_video_path and os.path.exists(pipeline._output_video_path):
st.session_state.final_video_path = pipeline._output_video_path
go_to_step(5)
st.rerun()
else:
st.error("Render failed. Check the logs.")
except Exception as e:
handle_unexpected_exception(e)