Communitygithub.com

Editor de AoE

Flujo de trabajo completo de edición y publicación de videos de Age of Empires. Detecta y corta grabaciones de sesiones en clips de partidas individuales, genera miniaturas auténticas para YouTube y gestiona subidas programadas.

¿Qué es Editor de AoE?

Esta habilidad está diseñada para procesar grabaciones largas de sesiones de juego de Age of Empires (AoE) en clips de partidas individuales limpios y organizados. Ofrece detección automática de partidas, corte preciso que elimina tiempos de espera y colas de matchmaking, y conserva el análisis post-partida. Además, genera miniaturas atractivas y auténticas para YouTube basadas en el contenido real de cada partida, siguiendo estrictas reglas visuales y tipográficas para evitar spoilers. La habilidad también gestiona la subida a YouTube, creando títulos sin spoilers y asignando videos a listas de reproducción de 1v1 o Team Games. Está pensada para usarse con asistentes de IA como Claude Code, Cursor o Codex en entornos Windows, e incluye salvaguardas de seguridad como la protección de archivos de credenciales y la prevención de suspensión del sistema durante el procesamiento desatendido. La herramienta conserva los archivos fuente originales y los marca como completados añadiendo ' - aoe-editor-done' antes de la extensión.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add Michael-Steshenko/aoe-editor-skill

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace Editor de AoE?

Usa esta habilidad para procesar grabaciones largas de sesiones de juego de Age of Empires (AoE) en clips de partidas individuales limpios, generar miniaturas auténticas para YouTube y gestionar subidas programadas a YouTube.

Barreras Estrictas de Seguridad y Protección

1. Preservación de Grabaciones Fuente y Marcado de Finalización

[!IMPORTANT] NUNCA ELIMINAR GRABACIONES FUENTE — MARCAR ARCHIVOS COMPLETADOS CON - aoe-editor-done Bajo NINGUNA circunstancia el agente debe eliminar, borrar o sobrescribir los archivos de grabación fuente originales (ej. en $env:USERPROFILE\Videos\).

  • La Fuente Permanece Intacta Durante el Procesamiento: Incluso después de que los clips se hayan extraído, revisado o subido a YouTube, el metraje de la sesión original nunca debe eliminarse.
  • Renombrado al Finalizar ( - aoe-editor-done): Una vez que se hayan terminado de editar, cortar, verificar y guardar todas las partidas de una grabación fuente en la carpeta de fecha de destino, el archivo fuente DEBE renombrarse añadiendo - aoe-editor-done antes de su extensión:
    • Ejemplo (.mp4): 2026-10-27 20-35-29.mp4 -> 2026-10-27 20-35-29 - aoe-editor-done.mp4
    • Ejemplo (cualquier extensión): <nombrearchivo>.<ext> -> <nombrearchivo> - aoe-editor-done.<ext>
    • Comando de PowerShell:
      $item = Get-Item "<RutaFuente>"
      Rename-Item -Path $item.FullName -NewName "$($item.BaseName) - aoe-editor-done$($item.Extension)"
      
  • Saltar Archivos Ya Completados: Al escanear o identificar grabaciones de sesiones para procesar, ignorar y saltar siempre cualquier archivo que ya tenga - aoe-editor-done antes de su extensión.
  • Partidas Descartadas: Para las partidas que se saltan o descartan (ej., duración < 7 minutos), simplemente saltar la extracción de ese segmento. Nunca cortar, truncar ni eliminar nada del video fuente.
  • Solo Limpieza Temporal: Solo se pueden limpiar archivos temporales de trabajo (como JPEGs de fotogramas de muestra en una carpeta temporal/de trabajo). Nunca eliminar archivos de video fuente.

2. Protección Estricta de Credenciales y Seguridad

[!CAUTION] NUNCA LEER ARCHIVOS DE CREDENCIALES O TOKENS Bajo NINGUNA circunstancia el agente debe leer, ver, mostrar o inspeccionar el contenido de ningún archivo de credenciales, secretos o tokens.

  • Inspección Cero: Específicamente, NUNCA leer, inspeccionar, usar cat, imprimir o mostrar ningún archivo dentro de $env:USERPROFILE\Videos\yt-uploader\ (como request.token, youtube.token.json, client_secrets.json o cualquier archivo de credencial *.token / *.json).
  • Solo Ejecución: Al ejecutar yutu, solo invocarlo con variables de entorno (YUTU_CREDENTIAL, YUTU_CACHE_TOKEN) y banderas de línea de comandos. Nunca inspeccionar ni mostrar los tokens o secretos que lee.

3. Prevención de Suspensión Durante Procesamiento Desatendido (Keep-Awake Nativo)

Para permitir que el flujo de trabajo se ejecute completamente desatendido (detectando, cortando clips, renderizando miniaturas o subiendo lotes a YouTube) mientras se permite que la pantalla del usuario se apague o duerma de forma natural:

  • Método Predeterminado (API Nativa de Windows - La Pantalla Puede Dormir): Usar SetThreadExecutionState de Windows con ES_CONTINUOUS | ES_SYSTEM_REQUIRED (0x80000001). Esto informa a Windows que el procesamiento/carga en segundo plano está activo, garantizando que la CPU, el disco y la red nunca se suspendan, mientras permite que los monitores se apaguen o duerman según la configuración de energía normal de Windows:
    $sig = '[DllImport("kernel32.dll", SetLastError=true)] public static extern int SetThreadExecutionState(int esFlags);'
    $power = Add-Type -MemberDefinition $sig -Name 'PowerHelper' -Namespace 'SystemSleep' -PassThru
    # Prevenir suspensión del sistema (permite que la pantalla duerma)
    $power::SetThreadExecutionState([int]0x80000001)
    
  • Liberación del Bloqueo de Suspensión: Una vez que todas las tareas del lote o las cargas estén completadas, restablecer el estado de ejecución al modo continuo predeterminado:
    $power::SetThreadExecutionState([int]0x80000000)
    
  • Alternativa (Caffeine): Caffeine está instalado en caffeine64.exe. Debido a que Caffeine simula la entrada del teclado cada 59 segundos, evitará que la pantalla duerma a menos que el monitor se apague físicamente. Usar el método nativo anterior como estándar.
  • Duración / Uso Recomendados:
    • Mantener activo durante la duración del trabajo por lotes (especialmente las cargas, que pueden tardar de 1 a 3 horas para 6–8 GB de video), y liberar inmediatamente al finalizar.

Estructura de Carpetas de Destino

Todas las partidas procesadas y miniaturas se guardan en el directorio aoe dentro de una subcarpeta con formato de fecha derivada del nombre del archivo de grabación:

$env:USERPROFILE\Videos\aoe\<DDMmmAA>\
  ├── Partida 1 - <MiCiv> vs <CivOponente> (<Mapa> - <Resultado>).mp4
  ├── Partida 1 - <MiCiv> vs <CivOponente> (<Mapa> - <Resultado>).png       # Miniatura que coincide exactamente con el nombre del video
  ├── Partida 3 - <MisCivsEquipo> vs <CivsOponentes> (<Mapa> - <Resultado>).mp4 # (ej. la Partida 2 duró <7 m y se descartó)
  ├── Partida 3 - <MisCivsEquipo> vs <CivsOponentes> (<Mapa> - <Resultado>).png
  └── ...

Regla de la Carpeta de Fecha

  • La fecha se extrae del nombre del archivo de video: AAAA-MM-DD ...
    • Ejemplo: 2026-10-27 20-35-29.mp4 -> 27Oct26
    • Ejemplo: 2026-10-29 19-46-42.mp4 -> 29Oct26
    • Formato: <Día><Mes de 3 letras><Año de 2 dígitos> (ej., 13Oct26, 27Oct26, 29Oct26).

Reglas de Filtrado y Duración de Partidas

  1. Partidas Cortas Menos de 7 Minutos (Descartar/Saltar Exportación Automáticamente):

    • Cualquier partida con una duración en el juego inferior a 7 minutos (ej., rendición temprana, desconexión, inicio fallido) debe saltarse de la exportación (no extraerse ni guardarse como clip de salida). NO eliminar, truncar ni modificar ninguna parte del video fuente original.
    • Preservación de Numeración Cronológica: Las partidas descartadas aún consumen su número cronológico de la sesión de grabación.
      • Ejemplo: Si la Partida 1 dura 18 m, la Partida 2 dura 2 m (descartada) y la Partida 3 dura 25 m, los archivos de salida resultantes serán Partida 1 - ... seguido de Partida 3 - .... La Partida 2 se salta en la lista de archivos para que los números reflejen con precisión la secuencia original de partidas.
  2. Partidas Desiguales / Aburridas (Cortar y Revisión del Usuario):

    • Si una partida parece muy desigual o aburrida (ej., diferencia de puntuación masiva temprana, resistencia/enfrentamientos mínimos, aplastamiento no competitivo):
      • Cortar y guardar la partida en la carpeta de fecha como de costumbre para que el metraje local se conserve.
      • Preguntar al usuario: Notificar al usuario con los detalles del clip, la marca de tiempo y por qué se sintió desigual/aburrida. Pedir al usuario que revise el clip antes de decidir si debe colocarse en la cola para subir a YouTube.

Reglas de Detección y Corte de Partidas

  1. Punto de Inicio del Clip:

    • Comenzar justo cuando la pantalla de carga transita al inicio del juego (aparecen el centro urbano y las unidades iniciales).
  2. Punto de Finalización del Clip y Análisis Post-Partida:

    • Conservar el Análisis Post-Partida: Si el jugador revisa las pantallas de logros posteriores a la partida (Resumen, Militar, Economía, Tecnología, Sociedad) o ve un análisis de la repetición, mantener esto en el clip del video de la partida.
    • El clip termina cuando el jugador sale de la pantalla posterior a la partida / repetición de vuelta al menú principal o a la cola.
  3. Qué Cortar:

    • Tiempos de espera de matchmaking.
    • Pantallas de espera del lobby y cuenta atrás de selección de civilización.
    • Cualquier tiempo de inactividad, navegación por el escritorio o segmentos de AFK (lejos del teclado).

Convenciones Estrictas de Nomenclatura

1. Nombres de Archivos de Video Locales y Miniaturas (.mp4 / .png)

Los archivos locales en el disco se nombran para seguimiento, archivo y cronología de partidas:

  • Número de Partida: El índice cronológico de la partida de la sesión (Partida 1, Partida 2, etc.), preservando los números saltados para partidas descartadas de <7 m.
  • Civilizaciones:
    • 1c1: Partida <N> - <MiCiv> vs <CivOponente> (<Mapa> - <Resultado/Notas>).mp4
      • Ejemplo: Partida 1 - Etíopes vs Francos (Arabia - Victoria).mp4
    • Equipo: Partida <N> - <MisCivsEquipo> vs <CivsOponentes> (<Mapa> - <Resultado/Notas>).mp4
      • Ejemplo: Partida 3 - Jémeres y Francos vs Persas y Bohemios (Arena - Victoria).mp4
  • Nombre de la Miniatura: Debe coincidir con el nombre del archivo .mp4 carácter por carácter, cambiando .mp4 a .png.

2. Títulos de Videos de YouTube (Subidos a YouTube mediante -title / -metaJSON)

[!IMPORTANT] TÍTULOS DE YOUTUBE: SIN SPOILERS DE VICTORIA/DERROTA Y SIN NÚMEROS DE PARTIDA Los títulos publicados en YouTube NUNCA deben spoilear el resultado de la partida y NUNCA deben incluir números de partida de la sesión:

  • NO incluir Victoria o Derrota: Nunca spoilear el resultado de la partida a la audiencia.
  • NO incluir Partida 1, Partida 2, etc.: Los espectadores en YouTube navegan por partidas independientes, no por índices de sesión sin procesar.
  • Sintaxis Estándar de Título de YouTube: <MisCivsEquipo> vs <CivsOponentes> AOE2 <FormatoPartida> <Mapa>
    • Formato 1c1: <MiCiv> vs <CivOponente> AOE2 1c1 <Mapa>
      • Ejemplo: Jémeres vs Bohemios AOE2 1c1 Arena
      • Ejemplo: Dravidianos vs Tártaros AOE2 1c1 Desierto Arábigo
      • Ejemplo: Etíopes vs Francos AOE2 1c1 Desierto Arábigo
    • Formato 2c2: <Civ1> y <Civ2> vs <Civ3> y <Civ4> AOE2 2c2 <Mapa>
      • Ejemplo: Jémeres y Francos vs Persas y Bohemios AOE2 2c2 Arena
      • Ejemplo: Jémeres y Bengalíes vs Malíes y Mongoles AOE2 2c2 Arena
    • Formato 3c3: <Civ1>, <Civ2> y <Civ3> vs <Civ4>, <Civ5> y <Civ6> AOE2 3c3 <Mapa>
      • Ejemplo: Jémeres, Bohemios y Godos vs Etíopes, Romanos y Celtas AOE2 3c3 Arena
    • Formato 4c4: <Civ1>, <Civ2>, <Civ3> y <Civ4> vs <Civ5>, <Civ6>, <Civ7> y <Civ8> AOE2 4c4 <Mapa>
      • Ejemplo: Etíopes, Francos, Bretoneses y Mayas vs Mongoles, Tártaros, Turcos y Persas AOE2 4c4 Bosque Negro

Pautas de Miniatura Auténtica y Meme Dinámico (.png)

[!IMPORTANT] EL NOMBRE DEL ARCHIVO DE LA MINIATURA DEBE COINCIDIR CON EL NOMBRE DEL ARCHIVO DE VIDEO El nombre del archivo de la miniatura para cada video debe coincidir exactamente con el nombre del archivo de video (cambiando la extensión a .png):

  • Video: Partida 1 - Etíopes vs Francos (Arabia - Victoria).mp4
  • Miniatura: Partida 1 - Etíopes vs Francos (Arabia - Victoria).png
  • Video: Partida 3 - Jémeres y Francos vs Persas y Bohemios (Arena - Victoria).mp4
  • Miniatura: Partida 3 - Jémeres y Francos vs Persas y Bohemios (Arena - Victoria).png

Evitar clickbait engañoso o tropos de meme único repetitivos. Basar la miniatura en lo que realmente sucedió, manteniendo las ediciones de memes variadas, orgánicas y adecuadas a la historia de la partida:

1. Estilo y Tipografía de Miniatura de Alto Impacto

Diseñar tipografía audaz y de alto contraste optimizada para la legibilidad en el feed móvil:

  • Texto Grande y Llamativo: El tamaño de fuente debe ser grande e inmediatamente legible en feeds móviles (fontsize=140 a 160 para 1440p, escalado para otras resoluciones). Nunca usar texto pequeño y de bajo contraste (<100).
  • Contornos Gruesos y Sombras Paralelas: Usar un borde negro pesado (borderw=8 a 12) y sombra (shadowx=4:shadowy=4:shadowcolor=black) para que el texto resalte contra cualquier fondo.
  • Estilo de Texto Bicolor y Multicolor: No usar por defecto texto blanco simple único. Usar colores vibrantes y contrastantes en todas las palabras/líneas:
    • Primera palabra en Blanco (#FFFFFF), Palabra de remate/inferior en Amarillo/Dorado Vibrante (#FFD700 o #FFE500) o Naranja (#FF8C00).
    • Ejemplos de diseños bicolor:
      • "VAMOS A ROBAR" (Blanco) / "¡ALGO DE ORO!" (Amarillo)
      • "PUESTO AVANZADO" (Blanco) / "¡VENGANZA!" (Naranja)
      • "CASTILLO" (Blanco) / "DESTRUCTORES" (Amarillo)
      • "¿POR QUÉ HACER" (Blanco) / "¡¿ESTOS?!" (Naranja)
      • "BOLA DE" (Blanco) / "MUERTE" (Amarillo)
      • "ASEDIO CELTA" (Amarillo) / "IMPARABLE" (Blanco)
  • Colocación de Texto Dinámica y Flexible (Espacio Libre Estricto para el Sujeto):
    • [!IMPORTANT] EL TEXTO NUNCA DEBE CUBRIR UNIDADES O SUJETOS FOCALES

    • La superposición de texto NUNCA debe cubrir, ocluir ni superponerse a las unidades focales, edificios o evento táctico mencionado en el gancho (ej. si el gancho dice "BREAK DE ELEFANTE DE ASEDIO", los elefantes de asedio deben permanecer 100% visibles y sin obstrucciones del texto).
    • Colocar el texto estrictamente donde NO cubra la acción (en espacio negativo abierto, niebla de guerra o terreno vacío).
    • Verificar dónde están situadas las unidades y los combates en la pantalla y posicionar dinámicamente el texto en la parte superior central, superior izquierda, superior derecha o inferior central para que la acción focal y las unidades del sujeto permanezcan completamente desbloqueadas.

2. Selección de Fotograma de Acción y Sustanciación Visual-Textual

  • Fotogramas Cero de Base Inactiva: NUNCA seleccionar un fotograma donde la cámara esté panorámica sobre granjas domésticas pacíficas, centros urbanos o colas económicas mientras la acción ocurre en otro lugar.
  • Combate Activo y Ataque en Progreso (NUNCA Secuelas Posteriores al Combate o Ruinas Vacías):
    • El fotograma DEBE capturar combate vivo y activo o un ataque en progreso: unidades chocando activamente en cuerpo a cuerpo, disparando flechas, disparando proyectiles de asedio, saqueando una economía o asaltando una base/castillo enemigo.
    • NO Ruinas Estáticas Vacías: NUNCA elegir un fotograma de muros rotos o edificios dañados donde ninguna unidad enemiga esté atacando activamente o presente. Los muros rotos sin tropas activas parecen abandonados, estáticos y aburridos.
    • NO Secuelas Posteriores al Combate (Cuerpos en el Suelo): NUNCA elegir un fotograma tomado después de que el combate ya haya concluido, que muestre solo cadáveres/cuerpos muertos en el suelo con unidades restantes inactivas. Capturar la acción durante el combate, no después.
  • NO Fugas del Resultado o Spoilers de Puntuación:
    • La miniatura NUNCA debe revelar el resultado de la partida:
      • NUNCA capturar fotogramas que muestren "El jugador X se rindió" en el chat o nombres de jugadores tachados en el cuadro de puntuación.
      • NO Fugas de Diferencia de Puntuación / Base Invadida: NUNCA elegir un fotograma donde el cuadro de puntuación inferior derecho muestre un déficit de puntuación masivo (ej. jugador al 70–75% de la puntuación del oponente) mientras la base del jugador está en ruinas/siendo saqueada. Esto filtra descaradamente una derrota al espectador y arruina la suspensión. Mantener la puntuación y el estado del tablero ambiguos o recortados/limpios.
    • Todos los fotogramas de la miniatura DEBEN capturarse durante juego activo, tenso y competitivo.
  • Protocolo de Calidad de Expresión de Cámara Facial e Inspección de Recorte:
    • Si la grabación incluye una superposición de cámara web / cámara facial:
      • Inspección Dedicada de Cámara Facial (Recortar y Verificar a Escala 1:1): Nunca confiar únicamente en una vista completa de 1440p para juzgar las expresiones faciales. El agente DEBE recortar e inspeccionar la región de la cámara facial (crop=390:300:0:890 o cuadro de cámara web equivalente) de forma aislada a escala de píxel 1:1 antes de la selección final del fotograma.

Skills relacionados