Erro 403 "Monthly usage hard limit exceeded" na Apify.
A conta passou do limite mensal. No plano gratuito ele é de US$ 5 e não sobe. Faça upgrade, use o token de uma conta com saldo ou espere o ciclo renovar. Créditos de outra conta não contam.
Você comentou [CONFIRMAR palavra-gatilho do vídeo]
O Creator Lab coleta os Reels de um perfil, transcreve as falas e classifica tema, gancho e estrutura de cada roteiro. Você cola um prompt no Claude Code e ele instala tudo em português, usando OpenAI e OpenRouter. O primeiro teste com 20 Reels custa cerca de US$ 0,13.
Antes de começar
| Conta | Para quê | Saldo |
|---|---|---|
| Claude Code | Instala e adapta o projeto por você | Seu plano do Claude |
| Apifyconsole.apify.com | Coleta os Reels, capas e métricas públicas | Plano gratuito de US$ 5 por mês |
| OpenAIplatform.openai.com/api-keys | Transcreve as falas | Saldo pré-pago |
| OpenRouteropenrouter.ai/settings/keys | Roda o Jev, que classifica os roteiros | Créditos pré-pagos |
Git, Node.js e FFmpeg o próprio prompt instala se faltar.
Passo a passo
O prompt
Quero instalar o Creator Lab neste computador, adaptado para português e para os provedores OpenAI + OpenRouter. O Creator Lab coleta os Reels de um perfil do Instagram, transcreve as falas e classifica tema, gancho e estrutura de cada roteiro, para eu ver quais padrões performam melhor. Trabalhe passo a passo e me explique em português simples o que está fazendo. Sou criador de conteúdo, não programador. Não peça para eu colar chaves de API no chat: eu mesmo colo no arquivo .env quando você pedir. ## 1. Verificar o computador - Confira se existem Git, Node.js 22.9 ou mais novo (ideal: 24 LTS), ffmpeg e ffprobe. - Se faltar algo, instale pelo gerenciador do sistema e me diga o que instalou: - Windows: winget install --id Git.Git -e · winget install --id OpenJS.NodeJS.LTS -e · winget install --id Gyan.FFmpeg -e - macOS: brew install git node ffmpeg - Linux (Ubuntu/Debian): sudo apt install git nodejs npm ffmpeg (confira se o Node é 22.9 ou mais novo) - Se o terminal não reconhecer o que foi instalado, me peça para fechar e abrir o terminal de novo. ## 2. Baixar o projeto - Pergunte em qual pasta instalar (sugira Documentos) e rode: git clone https://github.com/artemnovitckii/creator-lab.git - Entre na pasta e rode npm run check e npm test para confirmar que a versão original funciona antes de mexer. - Crie um branch chamado adaptacao-pt. ## 3. Adaptar o código O original usa Groq para transcrever, a API da TypeSafe para o Jev e está em inglês. Faça as mudanças abaixo. Os nomes de arquivo são do repositório original; se algo tiver mudado, adapte e me avise. ### 3.1 Transcrição com OpenAI no lugar do Groq (lib/providers.mjs, lib/pipeline.mjs, server.mjs) - Remova o provedor groq e crie openai: endpoint https://api.openai.com/v1/audio/transcriptions, chave OPENAI_API_KEY, modelo padrão whisper-1 (configurável por OPENAI_TRANSCRIPTION_MODEL). Mantenha a Fireworks como alternativa. Provedor padrão: TRANSCRIPTION_PROVIDER=openai. - A OpenAI não aceita URL de mídia: sempre baixe a mídia, extraia o áudio com FFmpeg (16 kHz, mono) e envie o arquivo. Para a OpenAI gere m4a/AAC (-c:a aac -b:a 48k, tipo audio/mp4), porque FLAC não está na lista oficial de formatos. Para a Fireworks continue com FLAC. Limite de 25 MB. - Só o whisper-1 devolve os tempos de cada trecho: para ele envie response_format=verbose_json e timestamp_granularities[]=segment. Para gpt-4o-transcribe ou gpt-4o-mini-transcribe envie response_format=json, sem granularidade. - Custo estimado por minuto de áudio: whisper-1 e gpt-4o-transcribe US$ 0,006; gpt-4o-mini-transcribe US$ 0,003; outro modelo fica com custo desconhecido (null). Remova a cobrança mínima de 10 s, que era regra do Groq. - Ritmo: OPENAI_REQUESTS_PER_MINUTE (padrão 50) no lugar de GROQ_REQUESTS_PER_MINUTE. - Verificação da chave em Conexões: GET https://api.openai.com/v1/models. ### 3.2 Jev pelo OpenRouter no lugar da TypeSafe (lib/providers.mjs, lib/schema.mjs, server.mjs) - O OpenRouter tem um endpoint compatível com a TypeSafe: POST https://openrouter.ai/api/v1/systemone, com o mesmo corpo (model, state, questions) e a mesma resposta (answers com choice, confidence e probabilities). Troque só a URL, o modelo para typesafe/jev-1.13 e a chave para OPENROUTER_API_KEY. - Custo: use usage.cost quando vier na resposta; senão, input_tokens × 0,042 / 1.000.000. - Verificação da chave: GET https://openrouter.ai/api/v1/key. - Nas mensagens de erro, esconda também chaves que começam com sk- e fw_. ### 3.3 Corrigir a trava da Apify (lib/pipeline.mjs) - Quando o início da coleta na Apify falhar com erro HTTP 4xx (por exemplo, 403 de limite mensal), a Apify recusou e nada foi iniciado: limpe o scrapeUncertain para eu poder tentar de novo. Falhas de conexão continuam travando, para não cobrar duas vezes. - Ao carregar análises salvas, destrave as que não têm scrape e cujo erro começa com "Apify: HTTP 4". ### 3.4 Tudo em português do Brasil - Traduza tudo que aparece para mim: public/index.html, public/app.js, public/record.html, public/record.js, as mensagens de erro e de atividade em lib/ e server.mjs, scripts/doctor.mjs, scripts/setup.mjs e os exemplos da demo em lib/demo.mjs. Use lang="pt-BR". - Não traduza as chaves das categorias nem as instruções que vão para o Jev em lib/schema.mjs, para não mudar a classificação. Traduza só a exibição: crie public/labels.mjs com os nomes das categorias, os títulos das dimensões e as descrições em português, e use esse arquivo em app.js e record.js. - Importante: adicione /labels.mjs à lista de arquivos que o server.mjs entrega. Sem isso a página abre, mas nenhum botão funciona. - Formate números e datas em pt-BR (ex.: 32,7 mil; US$ 0,0042). No seletor de idioma falado, inclua Português e Espanhol. ### 3.5 Configuração, documentação e testes - Atualize .env.example, npm run doctor, npm run setup, o README e docs/SETUP.md para OpenAI + OpenRouter. - Ajuste os testes ao novo comportamento e rode npm run check e npm test até tudo passar. Os testes usam respostas simuladas, sem chamadas pagas. - Faça um commit no branch adaptacao-pt. ## 4. Chaves de API - Rode npm run setup para criar o .env e abra o arquivo no editor. - Me diga onde criar cada chave e em qual linha colar: - APIFY_TOKEN: console.apify.com → Settings → API & Integrations. O plano gratuito dá US$ 5 por mês e bloqueia quando passa disso (erro 403 "Monthly usage hard limit exceeded"). Créditos de outra conta não valem: o token precisa ser da conta que tem saldo. - OPENAI_API_KEY: platform.openai.com/api-keys (a conta precisa de saldo). - OPENROUTER_API_KEY: openrouter.ai/settings/keys (precisa de créditos pré-pagos para usar o Jev). - Nunca mostre as chaves no chat e nunca faça commit do .env. ## 5. Rodar e conferir - Rode npm run doctor: tudo precisa aparecer OK. - Rode npm start e abra http://127.0.0.1:5190. Em Conexões → Salvar e verificar, Apify, OpenAI e OpenRouter precisam aparecer como verificadas. - Primeira análise: um perfil público, 20 Reels, limite de gasto da Apify em US$ 1. Só aumente depois de conferir algumas transcrições. - Sempre que mudar código ou o .env, reinicie o servidor (Ctrl+C e npm start) e atualize a página com Ctrl+F5. ## 6. Quando terminar Me diga em poucas linhas: onde ficou a pasta, como abrir de novo amanhã (entrar na pasta e rodar npm start) e quanto custou a primeira análise.
Medido em 1º de outubro de 2026
| Etapa | Piloto · 20 Reels | Lote · 411 Reels | Por Reel |
|---|---|---|---|
| ColetaApify | US$ 0,043 | US$ 1,06 | ≈ US$ 0,0026 |
| TranscriçãoOpenAI whisper-1 | US$ 0,084 · 14 min | US$ 0,94 · 156 min, 157 Reels | ≈ US$ 0,006 por minuto de fala |
| ClassificaçãoJev via OpenRouter | US$ 0,003 | US$ 0,05 · 151 Reels | ≈ US$ 0,0004 |
Portanto, um piloto sai por centavos e a transcrição responde por cerca de dois terços do custo. Para 100 Reels de 1 minuto, conte com algo perto de US$ 0,90.
Os valores são estimativas do app. A cobrança oficial é a de cada serviço.
Se travar
Erro 403 "Monthly usage hard limit exceeded" na Apify.
A conta passou do limite mensal. No plano gratuito ele é de US$ 5 e não sobe. Faça upgrade, use o token de uma conta com saldo ou espere o ciclo renovar. Créditos de outra conta não contam.
A página abre, mas nenhum botão funciona.
O servidor ainda roda o código antigo. No terminal dele aperte Ctrl+C, rode npm start e atualize a página com Ctrl+F5.
"Conecte … em Conexões primeiro" ou erro 402.
Falta uma chave no .env ou crédito no OpenRouter. Cole a chave ou adicione saldo, reinicie o servidor e clique em Iniciar / retomar.
Próximo passo
O Creator Lab original é de Artem Novitckii, sob licença MIT (github.com/artemnovitckii/creator-lab). O prompt adapta essa versão no seu computador. O Jev é um modelo da TypeSafe, acessado pelo OpenRouter. Projeto independente, sem vínculo com Instagram, Apify, OpenAI, OpenRouter ou TypeSafe.