Link do repositório: https://github.com/PHGodoyCosta/Youtube_Downloader
Tenho uma amiga que em 2024 trabalhava em uma "papelaria" (seu próprio empreendimento 🥹) chamada Mg Multicoisas. Ela fazia vários serviços e vendia muitas coisas na loja, as melhores tardes eram as que passavamos juntos, tomando tereré ou sorvete 😁
Ela tambem vendia Pen Drives, e alguns clientes começaram a pedir com músicas gravadas, sertanejos, modas, populares... E ela sempre rejeitava esse serviços, até que perguntei para ela: "Porque você não grava as músicas? Tem um computador aqui".
Ela disse que não sabia e me pediu uma forma, mas como eu iria ensinar ela? ksks Porque quando eu precisava, baixava vídeos por conversores online, mas sinceramente... Eles são cheios de ADS, vários estão sempre saindo do ar e não tem a função principal que ela precisaria, baixar playlists.
É completamente inviável ter que baixar 100 músicas do Gustavo Lima uma a uma. Procurei por alternativas online e não encontrei nenhuma boa. Foi quando arregacei as mangas e falei:
"Deixa que eu resolvo meu bem! 💪" (kkkk, não foi exatamente assim, mas na minha cabeça foi algo semelhante)
A maneira mais fácil para implementar isso é com a API do Youtube, você faz uma requisição com os parametros deles lá, e sucesso! 😁👍
O problema é que eles cobram, e eu não queria pagar, nem entregar uma alternativa paga para ela, então resolvi tentar pelo jeito mais difícil...
O Youtube é um app de streaming, que baixa os vídeos de pouco a pouco do seu servidor, então para baixar um vídeo completo, teria descobrir um padrão para fazer o download desses pedaços de vídeo, baixar todos eles e juntar em um só por um script.
E como eu sabia que ia dar muito trabalho, resolvi procurar no Git Hub para ver se alguem já tinha adentrado nessa zona sombria ai ksksk
Depois de muito buscar, quando já estava quase começando a fazer o meu script, encontrei o bendito! 🤩
Um programa em python chamado yt-dlp. Fazia download rápido de vídeos e audios e ainda me retorna os dados do vídeo (Titulo, Banner, e informações no geral) era perfeito! 🎊
Agora bastava desenvolver um app! Resolvi fazer com Electron porque ainda não conhecia nenhuma alternativa de interface com Python, e para isso poderia ser necessário várias funções, então precisava trabalhar com uma tecnologia que era mais familiarizado.
Escolhi ElectronJS porque já tinha quebrado muito a cabeça com ele quando fizemos a versão do Discipline Aluno (Essa versão com Electron, eu não publiquei porque acabou se descontinuando e trasformamos no código da versão web atual).
Mas o yt-dlp é python, então terminei fazendo duas aplicações. Um servidor Flask que faz o download, e a parte Electron faz o papel de client apenas consumindo a API.
O programa ainda está na sua primeira versão, pensei em fazer algo simples e atendeu a demanda dela, então não adicionei outras features que estava pensando como controle de qualidade de exportação, queues para download multiplos...
Hoje ela fechou a papelaria mas pessoalmente uso bastante ele no dia a dia kkkkk, então essas features devem acabar saindo em algum momento.
Repositório: https://github.com/PHGodoyCosta/Youtube_Downloader