import streamlit as st import random st.set_page_config( page_title="Gerador de Vídeos Curtos", page_icon="🎬", layout="centered" ) st.title("🎬 Gerador de Vídeos Curtos") st.caption("Roteiro + Prompts de imagem + Estrutura de publicação") # --- Inputs --- with st.form("gerador"): tema = st.text_input("Tema do vídeo", placeholder="Ex: Como acordar cedo sem sofrer") tom = st.selectbox( "Tom do vídeo", ["Motivacional", "Didático / Educativo", "Humorístico", "Direto e agressivo", "Calmo e reflexivo", "Storytelling"] ) duracao = st.selectbox("Duração aproximada", ["15-20 segundos", "30-40 segundos", "45-60 segundos"]) publico = st.text_input("Público-alvo (opcional)", placeholder="Ex: jovens de 18-25 anos, empreendedores iniciantes") gerar = st.form_submit_button("Gerar conteúdo", use_container_width=True) # --- Lógica de geração --- if gerar and tema: with st.spinner("Gerando..."): # === ROTEIRO === st.subheader("📝 Roteiro") if tom == "Motivacional": gancho = f"Você ainda acredita que {tema.lower()} é difícil?" desenvolvimento = f"A verdade é que a maioria das pessoas falha não por falta de capacidade, mas por falta de sistema. Aqui vai o que realmente funciona quando o assunto é {tema.lower()}." cta = "Salva esse vídeo e aplica hoje. Daqui a 30 dias você me agradece." elif tom == "Didático / Educativo": gancho = f"Quer saber exatamente como fazer {tema.lower()} do jeito certo?" desenvolvimento = f"Existem 3 pontos principais que quase ninguém fala. O primeiro é... o segundo é... e o terceiro muda tudo." cta = "Comenta 'quero' que eu te mando o passo a passo completo." elif tom == "Humorístico": gancho = f"Todo mundo fala de {tema.lower()} como se fosse fácil... aí chega a realidade." desenvolvimento = f"Você começa motivado, 2 dias depois já tá negociando com você mesmo. Mas tem um jeito de quebrar esse ciclo sem sofrer tanto." cta = "Marca aquele amigo que precisa ver isso. Ele vai odiar, mas precisa." elif tom == "Direto e agressivo": gancho = f"Para de inventar desculpa sobre {tema.lower()}." desenvolvimento = f"Ou você faz do jeito certo ou continua no mesmo lugar. Não existe meio termo. Aqui está o que você precisa fazer agora." cta = "Ou aplica ou fecha o app. Simples." elif tom == "Calmo e reflexivo": gancho = f"Tem algo que quase ninguém percebe sobre {tema.lower()}..." desenvolvimento = f"Às vezes a gente busca a solução mais complicada, quando o caminho mais simples já estava na nossa frente o tempo todo." cta = "Respira. Reflete. E age quando estiver pronto." else: # Storytelling gancho = f"Há 6 meses eu estava completamente perdido em relação a {tema.lower()}." desenvolvimento = f"Até que uma mudança simples transformou tudo. Não foi motivação. Foi método. E hoje eu quero te mostrar exatamente o que funcionou." cta = "Se isso fez sentido pra você, compartilha com alguém que precisa ouvir." roteiro = f"""**Gancho (0-3s):** {gancho} **Desenvolvimento:** {desenvolvimento} **CTA final:** {cta}""" st.markdown(roteiro) st.code(roteiro, language=None) # === PROMPTS DE IMAGEM === st.subheader("🖼️ Prompts de Imagem") prompts = [ f"Cinematic close-up of a person looking determined, soft morning light, related to {tema}, ultra realistic, 9:16 vertical", f"Minimalist illustration representing {tema}, clean background, modern flat design, high contrast, vertical format 9:16", f"Dramatic before and after scene about {tema}, split screen, emotional lighting, photorealistic, 9:16", f"Person taking action related to {tema}, dynamic angle, natural light, authentic lifestyle photography, vertical 9:16" ] for i, p in enumerate(prompts, 1): st.markdown(f"**Prompt {i}:**") st.code(p) # === ESTRUTURA DE PUBLICAÇÃO === st.subheader("📤 Estrutura de Publicação") legenda = f"""{gancho} {desenvolvimento} {cta} #{tema.replace(' ', '')} #dicas #motivacao #conteudo""" st.markdown("**Legenda sugerida:**") st.code(legenda) st.markdown("**Hashtags extras:**") st.code("#viral #reels #shorts #dica #aprendizado #rotina #produtividade") st.markdown("**Sugestão de horário:**") st.info("Melhores horários: 7h-9h | 12h-13h | 19h-21h (teste e veja o que performa melhor no seu público)") elif gerar and not tema: st.warning("Digite um tema antes de gerar.") st.divider() st.caption("Sistema genérico • Feito para rodar no celular")