KelpsGet agora é KGet! v1.5.0 (Novo Lançamento)
Um downloader moderno, leve e versátil escrito em Rust para downloads rápidos e confiáveis via linha de comando (CLI) e interface gráfica (GUI).
English | Português | Español |
Screenshots
-
GUI:
-
Torrent em
localhost:9091/transmission/web/
: -
CLI:
-
Interativo:
Como Funciona (Resumo)
- Barra de Progresso (CLI): Mostra velocidade, tempo estimado e bytes transferidos.
- Nomeação Inteligente de Arquivos:
- Usa o nome do arquivo da URL.
- Usa
index.html
por padrão se a URL terminar com/
.
- Tratamento de Erros: Encerra com código 1 em erros HTTP (ex: 404).
- Verificação de Espaço: Verifica espaço disponível em disco.
- Retry Automático: Tenta novamente o download em falhas de rede.
- Modo de Download Avançado (HTTP/HTTPS): Downloads em chunks paralelos, suporta retomada.
- Suporte a Proxy: HTTP, HTTPS, SOCKS5 com autenticação.
- Recursos de Otimização: Compressão (para cache), cache de arquivos, limite de velocidade.
- Downloads de Torrent: Adiciona links magnet ao
transmission-daemon
para download. - Downloads FTP/SFTP: Conecta a servidores FTP/SFTP para transferir arquivos.
Funcionalidades
Veja a lista completa de funcionalidades e mudanças recentes no CHANGELOG.
KGet agora é um Crate também!
Se você quer usar o KGet como um crate, clique aqui.
Instalação
Opção 1: Compilar da fonte (Recomendado para obter todas as funcionalidades)
Você precisará ter o Rust instalado. Se não tiver, instale-o em rustup.rs.
Instale algumas dependências: Para sistemas baseados em Debian/Ubuntu:
sudo apt update
sudo apt install -y libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev pkg-config
Para Fedora:
sudo dnf install -y libxcb-devel libxkbcommon-devel openssl-devel pkg-config
Clone o repositório e compile o projeto:
git clone https://github.com/davimf721/KGet.git
cd KGet
cargo build --release
O executável estará em target/release/kget
. Você pode copiá-lo para um diretório no seu PATH
:
sudo cp target/release/kget /usr/local/bin/
Opção 2: Instalar via Cargo
cargo install kelpsget
Se encontrar problemas com a GUI ao instalar via cargo install
, compilar da fonte é mais confiável.
Opção 3: Baixar Binários Pré-compilados
Verifique a seção Releases para os binários mais recentes para seu SO.
Linux/macOS:
chmod +x kelpsget # Tornar executável
./kelpsget [URL] # Executar diretamente
Windows:
Execute o arquivo .exe
diretamente.
Requisito Adicional para Downloads de Torrent: Transmission Daemon
O KGet usa o transmission-daemon
para gerenciar downloads de torrent.
1. Instalar o Transmission Daemon:
- Debian/Ubuntu:
sudo apt update sudo apt install transmission-daemon
- Fedora:
sudo dnf install transmission-daemon
- Arch Linux:
sudo pacman -S transmission-cli
2. Parar o Daemon para Configuração:
sudo systemctl stop transmission-daemon
3. Configurar o Transmission:
Edite o arquivo settings.json
. Localizações comuns:
/var/lib/transmission-daemon/info/settings.json
(Debian/Ubuntu, se instalado como serviço)/var/lib/transmission/.config/transmission-daemon/settings.json
(Outro caminho comum, verifique seu sistema)~/.config/transmission-daemon/settings.json
(se executado como usuário)
Use sudo nano /var/lib/transmission-daemon/info/settings.json
(ou o caminho correto para seu sistema).
Encontre e modifique estas linhas:
{
// ...
"rpc-authentication-required": true,
"rpc-enabled": true,
"rpc-password": "transmission", // Este é o valor que o KGet usa por padrão para conectar ao Transmission (recomendado)
"rpc-port": 9091,
"rpc-username": "transmission", // Nome de usuário que o KGet usa para conectar ao Transmission
"rpc-whitelist-enabled": false, // Para acesso local. Para acesso remoto, configure IPs.
"download-dir": "/var/lib/transmission-daemon/downloads", // Diretório padrão de download do Transmission
// ...
}
Importante: Após salvar e iniciar o transmission-daemon
, ele substituirá a senha em texto plano rpc-password
por uma versão com hash.
4. (Opcional) Ajustar Permissões do Usuário do Daemon:
Se o transmission-daemon
rodar como um usuário específico (ex: debian-transmission
ou transmission
), certifique-se que este usuário tem permissões de escrita nos diretórios de download que você pretende usar com o KelpsGet ou o próprio Transmission. Você pode adicionar seu usuário ao grupo do Transmission daemon:
sudo usermod -a -G debian-transmission seu_usuario_linux # Para Debian/Ubuntu
# Verifique o nome do grupo/usuário do Transmission no seu sistema
5. Iniciar o Transmission Daemon:
sudo systemctl start transmission-daemon
# Verificar status:
sudo systemctl status transmission-daemon
Acesse http://localhost:9091
no seu navegador. Você deverá ver a interface web do Transmission e ser solicitado a fazer login com o rpc-username
e rpc-password
que você configurou.
Uso
Linha de Comando (CLI)
kelpsget [OPÇÕES] <URL>
Exemplos:
- Download HTTP/HTTPS:
kelpsget https://example.com/arquivo.txt
- Renomear Arquivo de Saída:
kelpsget -O novo_nome.txt https://example.com/arquivo.txt kelpsget -O ~/Downloads/ https://example.com/video.mp4 # Salva como ~/Downloads/video.mp4
- Download FTP:
kelpsget ftp://usuario:senha@ftp.example.com/arquivo.zip kelpsget --ftp ftp://ftp.example.com/pub/arquivo.txt
- Download SFTP:
(Requer configuração de chave SSH ou senha se o servidor permitir)
kelpsget sftp://usuario@sftp.example.com/caminho/arquivo.dat kelpsget --sftp sftp://usuario@sftp.example.com/caminho/arquivo.dat -O local.dat
- Download de Torrent (Link Magnet):
(Requer
transmission-daemon
configurado e rodando)kelpsget "magnet:?xt=urn:btih:SEU_HASH_AQUI&dn=NomeTorrent" kelpsget --torrent "magnet:?xt=urn:btih:SEU_HASH_AQUI" -O ~/MeusTorrents/
O KelpsGet adicionará o torrent ao Transmission e tentará abrir a interface web (
http://localhost:9091
) para gerenciamento. - Modo Silencioso:
kelpsget -q https://example.com/arquivo.txt
- Modo de Download Avançado (HTTP/HTTPS):
kelpsget -a https://example.com/arquivo_grande.zip
- Usar Proxy:
kelpsget -p http://proxy:8080 https://example.com/arquivo.txt
- Proxy com Autenticação:
kelpsget -p http://proxy:8080 --proxy-user usuario --proxy-pass senha https://example.com/arquivo.txt
- Limite de Velocidade:
kelpsget -l 1048576 https://example.com/arquivo.txt # Limita a 1MB/s
- Desabilitar Compressão (específico do KelpsGet, não HTTP):
kelpsget --no-compress https://example.com/arquivo.txt
- Desabilitar Cache (específico do KelpsGet):
kelpsget --no-cache https://example.com/arquivo.txt
Interface Gráfica (GUI)
Para iniciar a GUI:
kelpsget --gui
A GUI permite que você insira a URL, caminho de saída e inicie downloads. Status e progresso são mostrados na interface.
Configuração do KelpsGet
O KelpsGet usa um arquivo de configuração em:
- Windows:
%APPDATA%\kelpsget\config.json
- Linux/macOS:
~/.config/kelpsget/config.json
Exemplo de config.json
para o KelpsGet:
{
"proxy": {
"enabled": false,
"url": null,
"username": null,
"password": null,
"proxy_type": "Http"
},
"optimization": {
"compression": true, // Compressão para cache do KelpsGet
"compression_level": 6,
"cache_enabled": true,
"cache_dir": "~/.cache/kelpsget", // Expanda ~ manualmente ou use caminho absoluto
"speed_limit": null,
"max_connections": 4
},
"torrent": {
"enabled": true,
"transmission_url": "http://localhost:9091/transmission/rpc",
"username": "transmission", // Usuário configurado no settings.json do Transmission
"password": "transmission", // Senha configurada no settings.json do Transmission
"max_peers": 50,
"max_seeds": 50,
"port": null,
"dht_enabled": true,
"default_download_dir": null // Diretório padrão para downloads de torrent via KelpsGet
},
"ftp": {
"default_port": 21,
"passive_mode": true
},
"sftp": {
"default_port": 22,
"key_path": null // Caminho para chave SSH privada, ex: "~/.ssh/id_rsa"
}
}
Nota sobre cache_dir
e key_path
: Se usar ~
, certifique-se que seu programa expande corretamente o til para o diretório home do usuário, ou use caminhos absolutos.
🔗 Links Importantes
- 📚 Documentação
- 📦 crates.io
- 💻 GitHub
- 📝 Changelog
Você pode ver posts sobre o projeto em outras comunidades:
Contribuindo
Quer contribuir? Confira nosso guia de contribuição!
Encontrou um bug ou quer adicionar uma funcionalidade? Abra uma issue ou envie um PR!
🚀 Faça downloads facilmente com a velocidade e confiabilidade do Rust. 🚀
Licença
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.