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.