eutopiazen/clouddrive2

CloudDrive2 云盘管理: via gRPC local (127.0.0.1:19798) liste/pesquisa/move/copia/exclui arquivos, cria pastas, criptografa, baixa offline, obtém links de download, gerencia pontos de montagem/nuvens/backups/tarefas de transferência/tokens de API/contas. Palavras-chave: 115, Baidu Netdisk, Xunlei, CloudDrive, CD2, download offline, transferência, scraping, montagem, strm.

O que é clouddrive2?

Este skill permite que agentes de IA (como Claude Code, Cursor, Codex) gerenciem completamente o CloudDrive2 (suporta 115, Baidu Netdisk, Xunlei e diretórios locais) via seu serviço gRPC local em 127.0.0.1:19798. Ele fornece duas interfaces: uma camada de comando rápido (cd2cmd.py) para operações diárias como listar, pesquisar, mover, copiar, excluir, renomear e baixar arquivos; e um invocador genérico (cd2.py) que dá acesso a todos os 227 métodos RPC documentados. A autenticação é automática (prioriza variáveis de ambiente, depois arquivo de token local). O skill é útil para automatizar tarefas de gerenciamento de armazenamento em nuvem, como organização de mídia, backup, download offline, e monitoramento de tarefas. Ele também inclui documentação local e um mecanismo de atualização automática semanal para sincronizar com as mudanças da API oficial do CloudDrive2.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/eutopiazen/clouddrive2-skill/tree/main

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

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

Documentação

CloudDrive2 Gerenciamento de Nuvem

Execute operações de arquivos e gerenciamento do sistema em nuvens (115/Baidu Netdisk/Xunlei/diretórios locais) através do serviço gRPC do CloudDrive2 local. Endereço do serviço 127.0.0.1:19798, já logado, autenticação automática.

Pré-requisitos

  • Serviço em execução contínua, sem necessidade de iniciar
  • Autenticação automática: prioriza variáveis de ambiente CD2_TOKEN/CLOUDDRIVEAPI → token API em /opt/clouddrive2/config/api_tokens.json local → GET token.txt. Geralmente funciona diretamente.
  • Diretório da ferramenta: /root/.openclaw/workspace/skills/clouddrive2/
    • cd2.py — Invocador genérico, suporta todos os 227 RPCs
    • cd2cmd.py — Encapsulamento conveniente para comandos comuns
    • gen/proto/ — Cliente gRPC Python gerado (não mexa)
    • clouddrive.proto — Definição proto mais recente (1.0.17)
    • docs/ — Instantâneo da documentação oficial gRPC (manual de referência em caso de erros)

Manual de Referência da Documentação Oficial

  • Instantâneo local: docs/CloudDrive2_gRPC_API_Guide_zh-CN.md (sincronizado automaticamente com atualizações oficiais)
  • Consulte-o primeiro em caso de erros/consulta de campos: nomes de métodos, campos de requisição/resposta, valores de enum, descrições de erros comuns estão todos lá
  • Versão online: https://www.clouddrive2.com/api/CloudDrive2_gRPC_API_Guide.html
  • Atualização automática: Detecta automaticamente alterações na documentação/proto oficial toda segunda-feira; quando houver atualizações, regenera o cliente e sincroniza em três lugares (esta cópia de trabalho, ~/.agents/skills/clouddrive2, GitHub eutopiazen/clouddrive2-skill); o resumo das alterações é gravado em scripts/cd2doc-watch/changes/

Uso

A. Comandos Rápidos (cd2cmd.py, preferido para operações frequentes)

cd /root/.openclaw/workspace/skills/clouddrive2
python3 cd2cmd.py ls /115open            # Listar diretório: nome<TAB>tamanho<TAB>tipo
python3 cd2cmd.py ls / --refresh         # Forçar atualização de cache
python3 cd2cmd.py find /115open filme     # Pesquisa difusa
python3 cd2cmd.py info /115open/xx.mkv   # Detalhes do arquivo
python3 cd2cmd.py mkdir /115open nova_pasta
python3 cd2cmd.py mv /115open/a.mkv /115open/filmes        # Mover (conflito padrão: Renomear)
python3 cd2cmd.py cp /115open/a.mkv /115open/backup --policy overwrite
python3 cd2cmd.py rm /115open/lixo.mkv                    # Excluir (lixeira)
python3 cd2cmd.py rmperm /115open/lixo.mkv                # Excluir permanentemente
python3 cd2cmd.py rn /115open/a.mkv b.mkv                # Renomear
python3 cd2cmd.py dl /115open/a.mkv                      # URL de download + curl/wget
python3 cd2cmd.py mounts | clouds | copy-tasks           # Pontos de montagem/nuvens/tarefas de cópia
python3 cd2cmd.py dl-tasks | ul-tasks                    # Filas de download/upload
python3 cd2cmd.py backups                                # Status de backup
python3 cd2cmd.py settings | acct | tokens               # Configurações/conta/tokens
python3 cd2cmd.py token-create nome --perm allow_read allow_list
python3 cd2cmd.py unlock /path senha [--permanent]
python3 cd2cmd.py stat                                   # Informações do sistema

B. RPC Arbitrário (cd2.py) — Todas as funcionalidades da documentação

python3 cd2.py <RpcName> [campo=valor ...] [--json|--raw|--no-auth|--list]
  • Nomes de campos em camelCase (conforme documentação), aninhados com .: subCampo=valor
  • Valores analisados como JSON (números/bool/arrays são convertidos automaticamente), métodos de streaming são agregados automaticamente
  • --list imprime todos os 227 nomes de métodos
  • Exemplos comuns:
python3 cd2.py GetSubFiles path=/115open forceRefresh=true
python3 cd2.py FindFileByPath parentPath=/115open path=/115open/filmes/xxx.mkv
python3 cd2.py GetSearchResults searchFor=filme path=/ fuzzyMatch=true
python3 cd2.py CreateFolder parentPath=/115open folderName=nova_pasta
python3 cd2.py RenameFile theFilePath=/115open/a.mkv newName=b.mkv
python3 cd2.py MoveFile theFilePaths=/115open/a.mkv destPath=/115open/filmes conflictPolicy=Rename
python3 cd2.py CopyFile theFilePaths=/115open/a.mkv destPath=/115open/backup conflictPolicy=Skip
python3 cd2.py DeleteFiles path=/115open/lixo1.mkv path=/115open/lixo2.mkv
python3 cd2.py GetMountPoints
python3 cd2.py GetAllCloudApis
python3 cd2.py GetDownloadUrlPath path=/115open/a.mkv preview=false
python3 cd2.py GetCopyTasks
python3 cd2.py BackupGetAll
python3 cd2.py GetAccountStatus
python3 cd2.py ListTokens
python3 cd2.py GetSystemSettings

Conceitos Chave

  • Prefixo de caminho (raiz da nuvem): /115open, /BaiduNetdisk, /XunleiCloud, /mnt (disco local), /CD2 (local /ssd/CD2)
  • Política de conflito conflictPolicy: Overwrite=0 / Rename=1 / Skip=2
  • Lista de nuvens: python3 cd2.py GetAllCloudApis
  • Pontos de montagem: Por padrão, apenas /mnt/115open está montado; use GetMountPoints para visualizar
  • Exclusão: Por padrão vai para a lixeira; DeleteFilesPermanently/rmperm é para exclusão permanente
  • Download: GetDownloadUrlPath retorna a URL montada (directUrl tem prioridade, caso contrário downloadUrlPath contém placeholders {SCHEME}/{HOST}/{PREVIEW} que precisam ser substituídos); endereço usando 127.0.0.1:19798
  • Operações com arquivos grandes (mover/copiar entre nuvens) geram tarefas em segundo plano; use GetCopyTasks para acompanhar

Solução de Problemas de Autenticação

  • No valid auth token → Arquivo de token/ambiente ausente; verifique se api_tokens.json existe
  • Aviso de 2FA → Requer CD2_TOTP ou use token API
  • Métodos públicos (GetSystemInfo/GetToken/Login, etc.) não precisam de autenticação; adicione --no-auth

Verificação

Após cada operação, confirme o sucesso através dos campos de resultado:

  • Criar/mover/copiar/excluir → Retorna FileOperationResult contendo success/errorMessage
  • Listar/pesquisar → Verifique se a contagem de entradas corresponde ao esperado
  • Se a operação falhar, primeiro veja errorMessage, depois decida se deve tentar novamente ou verificar o status da tarefa

Habilidades Relacionadas