@fabioivan/yougrabber
v1.0.0
Published
CLI para download de vídeos do YouTube
Maintainers
Readme
YouGrabber
Uma ferramenta CLI moderna para download de vídeos do YouTube desenvolvida em TypeScript.
🚀 Funcionalidades
- ✅ Download de vídeos individuais do YouTube
- ✅ Download de áudio em formato MP3
- ✅ Seleção de qualidade de vídeo e áudio
- ✅ Criação de arquivo ZIP opcional (apenas para vídeos)
- ✅ Compressão de vídeo com controle de tamanho máximo (mínimo 40% do original)
- ✅ Barra de progresso em tempo real com informações de velocidade e ETA
- ✅ Interface CLI amigável
- ✅ Validação de URLs
- ✅ Suporte a Windows, Linux e macOS
- ✅ Salvamento automático na pasta Downloads
- ✅ Formatação de arquivos em MP4 (vídeo) e MP3 (áudio)
📋 Pré-requisitos
- Node.js (versão 18 ou superior)
- npm ou yarn
🛠️ Instalação
Instalação Local
- Clone o repositório:
git clone <url-do-repositorio>
cd yougrabber- Instale as dependências:
npm install- Compile o projeto:
npm run buildInstalação Global via NPM (recomendado)
# Instalar diretamente do NPM
npm install -g @fabioivan/yougrabber
# Agora você pode usar em qualquer diretório:
yougrabber
# Para desinstalar:
npm uninstall -g @fabioivan/yougrabberInstalação Global para Desenvolvimento
Para usar o comando yougrabber globalmente durante o desenvolvimento:
# Instalar globalmente a versão local
npm run link
# Agora você pode usar em qualquer diretório:
yougrabber
# Para desinstalar:
npm run unlink🎯 Como usar
Desenvolvimento
npm run devProdução
npm run build
npm startScripts disponíveis
npm run dev- Executa em modo desenvolvimentonpm run build- Compila o projeto TypeScriptnpm start- Executa a versão compiladanpm run link- Instala globalmente a versão local para desenvolvimentonpm run unlink- Remove a instalação global da versão localnpm run publish:npm- Publica o pacote no NPM (requer autenticação)npm run format- Formata o código com Biomenpm run lint- Executa linting com Biomenpm run check- Executa formatação e linting
📖 Uso
Uso Global (após npm run link)
- Execute o comando em qualquer diretório:
yougrabberUso Local
- Execute o comando:
npm run devDigite a URL do vídeo do YouTube quando solicitado
Escolha entre baixar vídeo completo ou apenas áudio (MP3)
Escolha a qualidade desejada na lista apresentada
Se escolher vídeo, aguarde o download ser concluído
Após o download, escolha se deseja:
- Manter o arquivo como está
- Criar um arquivo ZIP
- Comprimir o vídeo (com controle de tamanho máximo)
O arquivo será salvo automaticamente na pasta Downloads
⚠️ Limitações
- ❌ Não suporta playlists (apenas vídeos individuais)
- ❌ Não suporta vídeos privados ou restritos por idade
- ❌ Requer conexão com a internet
🛡️ Validações
- ✅ URL válida do YouTube
- ✅ Verificação se é playlist (não suportada)
- ✅ Validação de formato de vídeo
- ✅ Verificação de permissões de escrita
🎨 Tecnologias Utilizadas
- Node.js - Runtime JavaScript
- TypeScript - Linguagem de programação
- youtube-dl-exec - Biblioteca para download do YouTube
- Inquirer - Interface CLI interativa
- Chalk - Cores no terminal
- Ora - Spinners de loading
- Progress Estimator - Barras de progresso inteligentes
- Archiver - Criação de arquivos ZIP
- fluent-ffmpeg - Compressão de vídeos
- Biome - Formatação e linting
📝 Licença
Este projeto está sob a licença ISC.
🤝 Contribuição
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
⚡ Performance
- Download otimizado com streams
- Progresso em tempo real com barra visual inteligente
- Estimativa de tempo de conclusão
- Tratamento de erros robusto
- Interface responsiva
🔧 Configuração
O projeto usa:
- TypeScript para tipagem estática
- Biome para formatação e linting
- Estrutura modular com separação de responsabilidades
