Communitygithub.com

HaoboYang0327/Zotero-para-Notebooklm

Skill Codex para importar anexos locais do Zotero para o NotebookLM com login automático, filtro por título, validação de formatos suportados e fragmentação em até 50 fontes.

O que é Zotero-para-Notebooklm?

Este skill permite importar anexos de uma coleção do Zotero diretamente para o NotebookLM, automatizando todo o fluxo de trabalho: desde a verificação de login do `nlm`, abertura do banco SQLite do Zotero em modo somente leitura, resolução da coleção pelo nome exato, até o upload dos arquivos. Oferece filtro opcional por substring de título (`--title-match`) e por extensão de arquivo (padrão PDF), garantindo que apenas formatos oficialmente suportados pelo NotebookLM sejam enviados. Para coleções grandes, o script fragmenta automaticamente os uploads em blocos de no máximo 50 arquivos, criando notebooks nomeados de forma determinística com sufixos numéricos. Também é seguro para reexecução: arquivos já presentes no notebook de destino são ignorados, e notebooks existentes com o mesmo nome são reutilizados quando únicos. O skill suporta perfis personalizados do NotebookLM e caminhos alternativos do Zotero, sendo ideal para pesquisadores que desejam integrar suas bibliotecas Zotero com o NotebookLM de forma eficiente e sem duplicações.

Funciona com~Claude Code✓Codex CLI~Cursor
npx skills add HaoboYang0327/Zotero-to-Notebooklm

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Importação Zotero para NotebookLM

Importe os anexos locais de uma coleção do Zotero para o NotebookLM com nomenclatura determinística, comportamento seguro para reexecução e filtro padrão para PDF.

Use o script empacotado em vez de reimplementar o fluxo de trabalho manualmente.

Pré-requisitos

Verifique estes itens antes de executar a importação:

  • nlm está instalado e no PATH
  • Os dados do Zotero existem localmente, geralmente em ~/Zotero/zotero.sqlite e ~/Zotero/storage

Não verifique manualmente a autenticação no uso normal. O script sempre executa nlm login --check primeiro e inicia nlm login automaticamente quando a sessão está ausente ou expirada.

Fluxo de Trabalho

  1. Execute o importador com uv run.
uv run ~/.codex/skills/notebooklm-zotero-import/scripts/import_zotero_to_notebooklm.py \
  --collection "Limit Order Book" \
  --notebook-base "LOB_TTT"
  1. Deixe o script realizar todo o fluxo:
  • verificar o estado de login do nlm e executar nlm login quando necessário
  • abrir o SQLite do Zotero em modo somente leitura imutável
  • resolver a coleção pelo nome exato
  • percorrer coleções descendentes
  • opcionalmente, filtrar itens do Zotero por substring normalizada do título com --title-match
  • resolver cada anexo para um arquivo real dentro do armazenamento do Zotero
  • manter apenas extensões de upload local suportadas pelo NotebookLM solicitadas; padrão pdf
  • dividir uploads em fragmentos de notebook com no máximo 50 arquivos
  • reutilizar um notebook existente com o mesmo nome quando ele é único
  • pular arquivos já presentes no notebook de destino com base em títulos e nomes de arquivo normalizados
  • enviar arquivos faltantes através de nlm source add --file ... --wait

O script falha rapidamente para extensões que não estão na lista oficial de upload local do NotebookLM. Em 21 de abril de 2026, essa lista inclui:

  • documentos: pdf, docx, txt, md, csv, pptx, epub
  • imagens: avif, bmp, gif, heic, heif, ico, jp2, jpe, jpeg, jpg, png, tif, tiff, webp
  • áudio e mídia: 3g2, 3gp, aac, aif, aifc, aiff, amr, au, avi, cda, m4a, mid, mp3, mp4, mpeg, ogg, opus, ra, ram, snd, wav, wma

Extensões fora desse conjunto, como mlx, são rejeitadas localmente antes do upload.

  1. Leia o resumo final para:
  • notebooks tocados
  • arquivos enviados
  • arquivos pulados por já estarem presentes
  • falhas, se houver

Regras de Nomenclatura

  • Use o nome base inalterado quando a coleção couber em um notebook.
  • Use sufixos _01, _02, ... quando a coleção precisar de vários notebooks.
  • Reutilize um notebook existente apenas quando exatamente um notebook tiver o título alvo.
  • Falhe em vez de adivinhar quando o nome da coleção Zotero for ambíguo ou vários notebooks compartilharem o mesmo título.

Comandos Comuns

Importar todas as correspondências de PDF padrão em uma coleção:

uv run ~/.codex/skills/notebooklm-zotero-import/scripts/import_zotero_to_notebooklm.py \
  --collection "Limit Order Book" \
  --notebook-base "LOB_TTT"

Importar o PDF de um artigo nomeado de uma coleção:

uv run ~/.codex/skills/notebooklm-zotero-import/scripts/import_zotero_to_notebooklm.py \
  --collection "Limit Order Book" \
  --title-match "LiT: limit order book transformer" \
  --notebook-base "LOB_TTT_single"

Importar o PDF de um item nomeado e outro tipo de anexo suportado:

uv run ~/.codex/skills/notebooklm-zotero-import/scripts/import_zotero_to_notebooklm.py \
  --collection "SGN.300" \
  --title-match "Homework_4" \
  --extension pdf \
  --extension md \
  --notebook-base "SGN300_hw4"

Se você solicitar um formato local não suportado, como mlx, o script para imediatamente com um erro de validação claro.

Usar um perfil não padrão do NotebookLM:

uv run ~/.codex/skills/notebooklm-zotero-import/scripts/import_zotero_to_notebooklm.py \
  --collection "Limit Order Book" \
  --title-match "DeepLOB" \
  --notebook-base "LOB_TTT_deeplob" \
  --profile default

Substituir caminhos locais do Zotero:

uv run ~/.codex/skills/notebooklm-zotero-import/scripts/import_zotero_to_notebooklm.py \
  --collection "Limit Order Book" \
  --notebook-base "LOB_TTT" \
  --zotero-db ~/Zotero/zotero.sqlite \
  --zotero-storage ~/Zotero/storage

Recursos

  • scripts/import_zotero_to_notebooklm.py: importador de ponta a ponta
  • references/workflow.md: detalhes de comportamento, regras de correspondência e condições de falha

Habilidades Relacionadas