Formulário de contato

Nome

E-mail *

Mensagem *

Imagem

Pipeline de Vídeos Automáticos com IA + YouTube - Código YAML para Github - Parte 2

Pipeline de Vídeos Automáticos com IA + YouTube - Código YAML para Github - Parte 2

Publicado por em


@CanalQb no YouTube


@CanalQb

Pipeline de Vídeos Automáticos com IA + YouTube — Script YAML para GitHub — Parte 2


Parte 2 de 3 — Arquivo run_notebook.yml (GitHub Actions)
Na Parte 1 você viu o script GAS que captura e organiza os vídeos no Drive. Agora chegou o motor que faz tudo isso rodar na nuvem, de forma contínua e sem servidor próprio: o arquivo run_notebook.yml. É ele que agenda, executa, gerencia credenciais e aciona os scripts Python das Partes seguintes — tudo dentro do GitHub Actions, gratuitamente.

ℹ️ Nota Técnica: Os workflows apresentados são para automação de conteúdo próprio. O @CanalQb não se responsabiliza por uso indevido, violação de termos de serviço de terceiros ou danos causados pela má aplicação das técnicas. Revise sempre os Termos de Uso das plataformas envolvidas.


O que é o arquivo run_notebook.yml e qual é o papel dele no pipeline?

O run_notebook.yml é o workflow do GitHub Actions que age como orquestrador do pipeline inteiro. Ele define quando executar (via CRON agendado ou disparo manual), quais scripts Python chamar, como injetar as credenciais de forma segura via secrets e o que fazer após cada execução. Sem ele, os scripts Python da Parte 3 não têm motor — ficam estáticos no repositório sem nunca rodar.

A diferença entre um script que funciona uma vez e um sistema que escala está exatamente aqui. O run_notebook.yml é o que transforma o render.py e o setup_oauth.py — que você vai ver na Parte 3 — em um sistema autônomo que processa vídeos sem você precisar abrir o computador.

Se você ainda não leu a Parte 1 (script Google Apps Script), recomendo começar por lá. O Drive e a planilha configurados no GAS são os mesmos recursos que o workflow YAML consome.


Como o run_notebook.yml executa o pipeline? Os 7 estágios do workflow

1
Acionamento híbrido: CRON agendado + disparo manual

O workflow roda em dois modos. No modo automático, um CRON agenda as execuções em horários anti-congestionamento. No modo manual, o workflow_dispatch permite forçar uma execução fora do ciclo normal direto pelo painel do GitHub — útil quando chega um lote novo de vídeos fora do horário programado ou para testar alterações sem alterar o agendamento.

2
Autolimpeza seletiva do histórico de execuções

Antes de cada ciclo, o workflow remove automaticamente os registros de execuções anteriores bem-sucedidas. Apenas falhas são mantidas no histórico para auditoria. Isso não é estética — é performance e diagnóstico. Ambientes com histórico acumulado ficam mais lentos e tornam difícil identificar o que quebrou quando algo falha.

3
Provisionamento do ambiente isolado

A cada execução, o runner do GitHub Actions é provisionado do zero. O workflow instala apenas o necessário: Python na versão correta, dependências do requirements.txt e ferramentas de processamento de vídeo. Esse isolamento elimina o problema de "lixo de execução anterior" — cada ciclo começa limpo, independente do que aconteceu no anterior.

4
Injeção segura de credenciais via Secrets

Nenhuma credencial aparece no código YAML. O workflow usa o sistema de Secrets do GitHub para injetar as variáveis sensíveis apenas no ambiente do runner, no momento da execução, e nunca nos logs. Cada secret tem escopo definido — isso facilita a rotação de chaves sem precisar alterar o workflow inteiro.

5
Execução do render.py e integração com o ecossistema Google

Com o ambiente pronto e as credenciais injetadas, o workflow chama o render.py — o script Python que lê a fila da planilha, baixa os vídeos do Drive, edita com MoviePy, gera copy via Gemini IA e faz o upload para o YouTube. O workflow é apenas o disparador: ele não sabe o que o script faz, só garante que ele rode nas condições certas.

6
Limpeza pós-execução e operação stealth

Após o processamento, o workflow remove as credenciais do ambiente do runner. Se tudo correu bem, apaga o próprio registro de execução. O sistema trabalhou, entregou resultado e não deixou rastro visível — apenas erros ficam auditáveis. Aqui no @CanalQb, chamamos isso de modo stealth: centenas de vídeos processados por semana sem histórico acumulado.

7
Notificação de falha e registro estruturado de erros

Quando uma execução falha, o workflow registra o erro com timestamp, etapa e mensagem na planilha Google Sheets — a mesma usada pelo script GAS da Parte 1. Isso centraliza o diagnóstico: você tem um único lugar para ver o que o sistema GAS coletou, o que o workflow executou e o que os scripts Python publicaram.


Quais Secrets do GitHub o run_notebook.yml usa e para que serve cada um?

O workflow usa sete secrets configurados no repositório GitHub. Nenhum aparece em logs ou no código-fonte — são injetados apenas no ambiente do runner durante a execução e descartados ao final. Cada secret tem função específica e bem delimitada, o que permite rotacionar qualquer chave individualmente sem afetar os demais.
Secret Função no workflow
GDRIVE_CREDENTIALS JSON da conta de serviço Google Cloud. Permite que o render.py baixe vídeos do Drive sem autenticação interativa.
GEMINI_API_KEYS Chave da API Gemini (Google AI Studio). Usada pelo render.py para gerar título, descrição e hashtags de cada vídeo.
ID_PLANILHA_GOOGLE ID da planilha Google Sheets que funciona como fila e painel de controle — a mesma configurada no script GAS da Parte 1.
OAUTH_CLIENT_ID Identificação da aplicação no Google Cloud Console. Necessário para autenticar com a YouTube Data API v3 via OAuth 2.0.
OAUTH_CLIENT_SECRET Chave privada da aplicação OAuth. Nunca deve aparecer em código ou log. Gerado junto com o Client ID no Google Cloud.
OAUTH_REFRESH_TOKEN Token gerado pelo setup_oauth.py (Parte 3) na primeira autenticação. Mantém o acesso ao YouTube ativo entre ciclos sem login manual.
URL_DO_BLOG_BLOGGER URL do blog. Injetada automaticamente nas descrições geradas pela IA, direcionando tráfego passivo para monetização.
💡 Dica @CanalQb: Configure os secrets antes de fazer qualquer push do workflow. O GitHub não executa workflows com secrets ausentes — ele simplesmente falha na etapa de injeção sem mensagem clara de qual variável falta. Verifique a lista acima antes de habilitar o CRON.

Por que o horário do CRON importa mais do que a frequência de execução?

GitHub Actions concentra execuções nos horários "redondos" — início de hora e múltiplos de 5 ou 10 minutos. Isso gera filas globais que atrasam ou cancelam workflows agendados nesses momentos. A solução é usar minutos não-previsíveis no CRON, distribuindo a execução em janelas de menor competição com outros repositórios.

Depois de analisar logs de execuções do pipeline aqui no @CanalQb, identificamos atrasos de até 8 minutos em horários de pico — simplesmente porque o workflow estava agendado em */5 ou 0 * * * *, junto com milhares de outros repositórios. A correção foi simples e os atrasos desapareceram.

Por que usar números primos no CRON reduz colisões entre workflows diferentes?

Números primos como 7, 13, 17 e 23 nunca são divisores de 60 — ciclos baseados neles nunca coincidem com os picos de múltiplos de 5 ou 10. Se você tem três workflows com intervalos de 13, 17 e 19 minutos, a probabilidade de todos tentarem executar no mesmo minuto em qualquer hora é inferior a 2%, contra quase 100% com intervalos de 15 ou 30 minutos.
# run_notebook.yml — seção de agendamento # Padrão anti-congestionamento usado no @CanalQb on: schedule: # Executa a cada hora no minuto 7 — baixo tráfego global - cron: '7 * * * *' workflow_dispatch: # permite disparo manual pelo painel GitHub # Comparação: por que evitar estes padrões # '0 * * * *' → pico máximo — início de hora com todos # '*/5 * * * *' → 12 execuções/hora no mesmo minuto que milhares # '*/15 * * * *'→ múltiplo de 5 — ainda congestionado # '7 * * * *' → minuto 7 tem tráfego mínimo na maioria dos DCs
Objetivo Expressão CRON Motivo
Verificação horária estável 7 * * * * Minuto 7 tem tráfego mínimo na maioria dos data centers do GitHub.
Alta frequência sem pico */17 * * * * 17 é primo — nunca coincide com múltiplos de 5 ou 10 em nenhuma hora.
Múltiplos workflows no mesmo repo 13 * * * * e 19 * * * * Primos diferentes garantem que os dois nunca executem no mesmo minuto.
Máxima estabilidade em produção 7,23,41,59 * * * * Quatro execuções por hora em janelas de baixa disputa global.
⚡ Esse princípio vem da teoria de distribuição de carga — o mesmo usado por engenheiros de sistemas distribuídos para evitar o "thundering herd effect". Aplicar em CRON doméstico parece exagero até você ver logs com atrasos de 8 minutos em horários de pico.

O que está incluído no arquivo run_notebook.yml disponível para compra?

Não é um template genérico de GitHub Actions. É o arquivo run_notebook.yml testado em produção nos canais do @CanalQb, com todas as etapas comentadas em PT-BR, secrets mapeados e integração com o render.py e o setup_oauth.py da Parte 3 já configurada.

run_notebook.yml

Workflow completo com CRON anti-congestionamento, disparo manual e todas as etapas comentadas em PT-BR.

Mapa de Secrets

Documento com cada secret necessário, onde gerar e como configurar no repositório GitHub.

Autolimpeza Inclusa

Lógica de remoção de histórico de execuções bem-sucedidas já implementada no workflow.

Integração com Partes 1 e 3

O workflow chama diretamente o render.py e o setup_oauth.py da Parte 3, usando a planilha e o Drive configurados na Parte 1.

Zero Credencial no Código

Todas as variáveis sensíveis são injetadas via secrets — o arquivo YAML pode ficar público sem risco.

Suporte via Hotmart

Dúvidas de configuração respondidas pelo canal de suporte da plataforma.

Quer o run_notebook.yml completo com mapa de secrets?

Workflow testado em produção, CRON anti-congestionamento configurado, autolimpeza inclusa e integração com os scripts Python da Parte 3.

@CanalQb — Comprar na Hotmart Produto ID S105334146O — Hotmart

O que o run_notebook.yml entrega na prática?

  • ✔ Execução automática e contínua do pipeline sem servidor próprio
  • ✔ Agendamento CRON anti-congestionamento com números primos
  • ✔ Disparo manual via workflow_dispatch para lotes fora do ciclo
  • ✔ Autolimpeza de histórico — só erros ficam visíveis
  • ✔ Ambiente isolado e limpo provisionado a cada ciclo
  • ✔ Credenciais protegidas via secrets — zero exposição no código
  • ✔ Integração direta com render.py e setup_oauth.py (Parte 3)
  • ✔ Registro de erros na planilha Google Sheets (Parte 1) para diagnóstico centralizado

O que vem na Parte 3 desta série?

Na Parte 3, você vai ver os dois scripts Python que o workflow YAML executa: o render.py — responsável por editar o vídeo com MoviePy, gerar a copy com Gemini IA e fazer o upload para o YouTube — e o setup_oauth.py, que autentica sua aplicação com o Google e gera o OAUTH_REFRESH_TOKEN que você cadastra nos Secrets aqui da Parte 2.

Se quiser o sistema completo das três partes já integrado, sem esperar as próximas publicações, ele está disponível na Hotmart com suporte incluso.

⚠️ Aviso: Este post contém link de produto pago. O @CanalQb pode receber comissão por indicações. O conteúdo técnico é gratuito e completo — a compra é opcional e acelera seu acesso ao sistema pronto.


Feito com Master Rules Claude v5.0 • © 2026 @CanalQb • canalqb.com.br

Marcadores: Blogger Cripto IA Jogos Python Script Sistemas Tutorial

© abril 11, 2026 CanalQb — Python, Scripts, Automação, Airdrops e Criptomoedas | Web3 e Tech na Prática

Comentários