O que App Promo Video Studio faz?
Crie um vídeo promocional de aplicativo finalizado e honesto a partir de capturas de emulador e publique-o no YouTube, na sua Página do Facebook, Instagram e TikTok. Preserve a interface real do app; nunca invente funcionalidades, números ou alegações.
Esta skill é agnóstica em relação ao aplicativo. Funciona para qualquer app. Tudo é orientado por especificação: um novo app é um novo JSON de especificação mais suas próprias capturas de tela, gravações de demonstração, CTA, linhas de divulgação e falas de narração — sem alterações no código. A promoção da Astra Phone Directory (10 de outubro de 2026) é a referência funcional em examples/; copie-a e substitua o conteúdo do app. Para cada novo app, confirme a promessa de marketing, o conjunto real de funcionalidades, os dados de demonstração seguros, o link da Play Store e as linhas de divulgação honestas antes de produzir. Publique no próprio canal do YouTube, Página do Facebook, Instagram e TikTok da marca; apenas a playlist do YouTube específica do app difere entre apps.
Reutilize a skill carregada dentro de uma sessão. Descubra os caminhos das ferramentas em tempo de execução (which ffmpeg, emulator -list-avds); não codifique caminhos de máquina e mantenha os caminhos do repositório relativos.
Regras rígidas (não viole)
- Apenas dados de demonstração seguros em um vídeo público. Registros de demonstração fabricados (nomes/avatars aleatórios, CNICs falsos) são aceitáveis; NUNCA um número real de uma pessoa privada ou do próprio proprietário. Confirme o conjunto de demonstração com o usuário se o aplicativo retornar dados ao vivo de terceiros.
- Mostre todos os campos de dados. Cada cena de cartão exibe o cartão inteiro; não corte um campo.
- Texto honesto. Sem funcionalidades, números, prêmios ou avaliações inventados. Mantenha a divulgação de diretório de terceiros e remoção de números no CTA e nas legendas.
- Sem travessões em nenhum lugar (cenas, legendas, títulos, descrições, mensagens de commit). Use "-" ou divida a frase.
- Miniatura personalizada, sempre. Nunca deixe uma plataforma escolher automaticamente um frame. Para um Reel / Short / TikTok (vertical) use o 9:16
thumb_9x16.png; apenas um upload de YouTube paisagem usathumb_16x9.png. Um YouTube Short centraliza e corta uma miniatura 16:9 para uma faixa estreita de ~9:16, então mantenha o conteúdo principal na coluna central de ~405px e verifique cortando o centro 9:16 antes do upload. - Legendas/títulos em urdu em ROMAN URDU (latim), não em escrita urdu. A narração falada permanece em urdu; a legenda/título/descrição escrita para a versão urdu é em Roman Urdu.
- Divulgação de IA: seja preciso, nunca automático. Leia a definição atual de cada plataforma sobre conteúdo gerado, alterado ou sintético por IA e responda de forma verdadeira. A narração é uma voz neural (sintética), portanto divulgue-a onde quer que as regras da plataforma cubram áudio sintético.
- YouTube "Feito para crianças": sempre Não. Essas promoções são para adultos.
- Rascunho primeiro, publique apenas com um sim explícito por plataforma. A publicação é voltada para o público e irreversível; prepare tudo em privado e aguarde a autorização. Marque o build no Play e registre cada URL de postagem + resultado posteriormente.
Fluxo de trabalho (seis etapas)
Detalhes completos em references/pipeline.md. Os scripts estão em scripts/, uma especificação de exemplo em examples/ (adicione suas próprias capturas de tela primeiro).
- Captura (emulador). Barra de status limpa com
scripts/set_demo_statusbar.sh; captura de tela comadb exec-out screencap -p(prefixe comandos em/sdcard/comMSYS_NO_PATHCONV=1). Prefira imagens estáticas em vez descreenrecord(que é instável). Limpe as pesquisas recentes para que o enquadramento seja consistente; corte cada cartão de resultado para o cartão branco inteiro. - Composição das cenas.
python scripts/make_scenes.py <spec.json> <assets_dir> <out_dir>->s1.png..sN.png. Gramática: gancho -> captura da tela inicial -> um cartão por registro de demonstração -> declaração de capacidade -> CTA. Veja references/pipeline.md para as regras de design. - Narração (EN + UR).
python scripts/gen_vo.py <vo_spec.json> <out_dir>. Inglêsen-US-AvaNeural, Urduur-PK-UzmaNeural. O script inclui a correção do SelectorEventLoop do Windows e a repetição em caso de erro 403. Escreva urdu natural, não uma tradução literal. - Música.
FFMPEG=<ffmpeg> scripts/build_music.sh <out.wav> <seconds>- tapete de acordes contínuo, normalizado para -16 LUFS para ser audível sob a narração. Passe alguns segundos a mais que o total das cenas. Verifique comvolumedetect. - Montagem.
python scripts/build_video.py --scenes <dir> --vo <dir> --music <wav> --out <mp4> --ffmpeg <ffmpeg>. Temporiza automaticamente cada cena para sua linha de narração (para que tanto EN quanto UR caibam), faz transições suaves entre cenas com crossfade, mixa a música sob a voz. Verifique duração, níveis e quadros. - Miniatura + publicação.
python scripts/make_thumbnail.py <spec.json> <assets_dir> <out_dir>e depois siga references/publishing.md para os quatro canais (miniatura personalizada, divulgação honesta de IA, rascunho primeiro, confirme o canal alvo antes do upload).
Início rápido (a partir do exemplo)
SK=<skills-dir>/app-promo-video-studio # onde a skill está instalada
FF=$(which ffmpeg); W=<scratch_dir>
python "$SK/scripts/make_scenes.py" "$SK/examples/video_spec.example.json" "$SK/examples/assets" "$W/scenes"
python "$SK/scripts/gen_vo.py" "$SK/examples/vo_en.json" "$W/vo_en"
FFMPEG="$FF" bash "$SK/scripts/build_music.sh" "$W/music_en.wav" 33
python "$SK/scripts/build_video.py" --scenes "$W/scenes" --vo "$W/vo_en" --music "$W/music_en.wav" --out "$W/promo_en.mp4" --ffmpeg "$FF"
python "$SK/scripts/make_thumbnail.py" "$SK/examples/video_spec.example.json" "$SK/examples/assets" "$W/thumb"
Substitua pelo urdu executando gen_vo.py com examples/vo_ur.json em vo_ur, reconstruindo a música alguns segundos a mais (as falas em urdu são mais longas) e montando com vo_ur.
Torne-a robusta e inteligente
- Temporização automática (
build_video.py) dimensiona cada cena para sua linha de narração, de modo que as mesmas cenas renderizem versões EN e UR limpas sem ajustes manuais de deslocamento. - Orientada por especificação (
make_scenes.py,make_thumbnail.pyleem um único JSON), de modo que um novo app seja uma nova especificação mais capturas de tela novas, não código novo. - Verifique cada etapa: captura a olho (registro correto, todos os campos), música
volumedetect(~-15 dB médio = realmente na mixagem), renderização final (duração + níveis + quadros do gancho/cartão/declaração/CTA). - Falhe honestamente: se o edge-tts estiver bloqueado pela rede, envie cenas + música + scripts com timecodes e nomeie a voz como a única parte bloqueada. Nunca finja voz, dados ou alegações.
Referências
- references/pipeline.md - captura, cenas, narração, música, montagem em detalhes.
- references/publishing.md - os quatro canais, miniatura personalizada, regra de não-IA, contas/perfis, checklist por plataforma, portão de rascunho primeiro.
- references/gotchas.md - todas as armadilhas que custaram tempo (música silenciosa, música mascarada, correção do edge-tts no Windows, distorção de caminho
/sdcard, deriva de enquadramento do cartão, raízes de upload). - examples/ - a especificação de referência e as linhas de narração EN/UR; capturas de tela não são fornecidas.