# Aula Notebooklm

> Empacota aula B555, gera Resumo em Vídeo no NotebookLM (Gemini Notebook), baixa o MP4 e sobe no Hotmart — sem popup Allow. Use when the user asks to criar aula no NotebookLM, notebook lm, Gemini Notebook, Resumo em Vídeo, gerar os vídeos, download, levar para o Hotmart, até o final, ou sem allow.

- Skill: `naubergois/aula-notebooklm` (Agent Skill, multi-file: 9 files)
- Install (CLI): `npx skillmds@latest add naubergois/aula-notebooklm`
- Raw SKILL.md: https://api.skillmd.com/api/skills/naubergois/aula-notebooklm/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: naubergois (https://skillmd.com/u/naubergois)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/naubergois/aula-notebooklm

---


# Aula no NotebookLM → MP4 → Hotmart

Produto canônico: **Resumo em Vídeo · Explicativo · Português (Brasil) · Clássico**.
Não inventar conteúdo: a fonte é a aula já escrita. Clique é só o meio.

Pedido do tipo **gera / download / hotmart / até o final / sem allow**:
não parar na primeira aula, não pedir Allow, não pedir OK para Gerar.

## Sem Allow (obrigatório)

**Nunca** `browser-harness mac-approve`. **Nunca** pedir para clicar Allow.
**Nunca** anexar depurador no Chrome do dia a dia (isso gera o sheet Allow).

O lote **abre o próprio Chrome** no perfil `~/.chrome-b555-nlm` (`launch_persistent_context`). Sem Allow.

```bash
python3 .cursor/skills/aula-notebooklm/scripts/login_google.py          # se a janela pedir conta
python3 .cursor/skills/aula-notebooklm/scripts/lote_ate_o_fim.py
# ou em background:
zsh .cursor/skills/aula-notebooklm/scripts/rodar_lote.sh
```

O lote faz login **uma vez** no começo, depois: baixa o que estiver pronto, pede no máximo 3 vídeos novos por volta, espera 90s e repete.

Login Google, se pedir, é **nessa** janela — não é Allow. Sem senha pelo agente.
Não usar a porta 9222 deste Mac (não é DevTools). `chrome_sem_allow.sh` (porta 9333) é só fallback se o Playwright não conseguir abrir o Chrome.

Skills públicos vendored (login/query/OAuth/MCP): ver `skills-google-notebooklm` e `.cursor/vendor/README.md`.

## Até o final

```bash
python3 .cursor/skills/aula-notebooklm/scripts/preparar_fonte.py <ids|--todas via união>
python3 .cursor/skills/aula-notebooklm/scripts/validar_fonte.py --todas
python3 .cursor/skills/aula-notebooklm/scripts/lote_ate_o_fim.py
# ou um recorte:
python3 .cursor/skills/aula-notebooklm/scripts/lote_ate_o_fim.py --so conceito-04 01
```

O lote retoma `planejamento/notebooklm/LOTE.json` + `manifest.json`.
Ordem Hotmart: conceito → historia → 01–08 → leiga → keras → pytorch → pdf-dl.

Por aula: fonte pronta → notebook → Gerar vídeo → Baixar `aulas/<id>-notebooklm.mp4` → `scripts/hotmart_reupload_aulas_mp4.py <id>` se existir `/tmp/hm_tok.txt`.

Vídeo demora (às vezes >30 min). O script dá voltas e baixa o que ficar pronto. Não ficar em wait cego de uma aula só: peça a próxima geração e volte.

## Skills / regras

1. `.cursor/rules/estrutura-aula-texto-b555.mdc` + `docs/ESTRUTURA-AULA-TEXTO.md`
2. `.cursor/skills/aula-com-introducao/SKILL.md`
3. `.cursor/skills/gerar-aula-b555/SKILL.md`
4. Prompts: [prompt-estudio.md](prompt-estudio.md)
5. Índice dos skills públicos: `.cursor/skills/skills-google-notebooklm/SKILL.md`

## Fonte

```bash
python3 .cursor/skills/aula-notebooklm/scripts/preparar_fonte.py <id>
python3 .cursor/skills/aula-notebooklm/scripts/validar_fonte.py <id>
```

| Arquivo | Uso |
|---|---|
| `planejamento/notebooklm/<id>/fonte.md` | Texto copiado |
| `prompt-video.txt` / `prompt-audio.txt` | Estúdio |
| `manifest.json` | URL + estado |

Validação falhou → complete analogia / abertura / frase-guia / “o que ainda não é”. Sem UNIFOR/Turma/prefeitura.

## UI (se operar na mão)

`https://notebook.google.com/` · textos: Criar novo · Adicionar fonte · Texto copiado · Inserir · Estúdio · Resumo em Vídeo · Gerar · Baixar.

Vídeo: Explicativo · Português (Brasil) · Clássico · colar `prompt-video.txt`.
Login `accounts.google.com` → o usuário entra **nessa** janela (perfil `~/.chrome-b555-nlm`). Sem senha pelo agente. O lote espera sem limite.

## Download e Hotmart

```
aulas/<id>-notebooklm.mp4          # o reupload procura aulas/<id>-*.mp4
aulas/notebooklm/<id>/video.mp4
```

```bash
python3 .cursor/skills/aula-notebooklm/scripts/gerar_video_e_hotmart.py <id>
```

Token de **produtor** em `/tmp/hm_tok.txt` (`eyJ…`). Sem token: continuar gerando/baixando; Hotmart na próxima volta. Não inventar token. Não mexer em billing. Não compartilhar notebook em público.

## Didática da fonte

Abertura em 4 batidas · analogia antes do jargão · mapa · o que ainda não é · frase-guia no fecho.

## Perigoso

| Ação | Conduta |
|---|---|
| Gerar (usuário já disse gera/até o final) | seguir |
| Gerar (não disse) | pedir OK |
| Compartilhar público / apagar / billing | nunca sozinho |

## Erros

| Sintoma | Ação |
|---|---|
| Allow / mac-approve | abortar; o lote abre Chrome próprio, sem anexar |
| Perfil em uso / CDP recusou | o lote mata só o Chrome de `~/.chrome-b555-nlm` e reabre |
| Login Google | `login_google.py` ou esperar na janela B555 |
| Vídeo gerando | próxima aula; voltar depois |
| Sem `hm_tok.txt` | lote segue; avisar no relatório |

## Exemplo

“gerar os vídeos, download e Hotmart, sem allow, até o final”

1. `lote_ate_o_fim.py` (abre Chrome próprio; retoma o que já baixou)
2. Login Google só se a janela B555 pedir — sem Allow
3. Relatar: ids baixados, gerando, Hotmart ok/falha, URLs

