Voltar aos projetos
Sobre o Projeto
Ttkdl-Cli é uma ferramenta de linha de comando leve e eficiente para download de vídeos do TikTok a partir de URLs completas ou encurtadas. Suporta downloads simultâneos com controle de concorrência, configuração de pastas de saída e salvamento persistente de preferências. Desenvolvida sem dependências externas, pesando apenas 44KB, com foco em performance, arquitetura de CLI e compatibilidade multiplataforma.
Funcionalidades
Download Flexível de Vídeos
Suporta download de um ou múltiplos vídeos simultaneamente, aceitando tanto URLs completas quanto encurtadas, com compatibilidade para diferentes formatos de domínio.
Sistema de Downloads Simultâneos
Implementa controle de concorrência permitindo até 5 downloads paralelos, com feedback visual mostrando progresso e velocidade de download em tempo real.
Gerenciamento de Pastas Personalizadas
Permite definir caminhos customizados para salvamento dos vídeos, tanto para sessões únicas quanto como configuração padrão persistente entre execuções.
Remoção Automática de Marca d'água
Os vídeos são baixados sem a marca d'água do TikTok, preservando a qualidade original do conteúdo.
Desafios
Compatibilidade com Diferentes Formatos de URL
Garantir que a CLI funcionasse tanto com URLs completas do desktop quanto com versões encurtadas do mobile, considerando que o TikTok usa diferentes domínios para links curtos.
Sistema de Concorrência Eficiente
Implementar um gerenciamento de downloads simultâneos que fosse rápido e não travasse o código, bloqueando apenas quando necessário e exibindo progresso visual com total baixado e velocidade.
Suporte Multiplataforma
Adaptar a CLI para funcionar em Windows, Linux e macOS, lidando com diferenças nas pastas padrão de usuário e configurando o NPM para distribuir o binário corretamente em cada sistema operacional.
Zero Dependências Externas
Desenvolver todas as funcionalidades sem usar bibliotecas de terceiros, mantendo a CLI extremamente leve com apenas alguns kilobytes e garantindo performance máxima.
Aprendizados
Arquitetura de CLI com Node.js
Compreensão completa de como criar uma interface de linha de comando do zero, incluindo parsing de argumentos, estruturação de comandos e organização de uma arquitetura escalável.
Gerenciamento de Downloads com Streams
Domínio no uso de streams do Node.js para leitura e escrita eficiente, permitindo controle de múltiplos downloads simultâneos e exibição de informações relevantes ao usuário em tempo real.
Publicação e Manutenção de Pacotes NPM
Processo completo de publicação no registro NPM, incluindo configuração do package.json, gerenciamento de changelogs para versionamento e preparação para futuras atualizações.
Desenvolvimento Multiplataforma
Técnicas para garantir compatibilidade entre diferentes sistemas operacionais, lidando com particularidades de cada ambiente e utilizando recursos nativos do Node.js.