primocode 8.22.1 → 8.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/catalogo.js +2 -0
- package/lib/config.js +53 -2
- package/lib/studio.js +125 -11
- package/lib/tools.js +35 -1
- package/package.json +2 -2
- package/studio/__pycache__/voz.cpython-311.pyc +0 -0
- package/studio/arquivos/corte-estatico-corte-a5bab.json +150 -0
- package/studio/arquivos/corte-founders-ai-teste-do-player-2de1d.json +65 -0
- package/studio/arquivos/corte-legado-teste.json +1 -0
- package/studio/arquivos/corte-legado2.json +1 -0
- package/studio/arquivos/corte-minimo-2a829.json +24 -0
- package/studio/arquivos/corte-ok-00a3b.json +18 -0
- package/studio/arquivos/corte-ok-1270e.json +22 -0
- package/studio/arquivos/corte-sweep-corte-cfb29.json +147 -0
- package/studio/arquivos/corte-visual-completo-78f50.json +35 -0
- package/studio/arquivos/grade-sweep-grade-0c2f1.json +119 -0
- package/studio/arquivos/prisma-estatico-prisma-d8740.json +182 -0
- package/studio/arquivos/prisma-sweep-prisma-4c58c.json +166 -0
- package/studio/arquivos/prisma-y-b0785.json +52 -0
- package/studio/arquivos/prosa-sweep-prosa-f29cf.json +80 -0
- package/studio/arquivos/tela-estatico-tela-c7daf.json +90 -0
- package/studio/arquivos/tela-sweep-tela-0d2bf.json +84 -0
- package/studio/arquivos/traco-estatico-traco-25872.json +113 -0
- package/studio/arquivos/traco-sweep-traco-0bcf4.json +102 -0
- package/studio/ferramentas/corte.md +159 -12
- package/studio/server.py +264 -8
- package/studio/web/analise.html +52 -0
- package/studio/web/js/analise.js +202 -0
- package/studio/web/js/exportar.js +88 -1
- package/studio/web/js/player.js +172 -46
- package/studio/web/js/render.js +99 -1
- package/studio/web/js/video.js +434 -0
- package/studio/web/render.css +27 -0
- package/studio/web/tool.html +1 -0
- package/studio/web/view.html +2 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "prosa-sweep-prosa-f29cf",
|
|
3
|
+
"ferramenta": "prosa",
|
|
4
|
+
"titulo": "sweep-prosa",
|
|
5
|
+
"doc": {
|
|
6
|
+
"tema": "papel",
|
|
7
|
+
"capa": {
|
|
8
|
+
"chapeu": "Proposta técnica",
|
|
9
|
+
"titulo": "Modernização do parque de servidores",
|
|
10
|
+
"apoio": "Diagnóstico, plano em três ondas e estimativa de custo.",
|
|
11
|
+
"autor": "Time de Infraestrutura",
|
|
12
|
+
"data": "Agosto de 2026"
|
|
13
|
+
},
|
|
14
|
+
"blocos": [
|
|
15
|
+
{
|
|
16
|
+
"tipo": "sumario",
|
|
17
|
+
"texto": "Sumário"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"tipo": "secao",
|
|
21
|
+
"texto": "Onde estamos"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"tipo": "paragrafo",
|
|
25
|
+
"texto": "O parque atual tem **34 máquinas**, das quais 11 passaram do fim de suporte do fabricante. O custo de manutenção subiu 40% em dois anos enquanto a capacidade útil ficou parada."
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"tipo": "destaque",
|
|
29
|
+
"titulo": "Risco imediato",
|
|
30
|
+
"texto": "Três servidores de banco não recebem correção de segurança desde março."
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"tipo": "secao",
|
|
34
|
+
"texto": "O que propomos"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"tipo": "numerada",
|
|
38
|
+
"itens": [
|
|
39
|
+
"Onda 1 — trocar os 11 equipamentos fora de suporte",
|
|
40
|
+
"Onda 2 — consolidar cargas em 6 máquinas novas",
|
|
41
|
+
"Onda 3 — mover o que for elástico para nuvem"
|
|
42
|
+
]
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"tipo": "tabela",
|
|
46
|
+
"linhas": [
|
|
47
|
+
[
|
|
48
|
+
"Onda",
|
|
49
|
+
"Prazo",
|
|
50
|
+
"Investimento"
|
|
51
|
+
],
|
|
52
|
+
[
|
|
53
|
+
"1",
|
|
54
|
+
"60 dias",
|
|
55
|
+
"R$ 420 mil"
|
|
56
|
+
],
|
|
57
|
+
[
|
|
58
|
+
"2",
|
|
59
|
+
"120 dias",
|
|
60
|
+
"R$ 310 mil"
|
|
61
|
+
],
|
|
62
|
+
[
|
|
63
|
+
"3",
|
|
64
|
+
"180 dias",
|
|
65
|
+
"custo variável"
|
|
66
|
+
]
|
|
67
|
+
]
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"tipo": "secao",
|
|
71
|
+
"texto": "Próximo passo"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"tipo": "paragrafo",
|
|
75
|
+
"texto": "Aprovar a Onda 1 até o fim do mês para caber na janela de manutenção de outubro."
|
|
76
|
+
}
|
|
77
|
+
]
|
|
78
|
+
},
|
|
79
|
+
"atualizado": "2026-08-16T15:07:33+00:00"
|
|
80
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "tela-estatico-tela-c7daf",
|
|
3
|
+
"ferramenta": "tela",
|
|
4
|
+
"titulo": "estatico-tela",
|
|
5
|
+
"doc": {
|
|
6
|
+
"tema": "brasa",
|
|
7
|
+
"largura": 1080,
|
|
8
|
+
"altura": 1080,
|
|
9
|
+
"cenas": [
|
|
10
|
+
{
|
|
11
|
+
"layout": "livre",
|
|
12
|
+
"fundo": {
|
|
13
|
+
"tipo": "gradiente",
|
|
14
|
+
"de": "#1b0a04",
|
|
15
|
+
"para": "#0a0506",
|
|
16
|
+
"angulo": 155
|
|
17
|
+
},
|
|
18
|
+
"elementos": [
|
|
19
|
+
{
|
|
20
|
+
"tipo": "forma",
|
|
21
|
+
"forma": "circulo",
|
|
22
|
+
"x": 640,
|
|
23
|
+
"y": -140,
|
|
24
|
+
"l": 620,
|
|
25
|
+
"a": 620,
|
|
26
|
+
"preenchimento": "#ff5a36",
|
|
27
|
+
"opacidade": 0.16,
|
|
28
|
+
"anim": "nenhuma"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"tipo": "icone",
|
|
32
|
+
"nome": "foguete",
|
|
33
|
+
"x": 86,
|
|
34
|
+
"y": 140,
|
|
35
|
+
"tamanho": 88,
|
|
36
|
+
"cor": "#ffb03a",
|
|
37
|
+
"anim": "nenhuma"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"tipo": "texto",
|
|
41
|
+
"x": 86,
|
|
42
|
+
"y": 292,
|
|
43
|
+
"l": 900,
|
|
44
|
+
"a": 44,
|
|
45
|
+
"texto": "LANÇAMENTO",
|
|
46
|
+
"tamanho": 30,
|
|
47
|
+
"peso": 700,
|
|
48
|
+
"espacamento": 0.2,
|
|
49
|
+
"cor": "#ffb03a",
|
|
50
|
+
"anim": "nenhuma"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"tipo": "texto",
|
|
54
|
+
"x": 86,
|
|
55
|
+
"y": 372,
|
|
56
|
+
"l": 908,
|
|
57
|
+
"a": 460,
|
|
58
|
+
"texto": "A primeira versão\nestá no ar",
|
|
59
|
+
"tamanho": 118,
|
|
60
|
+
"peso": 750,
|
|
61
|
+
"anim": "nenhuma"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"tipo": "forma",
|
|
65
|
+
"forma": "linha",
|
|
66
|
+
"x": 86,
|
|
67
|
+
"y": 880,
|
|
68
|
+
"l": 180,
|
|
69
|
+
"a": 8,
|
|
70
|
+
"preenchimento": "#ff5a36",
|
|
71
|
+
"espessura": 8,
|
|
72
|
+
"anim": "nenhuma"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"tipo": "texto",
|
|
76
|
+
"x": 86,
|
|
77
|
+
"y": 926,
|
|
78
|
+
"l": 800,
|
|
79
|
+
"a": 60,
|
|
80
|
+
"texto": "primocode.studio",
|
|
81
|
+
"tamanho": 36,
|
|
82
|
+
"cor": "#bf9c8a",
|
|
83
|
+
"anim": "nenhuma"
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
}
|
|
87
|
+
]
|
|
88
|
+
},
|
|
89
|
+
"atualizado": "2026-08-16T15:08:28+00:00"
|
|
90
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "tela-sweep-tela-0d2bf",
|
|
3
|
+
"ferramenta": "tela",
|
|
4
|
+
"titulo": "sweep-tela",
|
|
5
|
+
"doc": {
|
|
6
|
+
"tema": "brasa",
|
|
7
|
+
"largura": 1080,
|
|
8
|
+
"altura": 1080,
|
|
9
|
+
"cenas": [
|
|
10
|
+
{
|
|
11
|
+
"layout": "livre",
|
|
12
|
+
"fundo": {
|
|
13
|
+
"tipo": "gradiente",
|
|
14
|
+
"de": "#1b0a04",
|
|
15
|
+
"para": "#0a0506",
|
|
16
|
+
"angulo": 155
|
|
17
|
+
},
|
|
18
|
+
"elementos": [
|
|
19
|
+
{
|
|
20
|
+
"tipo": "forma",
|
|
21
|
+
"forma": "circulo",
|
|
22
|
+
"x": 640,
|
|
23
|
+
"y": -140,
|
|
24
|
+
"l": 620,
|
|
25
|
+
"a": 620,
|
|
26
|
+
"preenchimento": "#ff5a36",
|
|
27
|
+
"opacidade": 0.16
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"tipo": "icone",
|
|
31
|
+
"nome": "foguete",
|
|
32
|
+
"x": 86,
|
|
33
|
+
"y": 140,
|
|
34
|
+
"tamanho": 88,
|
|
35
|
+
"cor": "#ffb03a"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"tipo": "texto",
|
|
39
|
+
"x": 86,
|
|
40
|
+
"y": 292,
|
|
41
|
+
"l": 900,
|
|
42
|
+
"a": 44,
|
|
43
|
+
"texto": "LANÇAMENTO",
|
|
44
|
+
"tamanho": 30,
|
|
45
|
+
"peso": 700,
|
|
46
|
+
"espacamento": 0.2,
|
|
47
|
+
"cor": "#ffb03a"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"tipo": "texto",
|
|
51
|
+
"x": 86,
|
|
52
|
+
"y": 372,
|
|
53
|
+
"l": 908,
|
|
54
|
+
"a": 460,
|
|
55
|
+
"texto": "A primeira versão\nestá no ar",
|
|
56
|
+
"tamanho": 118,
|
|
57
|
+
"peso": 750
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"tipo": "forma",
|
|
61
|
+
"forma": "linha",
|
|
62
|
+
"x": 86,
|
|
63
|
+
"y": 880,
|
|
64
|
+
"l": 180,
|
|
65
|
+
"a": 8,
|
|
66
|
+
"preenchimento": "#ff5a36",
|
|
67
|
+
"espessura": 8
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"tipo": "texto",
|
|
71
|
+
"x": 86,
|
|
72
|
+
"y": 926,
|
|
73
|
+
"l": 800,
|
|
74
|
+
"a": 60,
|
|
75
|
+
"texto": "primocode.studio",
|
|
76
|
+
"tamanho": 36,
|
|
77
|
+
"cor": "#bf9c8a"
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
}
|
|
81
|
+
]
|
|
82
|
+
},
|
|
83
|
+
"atualizado": "2026-08-16T15:07:33+00:00"
|
|
84
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "traco-estatico-traco-25872",
|
|
3
|
+
"ferramenta": "traco",
|
|
4
|
+
"titulo": "estatico-traco",
|
|
5
|
+
"doc": {
|
|
6
|
+
"tema": "meia-noite",
|
|
7
|
+
"largura": 1920,
|
|
8
|
+
"altura": 1080,
|
|
9
|
+
"cenas": [
|
|
10
|
+
{
|
|
11
|
+
"layout": "livre",
|
|
12
|
+
"fundo": "pontos",
|
|
13
|
+
"elementos": [
|
|
14
|
+
{
|
|
15
|
+
"id": "ped",
|
|
16
|
+
"tipo": "no",
|
|
17
|
+
"texto": "Pedido aberto",
|
|
18
|
+
"x": 120,
|
|
19
|
+
"y": 480,
|
|
20
|
+
"l": 320,
|
|
21
|
+
"a": 140,
|
|
22
|
+
"destaque": true,
|
|
23
|
+
"anim": "nenhuma"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": "val",
|
|
27
|
+
"tipo": "no",
|
|
28
|
+
"texto": "Validação\nfiscal",
|
|
29
|
+
"x": 620,
|
|
30
|
+
"y": 480,
|
|
31
|
+
"l": 320,
|
|
32
|
+
"a": 140,
|
|
33
|
+
"anim": "nenhuma"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"id": "ger",
|
|
37
|
+
"tipo": "no",
|
|
38
|
+
"texto": "Aprovação\ngerência",
|
|
39
|
+
"x": 1120,
|
|
40
|
+
"y": 300,
|
|
41
|
+
"l": 320,
|
|
42
|
+
"a": 140,
|
|
43
|
+
"anim": "nenhuma"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"id": "dir",
|
|
47
|
+
"tipo": "no",
|
|
48
|
+
"texto": "Aprovação\ndiretoria",
|
|
49
|
+
"x": 1120,
|
|
50
|
+
"y": 660,
|
|
51
|
+
"l": 320,
|
|
52
|
+
"a": 140,
|
|
53
|
+
"anim": "nenhuma"
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"id": "ok",
|
|
57
|
+
"tipo": "no",
|
|
58
|
+
"texto": "Compra\nemitida",
|
|
59
|
+
"x": 1560,
|
|
60
|
+
"y": 480,
|
|
61
|
+
"l": 280,
|
|
62
|
+
"a": 140,
|
|
63
|
+
"destaque": true,
|
|
64
|
+
"anim": "nenhuma"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"tipo": "conector",
|
|
68
|
+
"de": "ped",
|
|
69
|
+
"para": "val",
|
|
70
|
+
"anim": "nenhuma"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"tipo": "conector",
|
|
74
|
+
"de": "val",
|
|
75
|
+
"para": "ger",
|
|
76
|
+
"texto": "até R$ 20 mil",
|
|
77
|
+
"anim": "nenhuma"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"tipo": "conector",
|
|
81
|
+
"de": "val",
|
|
82
|
+
"para": "dir",
|
|
83
|
+
"texto": "acima de R$ 20 mil",
|
|
84
|
+
"anim": "nenhuma"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"tipo": "conector",
|
|
88
|
+
"de": "ger",
|
|
89
|
+
"para": "ok",
|
|
90
|
+
"anim": "nenhuma"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"tipo": "conector",
|
|
94
|
+
"de": "dir",
|
|
95
|
+
"para": "ok",
|
|
96
|
+
"anim": "nenhuma"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"tipo": "texto",
|
|
100
|
+
"x": 120,
|
|
101
|
+
"y": 120,
|
|
102
|
+
"l": 900,
|
|
103
|
+
"a": 120,
|
|
104
|
+
"texto": "Compras · fluxo vigente",
|
|
105
|
+
"papel": "chapeu",
|
|
106
|
+
"anim": "nenhuma"
|
|
107
|
+
}
|
|
108
|
+
]
|
|
109
|
+
}
|
|
110
|
+
]
|
|
111
|
+
},
|
|
112
|
+
"atualizado": "2026-08-16T15:08:28+00:00"
|
|
113
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "traco-sweep-traco-0bcf4",
|
|
3
|
+
"ferramenta": "traco",
|
|
4
|
+
"titulo": "sweep-traco",
|
|
5
|
+
"doc": {
|
|
6
|
+
"tema": "meia-noite",
|
|
7
|
+
"largura": 1920,
|
|
8
|
+
"altura": 1080,
|
|
9
|
+
"cenas": [
|
|
10
|
+
{
|
|
11
|
+
"layout": "livre",
|
|
12
|
+
"fundo": "pontos",
|
|
13
|
+
"elementos": [
|
|
14
|
+
{
|
|
15
|
+
"id": "ped",
|
|
16
|
+
"tipo": "no",
|
|
17
|
+
"texto": "Pedido aberto",
|
|
18
|
+
"x": 120,
|
|
19
|
+
"y": 480,
|
|
20
|
+
"l": 320,
|
|
21
|
+
"a": 140,
|
|
22
|
+
"destaque": true
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"id": "val",
|
|
26
|
+
"tipo": "no",
|
|
27
|
+
"texto": "Validação\nfiscal",
|
|
28
|
+
"x": 620,
|
|
29
|
+
"y": 480,
|
|
30
|
+
"l": 320,
|
|
31
|
+
"a": 140
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"id": "ger",
|
|
35
|
+
"tipo": "no",
|
|
36
|
+
"texto": "Aprovação\ngerência",
|
|
37
|
+
"x": 1120,
|
|
38
|
+
"y": 300,
|
|
39
|
+
"l": 320,
|
|
40
|
+
"a": 140
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"id": "dir",
|
|
44
|
+
"tipo": "no",
|
|
45
|
+
"texto": "Aprovação\ndiretoria",
|
|
46
|
+
"x": 1120,
|
|
47
|
+
"y": 660,
|
|
48
|
+
"l": 320,
|
|
49
|
+
"a": 140
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"id": "ok",
|
|
53
|
+
"tipo": "no",
|
|
54
|
+
"texto": "Compra\nemitida",
|
|
55
|
+
"x": 1560,
|
|
56
|
+
"y": 480,
|
|
57
|
+
"l": 280,
|
|
58
|
+
"a": 140,
|
|
59
|
+
"destaque": true
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"tipo": "conector",
|
|
63
|
+
"de": "ped",
|
|
64
|
+
"para": "val"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"tipo": "conector",
|
|
68
|
+
"de": "val",
|
|
69
|
+
"para": "ger",
|
|
70
|
+
"texto": "até R$ 20 mil"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"tipo": "conector",
|
|
74
|
+
"de": "val",
|
|
75
|
+
"para": "dir",
|
|
76
|
+
"texto": "acima de R$ 20 mil"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"tipo": "conector",
|
|
80
|
+
"de": "ger",
|
|
81
|
+
"para": "ok"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"tipo": "conector",
|
|
85
|
+
"de": "dir",
|
|
86
|
+
"para": "ok"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"tipo": "texto",
|
|
90
|
+
"x": 120,
|
|
91
|
+
"y": 120,
|
|
92
|
+
"l": 900,
|
|
93
|
+
"a": 120,
|
|
94
|
+
"texto": "Compras · fluxo vigente",
|
|
95
|
+
"papel": "chapeu"
|
|
96
|
+
}
|
|
97
|
+
]
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
},
|
|
101
|
+
"atualizado": "2026-08-16T15:07:33+00:00"
|
|
102
|
+
}
|
|
@@ -70,18 +70,69 @@ fatos da SUA tarefa. O servidor recusa documento que venha com estas frases.
|
|
|
70
70
|
|
|
71
71
|
---
|
|
72
72
|
|
|
73
|
-
##
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
|
73
|
+
## ANTES DE ESCREVER: escolha, não repita
|
|
74
|
+
|
|
75
|
+
O exemplo acima é UMA receita. Usar sempre ela — `brasa`, `pulso`, gancho →
|
|
76
|
+
problema → virada — é o que faz todo vídeo sair com a mesma cara. O dono já
|
|
77
|
+
reclamou disso: *"ele não alterna entre os temas, usa um tema só pra todos os
|
|
78
|
+
vídeos, e o vídeo sempre tem a mesma estrutura, fica tudo genérico"*.
|
|
79
|
+
|
|
80
|
+
Escolha as quatro coisas abaixo **pelo assunto**, antes de escrever a primeira
|
|
81
|
+
cena. Se o assunto não empurrar para nenhuma, escolha a que você NÃO usou da
|
|
82
|
+
última vez — nunca a primeira da lista por comodidade.
|
|
83
|
+
|
|
84
|
+
| Assunto | `tema` | `trilha` | Estrutura |
|
|
85
|
+
|---|---|---|---|
|
|
86
|
+
| produto, tecnologia, lançamento | `meia-noite` ou `neon` | `pulso` | **Gancho** |
|
|
87
|
+
| institucional, quem somos, serviço | `oceano` ou `floresta` | `ambiente` | **Retrato** |
|
|
88
|
+
| urgência, notícia, alerta, dado duro | `brasa` | `tenso` | **Manchete** |
|
|
89
|
+
| explicação, tutorial, passo a passo | `papel` ou `claro` | `lofi` | **Aula** |
|
|
90
|
+
| conquista, agradecimento, celebração | `doce` ou `neon` | `alegre` | **Brinde** |
|
|
91
|
+
| memória, história, retrospectiva | `retro` ou `mono` | `lofi` | **Linha** |
|
|
92
|
+
|
|
93
|
+
### As seis estruturas
|
|
94
|
+
|
|
95
|
+
Cada uma tem ritmo próprio. Não misture, e não use "Gancho" para tudo.
|
|
96
|
+
|
|
97
|
+
**Gancho** (vender algo) — 7 a 9 cenas de 3 a 5 s
|
|
98
|
+
frase que segura o dedo · o problema, concreto · a virada, um argumento por
|
|
99
|
+
cena · número ou prova · chamada.
|
|
100
|
+
|
|
101
|
+
**Retrato** (apresentar quem faz) — 5 a 6 cenas de 4 a 6 s, mais calmo
|
|
102
|
+
o nome e o que faz · para quem · como trabalha · uma prova (número, cliente,
|
|
103
|
+
tempo de casa) · convite. Transições suaves (`fade`, `limpar`), sem `flash`.
|
|
104
|
+
|
|
105
|
+
**Manchete** (informar rápido) — 4 a 6 cenas de 2 a 4 s, seco
|
|
106
|
+
o fato em uma linha · o número que dói · por que aconteceu · o que muda para
|
|
107
|
+
você. Corte duro entre cenas (`corte`, `flash`), texto grande, pouca palavra.
|
|
108
|
+
|
|
109
|
+
**Aula** (ensinar) — 6 a 10 cenas de 4 a 7 s
|
|
110
|
+
a pergunta · por que importa · passo 1, 2, 3 (uma cena cada, com `lista`
|
|
111
|
+
revelando) · o resumo · o erro comum a evitar. Fundo calmo, sem fogos.
|
|
112
|
+
|
|
113
|
+
**Brinde** (celebrar) — 4 a 6 cenas de 3 a 4 s
|
|
114
|
+
a conquista · os números dela · quem fez acontecer · agradecimento.
|
|
115
|
+
Animações vivas (`saltar`, `elastico`), fundo com brilho.
|
|
116
|
+
|
|
117
|
+
**Linha** (contar uma história no tempo) — 6 a 8 cenas de 4 a 5 s
|
|
118
|
+
o começo · o que mudou em cada etapa (uma cena por marco, com o ano no
|
|
119
|
+
`chapeu`) · onde chegou · o que vem. Um `tema` por época, se fizer sentido.
|
|
120
|
+
|
|
121
|
+
### Regras que matam o genérico
|
|
122
|
+
|
|
123
|
+
- **O `fundo` muda a cena a cena.** Onze existem. Dez cenas com o mesmo fundo
|
|
124
|
+
é o que faz parecer template. Repetir um fundo tudo bem; repetir TODOS não.
|
|
125
|
+
- **A `transicao` muda também.** Tudo em `fade` parece slide, não vídeo.
|
|
126
|
+
- **A `trilha` combina com o assunto.** Seis estilos existem; `pulso` não é o
|
|
127
|
+
padrão de nada — é o de vídeo de produto.
|
|
128
|
+
- **Cor de destaque.** Se o usuário tem marca, `marca.cor` pinta números,
|
|
129
|
+
gráficos e detalhes. Sem marca, escolha `tom` na cena que mais importa.
|
|
130
|
+
- **Uma cena fora do tom.** Uma citação em `papel` no meio de um deck escuro,
|
|
131
|
+
ou uma cena `mono` antes do fecho, vale mais que dez efeitos.
|
|
132
|
+
|
|
133
|
+
Um Reels de 30 s é 7 a 9 cenas de 3 a 5 segundos. A regra é dura:
|
|
134
|
+
**uma frase por cena**. Se não dá para ler em voz alta dentro da duração,
|
|
135
|
+
corte texto.
|
|
85
136
|
|
|
86
137
|
Vertical é `1080 × 1920`. Horizontal (`1920 × 1080`) só quando o destino for YouTube
|
|
87
138
|
ou tela grande. Em vertical, os tamanhos padrão de texto já crescem sozinhos.
|
|
@@ -127,6 +178,102 @@ livre de direitos, ou uma das trilhas geradas acima.
|
|
|
127
178
|
|
|
128
179
|
---
|
|
129
180
|
|
|
181
|
+
## Editar o vídeo do usuário (`clipe`)
|
|
182
|
+
|
|
183
|
+
Quando a pessoa manda uma gravação dela — o rosto falando, uma tela gravada,
|
|
184
|
+
uma cena de celular — o trabalho é EDITAR, não ilustrar. O elemento `clipe`
|
|
185
|
+
põe um trecho dessa gravação dentro de uma cena.
|
|
186
|
+
|
|
187
|
+
**Primeiro passo, sempre:** `studio_midia` com o caminho do arquivo. Ele
|
|
188
|
+
devolve uma URL `/midia/...`. Um caminho do disco (`/Users/...`, `C:\...`)
|
|
189
|
+
não funciona — o navegador não abre arquivo local.
|
|
190
|
+
|
|
191
|
+
```json
|
|
192
|
+
{ "tipo": "clipe", "src": "/midia/gravacao.mp4", "de": 12.4, "ate": 19.8 }
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
| campo | o que faz |
|
|
196
|
+
|---|---|
|
|
197
|
+
| `src` | a URL que `studio_midia` devolveu — obrigatório |
|
|
198
|
+
| `de` / `ate` | segundos **no arquivo original**. O trecho, não a cena |
|
|
199
|
+
| `mudo` | `true` deixa só a imagem (quando quem fala é a narração) |
|
|
200
|
+
| `volume` | 0 a 1, para misturar a voz da gravação com a trilha |
|
|
201
|
+
| `ajuste` | `"cobrir"` (padrão, enche o quadro) ou `"conter"` |
|
|
202
|
+
| `filtro` | `"cinza"`, `"sepia"`, `"contraste"`, `"desbotado"` |
|
|
203
|
+
| `x`/`y` | só se quiser quadro-dentro-do-quadro; sem eles ocupa a cena inteira |
|
|
204
|
+
|
|
205
|
+
Sem `x`/`y` o clipe é o CHÃO da cena: a imagem enche o quadro e o texto fica
|
|
206
|
+
por cima. É o que se quer quase sempre.
|
|
207
|
+
|
|
208
|
+
**Não escreva `duracao` numa cena com clipe.** A cena passa a durar o trecho
|
|
209
|
+
(`ate` − `de`) sozinha. Escrever `duracao` por cima é o que faz o corte não
|
|
210
|
+
cortar: o trecho de 1,2s fica congelado até completar os 4s.
|
|
211
|
+
|
|
212
|
+
### Cortar as pausas
|
|
213
|
+
|
|
214
|
+
**Não adivinhe onde estão.** Chame `studio_analisar` com a URL do vídeo: ele
|
|
215
|
+
ouve o arquivo e devolve `trechos`, a lista de `[início, fim]` já sem os
|
|
216
|
+
silêncios. Cada trecho vira uma cena.
|
|
217
|
+
|
|
218
|
+
```
|
|
219
|
+
studio_analisar arquivo: "/midia/gravacao.mp4"
|
|
220
|
+
→ { trechos: [[0.8, 6.2], [9.5, 17.1], [19.0, 24.3]], cortado: 4.6 }
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
`pausa` (padrão 0,6s) é a partir de quantos segundos de silêncio conta como
|
|
224
|
+
pausa. Suba para 1.0 se a pessoa fala pausado e o corte ficou ofegante.
|
|
225
|
+
|
|
226
|
+
A análise leva alguns segundos e abre uma aba que se fecha sozinha — é o
|
|
227
|
+
navegador que sabe ler o áudio de um .mp4. Se ela não responder, siga com o
|
|
228
|
+
vídeo inteiro num clipe só; não invente tempos.
|
|
229
|
+
|
|
230
|
+
Cortar as pausas é escrever VÁRIOS clipes do mesmo `src`, com os silêncios de
|
|
231
|
+
fora. Uma cena por trecho aproveitado:
|
|
232
|
+
|
|
233
|
+
```json
|
|
234
|
+
"cenas": [
|
|
235
|
+
{ "layout": "capa", "transicao": "fade",
|
|
236
|
+
"elementos": [{ "tipo": "clipe", "src": "/midia/gravacao.mp4", "de": 0.8, "ate": 6.2 },
|
|
237
|
+
{ "tipo": "texto", "papel": "titulo", "texto": "O que ninguém te conta" }] },
|
|
238
|
+
{ "layout": "capa", "transicao": "corte",
|
|
239
|
+
"elementos": [{ "tipo": "clipe", "src": "/midia/gravacao.mp4", "de": 9.5, "ate": 17.1 }] }
|
|
240
|
+
]
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
Entre 6.2 e 9.5 havia uma pausa: ela simplesmente não entra. Use `"transicao":
|
|
244
|
+
"corte"` entre trechos da mesma fala — fade entre dois pedaços da mesma frase
|
|
245
|
+
parece defeito.
|
|
246
|
+
|
|
247
|
+
### Legendar
|
|
248
|
+
|
|
249
|
+
A legenda é um `texto` com `"papel": "fala"` na mesma cena do clipe:
|
|
250
|
+
|
|
251
|
+
```json
|
|
252
|
+
{ "tipo": "texto", "papel": "fala", "texto": "isso mudou tudo pra mim" }
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
Ela já vai sozinha para o terço de baixo, branca, com chapa escura atrás —
|
|
256
|
+
legível sobre qualquer imagem. Não use `papel: "legenda"` para isso: aquele é
|
|
257
|
+
o rodapé de um slide, com 18px, ilegível num vídeo.
|
|
258
|
+
|
|
259
|
+
Uma frase curta por cena, no ritmo da fala — nunca o parágrafo inteiro. Se o
|
|
260
|
+
trecho é longo, quebre em mais cenas do mesmo `src` em vez de encher a tela.
|
|
261
|
+
|
|
262
|
+
### Só a voz dele
|
|
263
|
+
|
|
264
|
+
Para deixar apenas a voz da gravação: `"mudo": false` no clipe e trilha em
|
|
265
|
+
volume baixo (`"volume": 0.15`) ou `"trilha": {"tipo": "nenhuma"}`. Para o
|
|
266
|
+
contrário — a imagem dele com a sua narração por cima — `"mudo": true` e
|
|
267
|
+
`narracao` na cena.
|
|
268
|
+
|
|
269
|
+
### A música que combina
|
|
270
|
+
|
|
271
|
+
Não repita a mesma trilha em todo vídeo do usuário. Depoimento e história
|
|
272
|
+
pessoal pedem `lofi` ou `ambiente`; anúncio e lançamento pedem `pulso` ou
|
|
273
|
+
`epico`; algo leve pede `alegre`. A tabela de estilos está acima.
|
|
274
|
+
|
|
275
|
+
---
|
|
276
|
+
|
|
130
277
|
## Narração
|
|
131
278
|
|
|
132
279
|
A voz que fala por cima do vídeo. Vai **na cena**, e o estúdio narra sozinho
|