Communitygithub.com

by-lua/video-editing

Contorna bloqueio de Cloudflare, "Confirme que é humano", detecção de bot e telas de login em automação de browser. Sobe o Chromium do sistema com perfil persistente e porta CDP, e conecta o agent-browser nele em vez de deixar ele lançar o Chromium empacotado. Use sempre que o agent-browser empacar em desafio do Cloudflare, checkbox de verificação humana, "Just a moment", tela de bot detection, ou quando precisar automatizar site logado com várias contas ao mesmo tempo.

video-editing 是什么?

video-editing is a Claude Code agent skill that contorna bloqueio de Cloudflare, "Confirme que é humano", detecção de bot e telas de login em automação de browser. Sobe o Chromium do sistema com perfil persistente e porta CDP, e conecta o agent-browser nele em vez de deixar ele lançar o Chromium empacotado. Use sempre que o agent-browser empacar em desafio do Cloudflare, checkbox de verificação humana, "Just a moment", tela de bot detection, ou quando precisar automatizar site logado com várias contas ao mesmo tempo.

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/by-lua/video-editing/tree/HEAD/skills/browser-cloudflare

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

browser-cloudflare

Automação de browser que precisa passar por Cloudflare, login ou qualquer detecção de bot.

O problema

agent-browser open <url> lança o Chromium empacotado (~/.agent-browser/browsers/). Ele roda com:

  • perfil descartável em /tmp/agent-browser-chrome-<uuid> — some a cada sessão
  • flags de automação injetadas pelo launcher
  • headless por padrão (--headed não resolve — continua o mesmo binário)

Para o Cloudflare isso é assinatura de bot. O checkbox "Confirme que é humano" aparece e nunca resolve, porque não é o checkbox que decide — é o fingerprint por trás.

A solução

Suba o Chromium do sistema na mão e conecte o agent-browser via CDP.

mkdir -p ~/.agent-profiles/PERFIL
nohup /usr/bin/chromium \
  --remote-debugging-port=9222 \
  --user-data-dir="$HOME/.agent-profiles/PERFIL" \
  --no-first-run --no-default-browser-check \
  https://SITE > /tmp/chromium-PERFIL.log 2>&1 &

# confirme que subiu antes de conectar
curl -s http://127.0.0.1:9222/json/version

agent-browser --session NOME connect 9222

A partir daí todo comando normal funciona, só passando --session NOME:

agent-browser --session NOME snapshot -i -c
agent-browser --session NOME click @e5

Por que funciona

Três fatores, todos necessários:

  1. Binário real do sistema — não instrumentado, sem flags de automação
  2. Perfil persistente — cookies, fingerprint e histórico sobrevivem entre execuções. O Cloudflare passa a tratar como visitante recorrente em vez de sessão virgem. Fator mais pesado.
  3. connect em vez de open — anexa a um browser já rodando normalmente, sem o launcher no meio

Várias contas simultâneas

Uma porta e um perfil por conta. Cookies totalmente isolados.

# conta A
nohup /usr/bin/chromium --remote-debugging-port=9222 \
  --user-data-dir="$HOME/.agent-profiles/contaA" ... &
agent-browser --session contaA connect 9222

# conta B
nohup /usr/bin/chromium --remote-debugging-port=9223 \
  --user-data-dir="$HOME/.agent-profiles/contaB" ... &
agent-browser --session contaB connect 9223

Sempre passe --session em todo comando. Sem a flag cai na sessão default e mistura as contas.

Pegadinhas

SintomaCausaCorreção
Browser abre mas a porta não respondeChrome 136+ recusa --remote-debugging-port no perfil padrão--user-data-dir separado é obrigatório, não opcional
Cloudflare continua travandoAinda usando o Chromium empacotadoNunca use open para o primeiro acesso; use connect
Nenhuma janela apareceRodou headlessO --headed do agent-browser não basta — suba o do sistema
Login perdido toda execuçãoPerfil em /tmpPerfil persistente em ~/.agent-profiles/
Sessão errada / conta trocadaFaltou --sessionPasse sempre

O desafio do Cloudflare, uma vez no perfil certo, pode ser clicado

Com o Chromium do sistema e perfil persistente, o checkbox "Confirme que é humano" valida normalmente quando clicado pela automação. Não é a mesma situação do Chromium empacotado, onde ele nunca resolve por mais que se clique.

agent-browser --session NOME snapshot -i -c      # o iframe do desafio aparece inline
agent-browser --session NOME click @eCHECKBOX
agent-browser --session NOME wait 3000

Pode aparecer de novo depois de uma ação — clique de novo. Só envolva o usuário se o mesmo checkbox falhar duas vezes seguidas.

O que continua manual

Senha e 2FA na primeira vez. O perfil persistente segura o login depois — nas execuções seguintes o browser já abre logado e não precisa de state save.

Para não deixar senha no histórico do shell, use o cofre: agent-browser auth save <nome> --password-stdin.

Verificar o que está rodando

pgrep -af "remote-debugging-port" | grep -o "user-data-dir=[^ ]*" | sort -u
curl -s http://127.0.0.1:9222/json/version

Outros browsers

/usr/bin/chromium é o padrão. Google Chrome via flatpak também serve (flatpak run com.google.Chrome), mas o --user-data-dir precisa estar dentro de caminho permitido pelo sandbox, ou conceder com --filesystem. Chromium do sistema é o caminho de menor atrito.

Individual skills in this repo

This repo contains 9 individual skills — each has its own dedicated page.

by-lua/video-editing

Coleta, pré-visualiza e entrega B-rolls com revisão humana e origem registrada. Use quando alguém pedir b-roll, vídeos de apoio, imagens de apoio, cutaways, inserts, footage, "um corte do X falando Y", um print da tela de um site ou de uma notícia, ou material para ilustrar um vídeo, Reel ou aula — buscando em YouTube, Instagram, TikTok, Wikimedia Commons, NASA ou bancos (Pexels, Pixabay), gerando prévias para revisão humana e entregando os trechos com origem e condições de uso. Also in English: collect B-roll, cutaways, inserts, supporting footage, stock video, screen grabs. Não serve para editar, montar ou renderizar o vídeo final. Not for editing or rendering the finished video.

by-lua/video-editing

Escalonamento de baixo nivel do agent-browser. Use quando precisar de CDP cru: interceptar/inspecionar requests de rede, iframes cross-origin, shadow DOM, drag-and-drop, upload/download travado, print-as-PDF, dialogs nativos, ou quando um comando do agent-browser falhar duas vezes no mesmo passo. Padrao continua sendo agent-browser.

by-lua/video-editing

Porta de entrada ÚNICA de criativo de anúncio (Meta/TikTok) — vídeo, imagem estática ou carrossel. Faz a estratégia (briefing, matriz persona × dor/bolha, escolha de formato, quantidade por fase da conta, regras do Kevones 2026) e depois puxa a mecânica certa — `criativo-ads-video-orq` para vídeo, `modelagem-escalados` + `gpt-imagem-playwright` para estático/carrossel, `narracao-hub-tts` para voz. Use sempre que o usuário pedir criativo, anúncio, ad, leva de criativos, hook, variação de criativo, novo ângulo, "criativo de vídeo", "criativo estático", carrossel, banner de anúncio, UGC, modelar um criativo que está escalando, ou mencionar metodologia Kevones de criativo, bolhas, ângulos, gatilhos.

by-lua/video-editing

Mecânica de produção e edição de anúncios em vídeo, chamada por criativo-ads. Use para criativo de vídeo, UGC, hook novo, variação de vencedor, modelagem de escalados, Veo/Flow, cenas com imagem de referência, b-roll, gravação de tela, PiP, narração ou trilha. Cobre briefing, persona/ângulo/oferta, orçamento de palavras, prompts de continuidade/voz/lip-sync, QA de imagem e clipe, montagem, cortes por palavra e gesto, repetição, limpeza de áudio, volume, legendas e entrega. Modos: do zero, hook+body, bodies variados, modelagem Kevones e Vitrine Guiada. Delega geração às skills de browser; usa video-use para cortes, Remotion para composição/legenda, Hyperframes para motion e ffmpeg para medição/normalização/mix. A estratégia da leva vem de criativo-ads; motor e restrições seguem as regras atuais do corpo desta skill.

by-lua/video-editing

Mecânica completa do Google Flow (labs.google/fx/pt/tools/flow) — pega lane, gera imagem OU vídeo via prompt no Omni 1.1 Flash, espera o fim da fila/geração, baixa pelo conteúdo (não pelo "último card"), valida duração+cor bt709+áudio, e move pro projeto. Cobre o pipeline INTEIRO (envio → fila → pronto → download → gate), não só o clique. Use quando a skill-mãe (`tiktok-shop` ou `criativo-ads-video-orq`) pedir vídeo via Flow (alternativa ao Hub quando Hub está expirado). Profile `flow-enovalabs-pro` (porta 9265), logado Google conta contato.inovalabsx; clones -2/3/4 pra paralelo.

by-lua/video-editing

Gera imagens no ChatGPT usando o perfil de browser persistente já logado (sessão gpt). Aceita imagem de referência anexada para manter rosto, produto ou estilo, e gera até 10 imagens separadas por vez. Baixa os resultados direto para a pasta pedida. Use sempre que o usuário pedir para criar, gerar ou editar imagem no GPT/ChatGPT, pedir imagem de referência, mockup, cena, retrato, variação visual, ou disser "gera uma imagem".

by-lua/video-editing

MECÂNICA de estático/carrossel chamada pela skill `criativo-ads` (porta de entrada de todo criativo; estratégia e quantidade moram lá). Modela criativos de anúncio a partir de uma biblioteca local de 103 formatos que já estão escalando (87 estáticos, 16 vídeos, 47 categorias) — anexa a referência real no ChatGPT e adapta para a marca do usuário via pipeline de 12 prompts (brandkit, dossiê, matriz de ângulos, seleção de formato, leitura estrutural, copy, arte 1:1 1080×1080 (9:16 só se pedido), leva de headlines, reenquadramento, gate de QA, ponte para vídeo, nomenclatura). Use quando o usuário pedir criativo estático, modelar/clonar um criativo que está escalando, "modelagem de escalados", leva de anúncios, variação de headline, banco de formatos, biblioteca de anúncios, ou mencionar Antonio Ferriani, formatos escalados, antes e depois, print de WhatsApp, caixa de perguntas, Reclame Aqui, notícia, ilustração como formato de anúncio.

by-lua/video-editing

Gera narração/voz off em WAV pela API do NinjaVoice (NinjaBR Hub), sem browser e sem login — 82 vozes, português nativo, resposta síncrona. Cobre escolha de voz por nicho e gênero, quebra de texto acima de 2000 caracteres, geração em lote cena a cena, gate de validação do arquivo e mixagem com trilha de fundo no ffmpeg. Use sempre que precisar de narração para criativo de vídeo, voz off, VO, locução, áudio de anúncio, dublar um roteiro, ou quando o usuário mencionar NinjaVoice, TTS, text-to-speech, voz masculina/feminina para o criativo.

by-lua/video-editing

SLASH-COMMAND-ONLY. Invoke ONLY when the user explicitly types the literal `/watch-video` slash command. Never auto-trigger on phrases like "watch this video," "summarize this video," "take notes on this video," or on a bare YouTube URL. For ad-hoc YouTube questions, fetch the transcript directly (YouTube page or yt-dlp) and skim — do not run this heavyweight pipeline.

相关技能