AoE Editor
Use esta skill para processar longas gravações de sessões de jogo de Age of Empires (AoE) em clipes de partidas independentes e limpos, gerar miniaturas autênticas do YouTube e gerenciar uploads agendados para o YouTube.
Diretrizes Estritas de Segurança e Proteção
1. Preservação da Gravação Original e Marcação de Conclusão
[!IMPORTANT] NUNCA DELETE AS GRAVAÇÕES ORIGINAIS — MARQUE ARQUIVOS CONCLUÍDOS COM
- aoe-editor-doneSob NENHUMA circunstância o agente deve deletar, remover ou sobrescrever os arquivos de gravação originais (ex.: em$env:USERPROFILE\Videos\).
- Fonte Permanente Intocada Durante o Processamento: Mesmo após os clipes serem extraídos, revisados ou enviados para o YouTube, a filmagem original da sessão nunca deve ser deletada.
- Renomeação Após Conclusão (
- aoe-editor-done): Assim que todas as partidas de uma gravação fonte terminarem de ser editadas, cortadas, verificadas e salvas na pasta de destino por data, o arquivo fonte DEVE ser renomeado adicionando- aoe-editor-doneantes da extensão:
- Exemplo (
.mp4):2026-10-27 20-35-29.mp4->2026-10-27 20-35-29 - aoe-editor-done.mp4- Exemplo (qualquer extensão):
<nome_arquivo>.<ext>-><nome_arquivo> - aoe-editor-done.<ext>- Comando PowerShell:
$item = Get-Item "<CaminhoFonte>" Rename-Item -Path $item.FullName -NewName "$($item.BaseName) - aoe-editor-done$($item.Extension)"- Pular Arquivos Já Concluídos: Ao escanear ou identificar gravações de sessão para processar, sempre ignore e pule qualquer arquivo que já contenha
- aoe-editor-doneantes da extensão.- Partidas Descartadas: Para partidas que são puladas ou descartadas (ex.: duração < 7 minutos), simplesmente pule a extração daquele segmento. Nunca corte, trunque ou delete nada do vídeo fonte.
- Limpeza Temporária Apenas: Apenas arquivos temporários (como JPEGs de frames de amostra em uma pasta temporária/scratch) podem ser limpos. Nunca delete arquivos de vídeo fonte.
2. Proteção Estrita de Credenciais e Segurança
[!CAUTION] NUNCA LEIA ARQUIVOS DE CREDENCIAIS OU TOKENS Sob NENHUMA circunstância o agente deve ler, visualizar, exibir ou inspecionar o conteúdo de quaisquer arquivos de credenciais, segredos ou tokens.
- Inspeção Zero: Especificamente, NUNCA leia, inspecione, cat, imprima ou produza nenhum arquivo dentro de
$env:USERPROFILE\Videos\yt-uploader\(comorequest.token,youtube.token.json,client_secrets.jsonou quaisquer arquivos de credencial*.token/*.json).- Execução Apenas: Ao executar
yutu, invoque-o apenas com variáveis de ambiente (YUTU_CREDENTIAL,YUTU_CACHE_TOKEN) e flags de linha de comando. Nunca inspecione ou produza os tokens ou segredos que ele lê.
3. Prevenção de Suspensão Durante Processamento Não Supervisionado (Keep-Awake Nativo)
Para permitir que o fluxo de trabalho seja executado completamente sem supervisão (detectando, cortando clipes, renderizando miniaturas ou enviando lotes para o YouTube) enquanto permite que o monitor do usuário desligue ou durma naturalmente:
- Método Padrão (API Nativa do Windows - Tela Pode Dormir): Use
SetThreadExecutionStatedo Windows comES_CONTINUOUS | ES_SYSTEM_REQUIRED(0x80000001). Isso informa ao Windows que o processamento/envio em segundo plano está ativo, garantindo que CPU, disco e rede nunca durmam, enquanto permite que monitores desliguem ou durmam conforme as configurações normais de energia do Windows:$sig = '[DllImport("kernel32.dll", SetLastError=true)] public static extern int SetThreadExecutionState(int esFlags);' $power = Add-Type -MemberDefinition $sig -Name 'PowerHelper' -Namespace 'SystemSleep' -PassThru # Impede suspensão do sistema (permite que a tela durma) $power::SetThreadExecutionState([int]0x80000001) - Liberando o Bloqueio de Suspensão: Assim que todas as tarefas em lote ou uploads forem concluídos, redefina o estado de execução de volta ao modo contínuo padrão:
$power::SetThreadExecutionState([int]0x80000000) - Alternativa (Caffeine): Caffeine está instalado em
caffeine64.exe. Como o Caffeine simula entrada de teclado a cada 59s, ele impedirá a suspensão da tela, a menos que o monitor seja fisicamente desligado. Use o método nativo acima como padrão. - Durações/Usos Recomendados:
- Mantenha ativo pela duração do trabalho em lote (especialmente uploads, que podem levar de 1 a 3 horas para 6 a 8 GB de vídeo) e libere imediatamente após a conclusão.
Estrutura de Pastas de Destino
Todos os jogos processados e miniaturas são salvos no diretório aoe dentro de uma subpasta formatada por data derivada do nome do arquivo de gravação:
$env:USERPROFILE\Videos\aoe\<DDMmmAA>\
├── Jogo 1 - <MinhaCiv> vs <CivOponente> (<Mapa> - <Resultado>).mp4
├── Jogo 1 - <MinhaCiv> vs <CivOponente> (<Mapa> - <Resultado>).png # Miniatura correspondendo exatamente ao nome do vídeo
├── Jogo 3 - <MinhasCivsEquipe> vs <CivsOponentes> (<Mapa> - <Resultado>).mp4 # (ex.: Jogo 2 foi <7min descartado)
├── Jogo 3 - <MinhasCivsEquipe> vs <CivsOponentes> (<Mapa> - <Resultado>).png
└── ...
Regra da Pasta de Data
- A data é analisada a partir do nome do arquivo de vídeo:
AAAA-MM-DD ...- Exemplo:
2026-10-27 20-35-29.mp4->27Out26 - Exemplo:
2026-10-29 19-46-42.mp4->29Out26 - Formato:
<Dia><Mês de 3 letras><Ano de 2 dígitos>(ex.:13Out26,27Out26,29Out26).
- Exemplo:
Filtragem de Jogos e Regras de Duração
-
Jogos Curtos Abaixo de 7 Minutos (Descartar Automaticamente / Pular Exportação):
- Qualquer partida com duração no jogo abaixo de 7 minutos (ex.: desistência precoce, desconexão, início falho) deve ser pulada da exportação (não extraída ou salva como clipe de saída). NÃO delete, trunque ou modifique qualquer parte do vídeo fonte original.
- Preservação da Numeração Cronológica: Partidas descartadas ainda consomem seu número cronológico da sessão de gravação.
- Exemplo: Se o Jogo 1 tem 18m, o Jogo 2 tem 2m (descartado) e o Jogo 3 tem 25m, os arquivos de saída resultantes serão
Jogo 1 - ...seguido porJogo 3 - .... O Jogo 2 é pulado na lista de arquivos para que os números reflitam com precisão a sequência original de partidas.
- Exemplo: Se o Jogo 1 tem 18m, o Jogo 2 tem 2m (descartado) e o Jogo 3 tem 25m, os arquivos de saída resultantes serão
-
Jogos Desequilibrados / Chatos (Cortar e Revisão do Usuário):
- Se uma partida parecer fortemente desequilibrada ou chata (ex.: vantagem massiva e precoce, resistência/engajamentos mínimos, esmagamento não competitivo):
- Corte e salve o jogo na pasta de data normalmente para que a filmagem local seja preservada.
- Notifique o usuário: Informe o usuário com os detalhes do clipe, timestamp e por que pareceu desequilibrado/chato. Peça ao usuário para revisar o clipe antes de decidir se deve ser enfileirado para upload no YouTube.
- Se uma partida parecer fortemente desequilibrada ou chata (ex.: vantagem massiva e precoce, resistência/engajamentos mínimos, esmagamento não competitivo):
Detecção de Jogos e Regras de Corte
-
Ponto de Início do Clipe:
- Comece bem quando a tela de carregamento transiciona para o início do jogo (centro da cidade e unidades iniciais aparecem).
-
Ponto de Término do Clipe e Análise Pós-Jogo:
- Manter Análise Pós-Jogo: Se o jogador revisar as telas de conquistas pós-jogo (Resumo, Militar, Economia, Tecnologia, Sociedade) ou assistir a uma análise de replay, mantenha isso no clipe do vídeo do jogo.
- O clipe termina quando o jogador sai da tela pós-jogo/replay de volta ao menu principal ou fila.
-
O Que Cortar:
- Tempos de fila de matchmaking.
- Telas de espera do lobby e contagem regressiva de seleção de civilizações.
- Qualquer tempo ocioso, navegação na área de trabalho ou segmentos AFK (longe do teclado).
Convenções de Nomenclatura Estritas
1. Nomes de Arquivos Locais de Vídeo e Miniatura (.mp4 / .png)
Arquivos locais no disco são nomeados para rastreamento local, arquivamento e cronologia de partidas:
- Número do Jogo: O índice cronológico da partida da sessão (
Jogo 1,Jogo 2, etc.), preservando números pulados para partidas descartadas <7min. - Civilizações:
- 1v1:
Jogo <N> - <MinhaCiv> vs <CivOponente> (<Mapa> - <Resultado/Notas>).mp4- Exemplo:
Jogo 1 - Etíopes vs Francos (Arábia - Vitória).mp4
- Exemplo:
- Equipe:
Jogo <N> - <MinhasCivsEquipe> vs <CivsOponentes> (<Mapa> - <Resultado/Notas>).mp4- Exemplo:
Jogo 3 - Khmer e Francos vs Persas e Boêmios (Arena - Vitória).mp4
- Exemplo:
- 1v1:
- Nome do Arquivo de Miniatura: Deve corresponder ao nome do arquivo
.mp4caractere por caractere, trocando.mp4por.png.
2. Títulos de Vídeo no YouTube (Enviados para o YouTube via -title / -metaJSON)
[!IMPORTANT] TÍTULOS DO YOUTUBE: SEM SPOILERS DE VITÓRIA/DERROTA E SEM NÚMEROS DE JOGOS Os títulos publicados no YouTube NUNCA devem estragar o resultado da partida e NUNCA devem incluir números de jogos da sessão:
- NÃO inclua
VitóriaouDerrota: Nunca estrague o resultado da partida para o público.- NÃO inclua
Jogo 1,Jogo 2, etc.: Os espectadores no YouTube navegam por partidas independentes, não por índices brutos de sessão.- Sintaxe Padrão de Título do YouTube:
<MinhasCivsEquipe> vs <CivsOponentes> AOE2 <FormatoPartida> <Mapa>
- Formato 1v1:
<MinhaCiv> vs <CivOponente> AOE2 1v1 <Mapa>
- Exemplo:
Khmer vs Boêmios AOE2 1v1 Arena- Exemplo:
Dravidianos vs Tártaros AOE2 1v1 Deserto Arábico- Exemplo:
Etíopes vs Francos AOE2 1v1 Deserto Arábico- Formato 2v2:
<Civ1> & <Civ2> vs <Civ3> & <Civ4> AOE2 2v2 <Mapa>
- Exemplo:
Khmer & Francos vs Persas & Boêmios AOE2 2v2 Arena- Exemplo:
Khmer & Bengali vs Malineses & Mongóis AOE2 2v2 Arena- Formato 3v3:
<Civ1>, <Civ2> & <Civ3> vs <Civ4>, <Civ5> & <Civ6> AOE2 3v3 <Mapa>
- Exemplo:
Khmer, Boêmios & Godos vs Etíopes, Romanos & Celtas AOE2 3v3 Arena- Formato 4v4:
<Civ1>, <Civ2>, <Civ3> & <Civ4> vs <Civ5>, <Civ6>, <Civ7> & <Civ8> AOE2 4v4 <Mapa>
- Exemplo:
Etíopes, Francos, Bretões & Maias vs Mongóis, Tártaros, Turcos & Persas AOE2 4v4 Floresta Negra
Diretrizes para Miniaturas Autênticas e Memes Dinâmicos (.png)
[!IMPORTANT] O NOME DO ARQUIVO DA MINIATURA DEVE CORRESPONDER AO NOME DO ARQUIVO DO VÍDEO O nome do arquivo da miniatura para cada vídeo deve corresponder exatamente ao nome do arquivo do vídeo (trocando a extensão para
.png):
- Vídeo:
Jogo 1 - Etíopes vs Francos (Arábia - Vitória).mp4- Miniatura:
Jogo 1 - Etíopes vs Francos (Arábia - Vitória).png- Vídeo:
Jogo 3 - Khmer e Francos vs Persas e Boêmios (Arena - Vitória).mp4- Miniatura:
Jogo 3 - Khmer e Francos vs Persas e Boêmios (Arena - Vitória).png
Evite clickbait enganoso ou tropos repetitivos de meme único. Baseie a miniatura no que realmente aconteceu, mantendo edições de meme variadas, orgânicas e adequadas à história da partida:
1. Estilo de Miniatura de Alto Impacto e Tipografia
Crie uma tipografia ousada e de alto contraste otimizada para legibilidade em feed móvel:
- Texto Grande e Impactante: O tamanho da fonte deve ser grande e imediatamente legível em feeds móveis (
fontsize=140a160para 1440p, escalado para outras resoluções). Nunca use texto pequeno e de baixo contraste (<100). - Contornos Grossos e Sombras: Use uma borda preta grossa (
borderw=8a12) e sombra (shadowx=4:shadowy=4:shadowcolor=black) para que o texto se destaque em qualquer fundo. - Estilo de Texto em Duas Cores e Multicolorido: Não use texto branco simples padrão. Use cores contrastantes e vibrantes entre palavras/linhas:
- Palavra superior em Branco (
#FFFFFF), Palavra inferior/principal em Dourado/Amarelo Vibrante (#FFD700ou#FFE500) ou Laranja (#FF8C00). - Exemplos de layouts de duas cores:
"VAMOS ROUBAR" (Branco) / "UM OURO!" (Amarelo)"POSTO" (Branco) / "VINGANÇA!" (Laranja)"CASTELO" (Branco) / "DESTRUIDOR" (Amarelo)"POR QUE FAZER" (Branco) / "ISSO?!" (Laranja)"BOLA DE" (Branco) / "MORTE ESCORPIÃO" (Amarelo)"CERCO CELTA" (Amarelo) / "IMPARÁVEL" (Branco)
- Palavra superior em Branco (
- Posicionamento de Texto Dinâmico e Flexível (Espaço Livre Estrito para o Assunto):
-
[!IMPORTANT] O TEXTO NUNCA DEVE COBRIR UNIDADES FOCAIS OU ASSUNTOS
- A sobreposição de texto NUNCA deve cobrir, ocultar ou ficar sobre as unidades focais, edifícios ou evento tático mencionado no gancho (ex.: se o gancho diz
"INVASÃO DE ELEFANTE DE CERCO", os elefantes de cerco devem permanecer 100% visíveis e desobstruídos pelo texto). - Coloque o texto estritamente onde NÃO cobre a ação (em espaço negativo aberto, névoa da guerra ou terreno vazio).
- Verifique onde unidades e combates estão situados na tela e posicione dinamicamente o texto no centro-superior, superior-esquerdo, superior-direito ou centro-inferior para que a ação focal e as unidades do assunto permaneçam completamente desbloqueadas.
-
2. Seleção de Frame de Ação e Substanciação Visual-Textual
- Frames de Base Ociosa Zero: NUNCA selecione um frame onde a câmera esteja recuada sobre fazendas domésticas pacíficas, centros da cidade ou filas econômicas enquanto a ação ocorre em outro lugar.
- Combate Ativo e Ataque em Andamento (NUNCA Consequências Pós-Luta ou Ruínas Vazias):
- O frame DEVE capturar combate vivo e ativo ou um ataque em andamento: unidades colidindo ativamente em combate corpo a corpo, disparando flechas, atirando projéteis de cerco, invadindo uma econômica ou atacando uma base/castelo inimigo.
- NENHUMA Ruína Estática Vazia: NUNCA escolha um frame de muros quebrados ou edifícios danificados onde nenhuma unidade inimiga está ativamente atacando ou presente. Muros quebrados sem tropas ativas parecem abandonados, estáticos e desinteressantes.
- NENHUMA Consequência Pós-Luta (Corpos no Chão): NUNCA escolha um frame tirado após a luta já ter terminado, mostrando apenas cadáveres/corpos mortos no chão com unidades restantes paradas. Capture a ação durante a luta, não depois.
- NENHUM Vazamento de Resultado ou Spoiler de Pontuação:
- A miniatura NUNCA deve revelar o resultado da partida:
- NUNCA capture frames mostrando
"Jogador X desistiu"no chat ou nomes de jogadores riscados na caixa de pontuação. - NENHUMA Disparidade de Pontuação / Vazamento de Base Dominada: NUNCA escolha um frame onde a caixa de pontuação no canto inferior direito exiba uma diferença massiva de pontos (ex.: jogador com 70–75% da pontuação do oponente) enquanto a base do jogador está em ruínas/sendo invadida. Isso vaza descaradamente uma derrota para o espectador e estraga a suspense. Mantenha a pontuação e o estado do tabuleiro ambíguos ou recortados/limpos.
- NUNCA capture frames mostrando
- Todos os frames de miniatura DEVEM ser capturados durante jogabilidade ativa, tensa e competitiva.
- A miniatura NUNCA deve revelar o resultado da partida:
- Qualidade da Expressão da Webcam e Protocolo de Inspeção de Corte (Crop):
- Se a gravação apresentar uma sobreposição de webcam / face cam:
- Inspeção Dedicada da Face Cam (Corte e Verifique em Escala 1:1): Nunca confie apenas em uma visão completa de 1440p para julgar expressões faciais. O agente DEVE cortar e inspecionar a região da webcam (
crop=390:300:0:890ou caixa equivalente) isoladamente em escala de pixel 1:1 antes de finalizar a miniatura.
- Inspeção Dedicada da Face Cam (Corte e Verifique em Escala 1:1): Nunca confie apenas em uma visão completa de 1440p para julgar expressões faciais. O agente DEVE cortar e inspecionar a região da webcam (
- Se a gravação apresentar uma sobreposição de webcam / face cam: