Update app.py
Browse files
app.py
CHANGED
|
@@ -519,9 +519,10 @@ Se inspire rigorosamente no modo de escrita dos exemplos fornecidos.
|
|
| 519 |
|
| 520 |
ESTILO DE ESCRITA OBRIGATÓRIO:
|
| 521 |
|
| 522 |
-
- Tom
|
| 523 |
-
- Use
|
| 524 |
-
-
|
|
|
|
| 525 |
- Informações diretas, sem rodeios, cada frase deve acrescentar um dado novo
|
| 526 |
- NUNCA termine com frases que pareçam conclusões de IA
|
| 527 |
- Evite palavras como consolidou, definiu, simboliza especialmente no final
|
|
@@ -529,6 +530,7 @@ ESTILO DE ESCRITA OBRIGATÓRIO:
|
|
| 529 |
- NUNCA use travessões em nenhuma parte do texto
|
| 530 |
- NUNCA faça perguntas retóricas ou diretas ao final da descrição
|
| 531 |
- NUNCA utilize termos como "O vídeo resgata", "O vídeo mostra", etc... a descrição deve ser sempre direta.
|
|
|
|
| 532 |
|
| 533 |
LEGENDA:
|
| 534 |
- Define se o vídeo precisa de legendas (se há fala importante que precisa ser traduzida ou transcrita).
|
|
@@ -537,14 +539,15 @@ LEGENDA:
|
|
| 537 |
|
| 538 |
TÍTULOS E EMOJIS:
|
| 539 |
|
| 540 |
-
- O público primário é Geração Z, portanto o tom
|
| 541 |
-
- O uso de
|
| 542 |
- Varie estruturas de título, podendo usar afirmações diretas, contrastes, dados impactantes ou frases curtas
|
| 543 |
- Emojis são opcionais e devem ser usados apenas quando reforçam a emoção do contexto
|
| 544 |
- Não use emojis em todos os títulos
|
| 545 |
- O título só deve ter UM emoji, NUNCA DOIS.
|
| 546 |
-
-
|
| 547 |
-
-
|
|
|
|
| 548 |
|
| 549 |
Contexto que pode ajudar: {contexto_add}
|
| 550 |
{comentarios_add}
|
|
@@ -554,7 +557,7 @@ EXEMPLOS (saída esperada em JSON):
|
|
| 554 |
[
|
| 555 |
{{
|
| 556 |
"title": "É incrível como ele era vulnerável e emotivo antes de perder qualquer traço de humanidade 💀",
|
| 557 |
-
"description": "No episódio 3 da 1ª temporada de Breaking Bad (...And the Bag's in the River), Walter White reconstrói um prato quebrado e descobre que falta um único estilhaço. Ele percebe que Krazy-8, o traficante
|
| 558 |
"legenda": false
|
| 559 |
}},
|
| 560 |
{{
|
|
@@ -563,18 +566,18 @@ EXEMPLOS (saída esperada em JSON):
|
|
| 563 |
"legenda": true
|
| 564 |
}},
|
| 565 |
{{
|
| 566 |
-
"title": "Normal People foi tão bom porque o Paul Mescal
|
| 567 |
-
"description": "🥹 Paul Mescal era um ator de teatro praticamente desconhecido até ser escalado como Connell Waldron em Normal People. A adaptação do best-seller de Sally Rooney rendeu a Mescal o BAFTA de Melhor Ator e uma indicação ao Emmy,
|
| 568 |
"legenda": true
|
| 569 |
}},
|
| 570 |
{{
|
| 571 |
"title": "O exato momento em que Carl supera seu luto de décadas 🥺",
|
| 572 |
-
"description": "🍇 O broche que Carl entrega
|
| 573 |
"legenda": true
|
| 574 |
}},
|
| 575 |
{{
|
| 576 |
"title": "“Ei, olha só... meu turno acabou de terminar” 😭",
|
| 577 |
-
"description": "No filme \\"Atração Perigosa\\" (2010), o
|
| 578 |
"legenda": false
|
| 579 |
}},
|
| 580 |
{{
|
|
@@ -589,7 +592,7 @@ EXEMPLOS (saída esperada em JSON):
|
|
| 589 |
}},
|
| 590 |
{{
|
| 591 |
"title": "E o Justin Bieber que já demonstrava um senso rítmico absurdo aos dois anos de idade? 😵",
|
| 592 |
-
"description": "Justin Bieber tinha
|
| 593 |
"legenda": true
|
| 594 |
}},
|
| 595 |
{{
|
|
@@ -599,7 +602,7 @@ EXEMPLOS (saída esperada em JSON):
|
|
| 599 |
}},
|
| 600 |
{{
|
| 601 |
"title": "O mano é inocente demais pra esse mundo tão cruel 😭",
|
| 602 |
-
"description": "Estátuas vivas são artistas de rua que
|
| 603 |
"legenda": false
|
| 604 |
}},
|
| 605 |
{{
|
|
@@ -609,7 +612,7 @@ EXEMPLOS (saída esperada em JSON):
|
|
| 609 |
}},
|
| 610 |
{{
|
| 611 |
"title": "O mano genuinamente se sentiu violado 😭",
|
| 612 |
-
"description": "
|
| 613 |
"legenda": true
|
| 614 |
}}
|
| 615 |
]
|
|
@@ -919,7 +922,8 @@ async def generate_subtitle(request: GeminiSubtitleRequest):
|
|
| 919 |
print(f"🧠 [Gemini] Enviando SRT + Áudio para análise ({chatbot_key})...")
|
| 920 |
|
| 921 |
# 3. Montar Prompt
|
| 922 |
-
|
|
|
|
| 923 |
|
| 924 |
prompt = f"""
|
| 925 |
IDIOMA: A legenda traduzida DEVE ser inteiramente em PORTUGUÊS DO BRASIL (pt-BR). Independente do idioma original do vídeo.
|
|
|
|
| 519 |
|
| 520 |
ESTILO DE ESCRITA OBRIGATÓRIO:
|
| 521 |
|
| 522 |
+
- Tom INFORMAL e conversacional que mistura precisão factual com fluidez de quem tá contando algo pra um amigo
|
| 523 |
+
- Use LINGUAGEM COLOQUIAL brasileira: "tava" em vez de "estava", "pra" em vez de "para", "tá" em vez de "está", "pro" em vez de "para o", "num" em vez de "em um", "aí" em vez de "então", "tipo" como conectivo casual quando fizer sentido
|
| 524 |
+
- Use conectivos naturais como aliás, na verdade, por exemplo, definitivamente, inclusive, etc, pra criar ritmo
|
| 525 |
+
- Palavras-chave em MAIÚSCULA pra ênfase quando fizer sentido
|
| 526 |
- Informações diretas, sem rodeios, cada frase deve acrescentar um dado novo
|
| 527 |
- NUNCA termine com frases que pareçam conclusões de IA
|
| 528 |
- Evite palavras como consolidou, definiu, simboliza especialmente no final
|
|
|
|
| 530 |
- NUNCA use travessões em nenhuma parte do texto
|
| 531 |
- NUNCA faça perguntas retóricas ou diretas ao final da descrição
|
| 532 |
- NUNCA utilize termos como "O vídeo resgata", "O vídeo mostra", etc... a descrição deve ser sempre direta.
|
| 533 |
+
- A descrição NÃO precisa ser 100% coloquial, mas o tom geral deve soar natural e humano, nunca robótico ou acadêmico
|
| 534 |
|
| 535 |
LEGENDA:
|
| 536 |
- Define se o vídeo precisa de legendas (se há fala importante que precisa ser traduzida ou transcrita).
|
|
|
|
| 539 |
|
| 540 |
TÍTULOS E EMOJIS:
|
| 541 |
|
| 542 |
+
- O público primário é Geração Z, portanto o tom DEVE ser descontraído e informal
|
| 543 |
+
- O uso de "Quando" no início do título é UMA OPÇÃO ESTILÍSTICA recomendada, não obrigatória
|
| 544 |
- Varie estruturas de título, podendo usar afirmações diretas, contrastes, dados impactantes ou frases curtas
|
| 545 |
- Emojis são opcionais e devem ser usados apenas quando reforçam a emoção do contexto
|
| 546 |
- Não use emojis em todos os títulos
|
| 547 |
- O título só deve ter UM emoji, NUNCA DOIS.
|
| 548 |
+
- PRIORIZE emojis de humor e emoção da Geração Z: 💀 (choque/morri), 😭 (choro de riso/emoção), 🥀 (melancolia/dor), 💅 (deboche), 🫠 (derretendo), 😵 (chocado), 🫣 (constrangimento), 🤡 (palhaçada), 🥲 (sorriso triste). Use 🥹 e 🥺 pra momentos fofos/emocionantes. Evite emojis genéricos como �, ❤️, 😊.
|
| 549 |
+
- Se for utilizado coração, SEMPRE deve ser coração sem ser o vermelho ou branco... dependendo do contexto.
|
| 550 |
+
- MUITO IMPORTANTE: Mantenha as quebras de linha na descrição utilizando `\\n\\n` no JSON pra separar os parágrafos, assim o texto não fica tudo numa única linha.
|
| 551 |
|
| 552 |
Contexto que pode ajudar: {contexto_add}
|
| 553 |
{comentarios_add}
|
|
|
|
| 557 |
[
|
| 558 |
{{
|
| 559 |
"title": "É incrível como ele era vulnerável e emotivo antes de perder qualquer traço de humanidade 💀",
|
| 560 |
+
"description": "No episódio 3 da 1ª temporada de Breaking Bad (...And the Bag's in the River), Walter White reconstrói um prato quebrado e descobre que falta um único estilhaço. Ele percebe que Krazy-8, o traficante que tava preso no porão dele, escondeu a peça pontiaguda pra usar como arma. O Walt tava decidido a libertar o cara, mas a prova física da traição forçou ele a estrangular o traficante pra sobreviver.\\n\\nFoi nesse momento que o professor de química entendeu que a empatia seria a condenação dele. Morria, naquele instante, o mestre de escola, e surgia a lógica inflexível de Heisenberg 🔥",
|
| 561 |
"legenda": false
|
| 562 |
}},
|
| 563 |
{{
|
|
|
|
| 566 |
"legenda": true
|
| 567 |
}},
|
| 568 |
{{
|
| 569 |
+
"title": "Normal People foi tão bom porque o Paul Mescal não tava atuando 🥹",
|
| 570 |
+
"description": "🥹 Paul Mescal era um ator de teatro praticamente desconhecido até ser escalado como Connell Waldron em Normal People. A adaptação do best-seller de Sally Rooney rendeu a Mescal o BAFTA de Melhor Ator e uma indicação ao Emmy, consolidando a química dele com a Daisy Edgar-Jones como uma das mais realistas da televisão recente.\\n\\nA produção usou uma coordenadora de intimidade pra garantir que as cenas de vulnerabilidade fossem autênticas, focando mais na linguagem corporal e no silêncio do que em diálogos expositivos. Filmada na Irlanda e na Itália, a série mostra com precisão técnica a transição da vida escolar em Sligo pra universidade no Trinity College, fugindo dos clichês estéticos típicos de romances juvenis e apostando no naturalismo das atuações.",
|
| 571 |
"legenda": true
|
| 572 |
}},
|
| 573 |
{{
|
| 574 |
"title": "O exato momento em que Carl supera seu luto de décadas 🥺",
|
| 575 |
+
"description": "🍇 O broche que o Carl entrega pro Russell é uma tampa de refrigerante de uva (Grape Soda) original dos anos 30, o mesmo objeto que a Ellie deu pro Carl quando eles se conheceram na infância.\\n\\nNo final de Up: Altas Aventuras (2009), o Russell, com 8 anos, tá lidando com a falta do pai durante a cerimônia de formatura dos Exploradores da Natureza. Carl Fredricksen sobe ao palco e entrega pro garoto a \\"Insígnia Ellie\\", a mais alta distinção que ele tem. É o momento preciso em que o Carl supera o luto de décadas, passando o legado de aventura pro Russell e assumindo o papel de figura paterna pro garoto.\\n\\nDirigido por Pete Docter, o longa fez história ao ser a primeira animação a abrir o Festival de Cannes e levou os Oscars de Melhor Filme de Animação e Melhor Trilha Sonora.",
|
| 576 |
"legenda": true
|
| 577 |
}},
|
| 578 |
{{
|
| 579 |
"title": "“Ei, olha só... meu turno acabou de terminar” 😭",
|
| 580 |
+
"description": "No filme \\"Atração Perigosa\\" (2010), o Ben Affleck definitivamente caprichou no realismo tático quando mostrou a cultura criminosa de Charlestown, Boston. Nessa cena, por exemplo, logo após o assalto ao banco em North End, o policial interpretado por Jack Walsh simplesmente ignora a gangue do Doug MacRay, que tava equipada com fuzis automáticos e usando as famosas máscaras de freira. A escolha do cara é uma das reações mais pragmáticas do gênero policial... autopreservação pura diante de uma desvantagem letal óbvia. O filme, aliás, inspirado no livro \\"Prince of Thieves\\", rendeu pro Jeremy Renner uma indicação ao Oscar de Melhor Ator Coadjuvante pela atuação dele como o instável James Coughlin.",
|
| 581 |
"legenda": false
|
| 582 |
}},
|
| 583 |
{{
|
|
|
|
| 592 |
}},
|
| 593 |
{{
|
| 594 |
"title": "E o Justin Bieber que já demonstrava um senso rítmico absurdo aos dois anos de idade? 😵",
|
| 595 |
+
"description": "O Justin Bieber tinha só dois anos quando a mãe dele, Pattie Mallette, gravou esse vídeo caseiro na cozinha da casa deles em Stratford, Ontário. A habilidade dele em manter o tempo rítmico e fazer viradas rápidas usando só as mãos e uma superfície improvisada impressiona pela coordenação motora absurda pra idade dele.\\n\\nO Justin aprendeu a tocar bateria de forma autodidata antes de passar pro piano e pro violão, instrumentos que ele dominou antes de ser descoberto no YouTube em 2007. O cara, inclusive, tocou bateria profissionalmente em várias turnês internacionais, mostrando que a base percussiva foi o fundamento da formação musical dele.\\n\\nEsse registro em particular virou uma das cenas mais icônicas do documentário \\"Never Say Never\\", que arrecadou 99 milhões de dólares no mundo todo.",
|
| 596 |
"legenda": true
|
| 597 |
}},
|
| 598 |
{{
|
|
|
|
| 602 |
}},
|
| 603 |
{{
|
| 604 |
"title": "O mano é inocente demais pra esse mundo tão cruel 😭",
|
| 605 |
+
"description": "Estátuas vivas são artistas de rua que usam técnicas rigorosas de controle da respiração e relaxamento muscular pra ficarem imóveis por períodos de 30 a 60 minutos. O artista Donald Eleanor, por exemplo, usa maquiagem metálica e figurinos rígidos pra parecer um objeto inanimado em locais públicos. Quando o pedestre interage ou oferece uma gorjeta, o performer rompe a imobilidade com movimentos fluidos e robóticos, criando um contraste visual instantâneo. A parada exige meses de treinamento pra evitar o reflexo automático de piscar ou reagir a distrações externas, tipo sons e mudanças climáticas.\\n\\nA técnica de \\"locking\\", por exemplo, permite que o ator trave as articulações em ângulos determinados, mantendo uma postura estável e sem oscilações.",
|
| 606 |
"legenda": false
|
| 607 |
}},
|
| 608 |
{{
|
|
|
|
| 612 |
}},
|
| 613 |
{{
|
| 614 |
"title": "O mano genuinamente se sentiu violado 😭",
|
| 615 |
+
"description": "O cara tava sob efeito de sedativos pesados após um procedimento cirúrgico quando esse registro foi feito numa unidade hospitalar. Ele apresenta aquele estado de desorientação típico do despertar anestésico, que afeta temporariamente as funções cognitivas e a percepção de realidade do paciente. Nas imagens, ele tenta vestir a própria camiseta enquanto interage com a equipe de enfermagem de forma confusa e cômica.\\n\\nA sedação consciente, técnica comum em procedimentos ambulatoriais, usa medicamentos que induzem ao relaxamento profundo e, frequentemente, causam amnésia retrógrada.",
|
| 616 |
"legenda": true
|
| 617 |
}}
|
| 618 |
]
|
|
|
|
| 922 |
print(f"🧠 [Gemini] Enviando SRT + Áudio para análise ({chatbot_key})...")
|
| 923 |
|
| 924 |
# 3. Montar Prompt
|
| 925 |
+
context_default = "Separe a legenda corretamente, nunca deixe muito texto em uma só legenda. Traduza corretamente e separe quem fala também, nunca bote 2 falantes numa mesma legenda. Se baseie no legenda por palavra pra se basear no timing."
|
| 926 |
+
processed_context = request.context if request.context and request.context.strip() not in ["", "N/A"] else context_default
|
| 927 |
|
| 928 |
prompt = f"""
|
| 929 |
IDIOMA: A legenda traduzida DEVE ser inteiramente em PORTUGUÊS DO BRASIL (pt-BR). Independente do idioma original do vídeo.
|