Communitygithub.com

Nature Literature Downloader

Usado para obter textos completos acadêmicos legais, acesso institucional CNKI, recuperação OA em inglês, API de editoras, fallback de navegador institucional e downloads de informações de suporte.

O que é Nature Literature Downloader?

O Nature Literature Downloader é uma skill especializada em rotear a obtenção de literatura acadêmica através de canais legais e autorizados, como acesso aberto, APIs de editoras, plataformas institucionais (como CNKI) e fallback via navegador. Seu principal objetivo é garantir que o usuário obtenha o texto completo de artigos científicos de forma ética e dentro dos termos de uso das instituições e editoras. A skill suporta diferentes plataformas, incluindo Elsevier, Springer Nature, IEEE e CNKI, e é projetada para ser utilizada principalmente em ambientes de desenvolvimento com Node.js e Python. O fluxo de trabalho começa com a confirmação da necessidade de materiais suplementares (Supporting Information) e, em seguida, normaliza o identificador do artigo (DOI ou título) para determinar o idioma e a editora. Para artigos em inglês de editoras com API configurada, a skill tenta a API primeiro; se falhar, recorre a fontes de acesso aberto legítimas. Para artigos em chinês, a rota é exclusivamente CNKI. A skill também gerencia configurações de credenciais de API e URLs de recursos institucionais, nunca exportando cookies ou senhas, e sempre priorizando o estado de login do navegador do usuário.

Funciona com✓Claude Code✓Codex CLI~Cursor
npx skills add Flyme886/nature-downloader

Perguntar na sua IA favorita

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

Documentação

O que Nature Literature Downloader faz?

Esta skill roteia literatura através de provedores legais de acesso aberto, API de editoras, institucionais CNKI e baseados em navegador. scripts/batch_download.mjs é o ponto de entrada de orquestração; configuração da instituição, credenciais de editoras, resolução de metadados/OA, downloads de provedores, validação de conteúdo e manifestos são módulos separados.

Rotas verificadas são exemplos, não padrões. Toda instituição deve começar pela URL real do recurso da biblioteca do usuário, porque portais de recursos, callbacks CAS, EZproxy, WebVPN, páginas de banco de dados autenticadas por IP e páginas de detalhes de banco de dados revelam o caminho de autorização ativo de forma mais confiável do que um nome de instituição.

Portão de confirmação de SI — faça isso primeiro. Antes de baixar qualquer PDF, CAJ, HTML, XML, arquivo ou anexo, pergunte se o usuário deseja Supporting Information. Uma solicitação explícita por SI conta como sim; uma solicitação explícita apenas por 正文 (texto principal) conta como não. Caso contrário, pergunte uma vez para todo o lote. Execute o downloader com exatamente um dos --si ou --no-si. Sem nenhuma das flags, o script retorna si_confirmation_required e não cria o diretório de saída.

Fluxo de trabalho principal. Normalize o DOI/título e identifique o idioma e a editora antes de rotear. Literatura chinesa sempre usa CNKI. Para artigos em inglês da Elsevier, Springer Nature e IEEE com credenciais de provedor utilizáveis, tente a API da editora primeiro e não exija uma determinação de OA após um download de API bem-sucedido. Se essa tentativa de API falhar, verifique automaticamente fontes legítimas de OA. Para outras editoras em inglês, verifique OA primeiro, depois use a rota de Acesso Web institucional quando OA não estiver disponível.

normalizar DOI/título e identificar idioma, editora
├─ Literatura chinesa: diretamente para CNKI
└─ Literatura em inglês
   ├─ Elsevier / Springer Nature / IEEE, e com chave válida configurada
   │  ├─ Tentar download via API da editora primeiro
   │  ├─ Download via API bem-sucedido: fim, não obriga verificação de OA
   │  └─ Download via API falhou: verificar OA em nível de artigo, depois ir para PMC / Unpaywall / repositórios legítimos
   └─ Outras editoras
      ├─ Verificar OA em nível de artigo
      └─ OA indisponível: usar Acesso Web institucional

Literatura chinesa é exclusiva CNKI. Um título chinês, idioma de metadados zh, URL de fonte CNKI explícita ou --route cnki deve usar CNKI mesmo que outra cópia OA pareça existir. Reutilize o estado de login atual da biblioteca/CNKI do Chrome do usuário e prefira discovery.cnki_url configurado. Nunca exporte cookies ou colete a senha institucional.

Fallback de API da editora. Uma chave de API válida não garante direito ao texto completo. Quando uma tentativa de API da Elsevier, Springer Nature ou IEEE retorna sem direito ao texto completo, tente automaticamente fontes legítimas de OA primeiro. Retorne api_fallback_confirmation_required e pergunte uma vez se deve usar Acesso Web somente depois que tanto a API da editora quanto as rotas de OA falharem. Não mude para Acesso Web institucional automaticamente.

Princípio do estado do navegador. Downloads autorizados dependem do perfil exato do navegador onde o usuário está logado. Se um proxy, sessão CDP ou ferramenta de automação de navegador abrir um novo perfil ou um navegador diferente sem estado de login, não trate a falha como falta de permissão da biblioteca. Mude para um caminho de controle que reutilize a sessão ativa do navegador do usuário ou peça ao usuário para autenticar na instância do navegador controlada.

Princípio do formato. PDF, HTML texto completo e formatos nativos de banco de dados como CAJ são entregas diferentes. Se o usuário pedir apenas PDF, exija um link PDF real ou resposta %PDF e relate no_authorized_pdf_found / pdf_fetch_failed quando nenhum existir. Não salve CAJ, HTML ou uma página de login como se fosse um PDF.

Configuração de Primeira Execução e Entrada de Download

Para cada solicitação de download, primeiro estabeleça a lista de artigos e pergunte:

是否同时下载这些文献的 Supporting Information(SI,补充材料)?

Faça a consulta de metadados antes desta pergunta apenas quando necessário para identificar os artigos solicitados. Não baixe arquivos até que a resposta seja conhecida. Configure uma biblioteca apenas quando a rota selecionada for CNKI ou Acesso Web. Configure uma API de editora apenas quando o artigo em inglês selecionado pertencer à Elsevier, Springer Nature ou IEEE; uma determinação de OA não é necessária antes de tentar uma API de provedor configurada.

Configuração de Recurso de Biblioteca Paga

Pergunte pela URL do recurso da biblioteca que o usuário realmente usa:

请发你平时进入图书馆电子资源/数据库的平台链接。
可以是资源门户、数据库列表、Web of Science 入口、某个数据库详情页,
或跳转到统一身份认证的登录链接。

Em seguida, infira a rota de autorização da URL antes de salvar a configuração:

python3 scripts/configure_school.py infer "https://example.edu/library/resources"
python3 scripts/configure_school.py url "https://example.edu/library/resources"
python3 scripts/configure_school.py show
python3 scripts/configure_school.py health --force

A skill distribuída não contém predefinições de instituições. Se o usuário não puder fornecer uma URL de recurso, peça para ele localizar a entrada da biblioteca/banco de dados de sua instituição em vez de adivinhar um domínio específico da instituição.

O caminho de configuração padrão é:

~/.config/lit-dl/school.json

Para testes ou perfis isolados, defina:

LIT_DL_CONFIG_DIR=/path/to/configdir

O downloader lê esta configuração automaticamente. Se discovery.web_of_science_url estiver presente, scripts/batch_download.mjs o usa como entrada do Web of Science; caso contrário, usa https://www.webofscience.com/wos/woscc/basic-search como fallback.

Para literatura chinesa, o downloader também lê discovery.cnki_url quando presente. Se ausente, scripts/batch_download.mjs --title "<título chinês>" usa https://kns.cnki.net/kns8s/defaultresult/index como fallback.

Saída Fixa de Integração de API de Editora

Imediatamente após a URL do recurso da biblioteca ter sido salva, exibida e aprovada na verificação de integridade, produza o seguinte bloco Markdown exatamente. Não substitua as URLs por resultados de pesquisa, não encurte o aviso da IEEE e não peça ao usuário para colar chaves de API no chat.

请按需配置以下出版商,即可实现长期稳定下载
Elsevier API Key(必配置)
[https://dev.elsevier.com/apikey/manage](https://dev.elsevier.com/apikey/manage)
Website URL可以填写:[Yuan1z0825/nature-skills](https://github.com/Yuan1z0825/nature-skills)

Springer Nature Developer Portal(建议配置)
https://dev.springernature.com/#api
下滑依次点击**Subscribe now“-“free”**

IEEE Developer Registration(按需)
[https://developer.ieee.org/member/register](https://developer.ieee.org/member/register)

完成登录/注册及“学校邮箱”验证后,进入 API Management 页面复制 API Key。IEEE 普通 Key 仅用于 Metadata API,全文访问需要单独申请 Full-Text Access。

Pare após exibir este bloco e aguarde o usuário concluir o registro, verificação de e-mail institucional e cópia das chaves de API relevantes. O usuário realiza todas as etapas de senha, CAPTCHA, OTP, confirmação por e-mail, consentimento e cópia de chave de API. Nunca leia chaves de API da página do navegador ou peça ao usuário para enviá-las pelo chat.

Fallback de API Primeiro e Acesso Aberto

Para um artigo em inglês, identifique sua editora antes de decidir quando resolver OA em nível de artigo:

  1. Colete um DOI, PMID, título exato, URL do artigo ou uma lista definitiva de artigos, em seguida normalize seus metadados e editora.

  2. Se pertencer à Elsevier, Springer Nature ou IEEE e credenciais de provedor utilizáveis estiverem configuradas, tente a API dessa editora primeiro. Em caso de sucesso, registre accessMode: publisher_api e oa_status: not_checked_api_first; não execute a resolução de OA apenas para rotular o artigo.

  3. Se a API da editora falhar, pesquise automaticamente fontes legítimas de OA como PMC, Unpaywall, páginas de OA da editora, arXiv e outros repositórios legais ou URLs de PDF claramente abertos. Preserve a tentativa de API falha no manifesto.

  4. Para todas as outras editoras em inglês, pesquise essas fontes legítimas de OA antes do Acesso Web.

  5. Para um título exato ou uma solicitação explícita apenas de OA, prefira:

    node scripts/batch_download.mjs --title "<título exato>" --open-access --no-si --out "<projeto>"
    

    Use --pdf-url quando o usuário fornecer uma URL de PDF OA legítima conhecida.

  6. Verifique o arquivo baixado e registre a fonte. Marque um PDF bem-sucedido como open_access_downloaded.

  7. Se nenhum texto completo OA legítimo for encontrado, marque oa_not_found. Para uma editora suportada cuja API já falhou, solicite confirmação antes do Acesso Web. Para outra editora, continue para o Acesso Web. Se --route open_access foi explicitamente solicitado, pare após o resultado OA.

Credenciais de API da Editora

Após o bloco fixo de integração da editora, configure apenas os provedores para os quais o usuário obteve uma chave de API. Deixe o usuário inserir cada chave através do prompt oculto local:

python3 scripts/configure_credentials.py set elsevier
python3 scripts/configure_credentials.py set springer_nature
python3 scripts/configure_credentials.py set ieee --fulltext-endpoint 'https://issued-endpoint.example/articles/{doi}'
python3 scripts/configure_credentials.py show
python3 scripts/configure_credentials.py validate <provedor>
python3 scripts/configure_credentials.py delete <provedor>
python3 scripts/configure_credentials.py contact-email [email protected]

Use apenas as URLs de registro no bloco fixo de integração acima. Deixe o usuário inserir cada chave através do prompt oculto local; nunca a ecoe ou a coloque em um manifesto. O acesso à API de Metadados IEEE não é acesso pago ao texto completo; exija o endpoint/modelo de Acesso ao Texto Completo emitido antes de tratar IEEE como baixável através da API. Os segredos são armazenados em ~/.config/lit-dl/credentials.json com modo 0600.

Habilidades Relacionadas