O NotebookLM é útil na interface, mas fluxos repetidos precisam de API, seleção de conta, verificação de sessão e limites claros quando o Google exige challenge.
notebooklm-api
Transforma fluxos do NotebookLM em uma superfície programável: REST, CLI e UI server-rendered, com suporte a múltiplas contas.
Leitura técnica
Leitura rápida do case
A aplicação expõe REST, CLI e UI web, seleciona contas por `X-NotebookLM-Account-Id`, isola o `storage_state` e protege rotas sensíveis com autenticação Bearer default-deny.
FastAPI · CLI · Web UI · Multi-account
Open-source
Arquitetura
Uma API em volta de sessões web com isolamento por conta
Cada conta mantém `storage_state` próprio. Jobs e artefatos respeitam o escopo da conta, e acessos cruzados retornam 404 sem revelar a existência do recurso.
Fluxo técnico
- Entrada
- Processamento
- Persistência
- Saída
Fluxo em etapas
Código do diagrama (Mermaid)
flowchart LR
client["Cliente REST/CLI/UI"]
api["FastAPI"]
account["Conta"]
state["storage_state"]
browser["NotebookLM/browser"]
artifact["Download/artefato"]
response["Resposta HTTP/API"]
client --> api
api --> account
account --> state
state --> browser
browser --> artifact
artifact --> responseStack e responsabilidades
- FastAPI
API REST e UI web server-rendered.
- CLI
Operação programática fora do navegador.
- storage_state.json
Persistência de sessão por conta.
- Bearer + account scoping
Auth default-deny e isolamento de jobs, artefatos e sessão.
Decisões técnicas
- Multi-conta sem misturar sessão
Cada conta recebe `storage_state` próprio e os recursos são consultados dentro do escopo selecionado.
- Default-deny
Sem token e fora do modo inseguro local, rotas sensíveis respondem 401.
- Limite honesto
Sessão web não é eterna: challenge, 2FA ou expiração exigem renovação manual.
Operação
- documentadoStatus por conta
healthy, warming, degraded, challenge_required, expired, disabled.
- documentadoAuth e CORS
Bearer obrigatório em produção e CORS fechado por padrão.
- documentadoTestes públicos
Testes cobrem isolamento, scoping, erros, auth e contrato de conta.
Status e próximos passos
- Fortalecer UX de renovação quando Google exigir challenge.
- Documentar limites de concorrência por fluxo real.
Contato
Quer algo parecido para seu processo?
Se existe uma entrada repetida, uma etapa manual e uma saída esperada, provavelmente dá para desenhar um sistema.