Jump to content

Baixando vídeos e músicas do Youtube com Python


Thanael

Postagens Recomendadas

  • Pessoal da TecnoSpeed

Olá pessoal tudo bem?

Sabe quando você precisa baixar algum vídeo ou música do Youtube e tem que ficar pesquisando aqueles conversores online cheios de anúncios que leva uma eternidade para baixar uma simples música... 🥲

E se eu te disse-se que você pode construir seu próprio programa para baixar os vídeos e as musicas que quiser do Youtube!

Então vem comigo, que vou te mostrar como é simples realizar downloads do Youtube através do Python. 

🚫🚫 Gostaria de lembra-los que não apoiamos pirataria e esses downloads devem ser realizados apenas em vídeos cujo direitos autorais  permitam a livre distribuição.🚫🚫

  • Vamos primeiro instalar as bibliotecas necessárias para fazer isso.
pip install pytube
pip install moviepy
  • Agora vamos importar as bibliotecas necessárias
from pytube import YouTube
from pytube import Playlist
import moviepy.editor as mp
import re
import os
  • Agora basta criarmos uma função para realizar o download de um vídeo do Youtube
def download_video():
    link = input('Digite o Link do Vídeo')
    path = input('Caminho de download')
    yt = YouTube(link)
    #Fazer o dowload
    ys = yt.streams.filter(only_audio=True).first().download(path)
    print("Download Completo")

Pronto, com isso já podemos baixar qualquer vídeo que quisermos do Youtube. basta chamarmos a função criada e passar as informações pedidas.
image.png

Agora você deve estar pensando "Okay, já sei baixar vídeo, mas como faço para baixar as músicas?"

Então para realizar isso basta convertemos o arquivo de vídeo para um arquivo de áudio, usando a biblioteca moviepy que instalamos anteriormente.

def download_music():
    link = input('Digite o Link do Vídeo')
    path = input('Caminho de download')
    yt = YouTube(link)
    #Fazer o dowload
    ys = yt.streams.filter(only_audio=True).first().download(path)
    #Converter o video(mp4) para mp3
    for file in os.listdir(path):                  #For para percorrer dentro da pasta passada anteriormente
        if re.search('mp4', file):                 #If verificando se o arquivo e .MP4                    
            mp4_path = os.path.join(path , file)   #Cria uma variavel para armazenar o arquivo .MP4
            mp3_path = os.path.join(path, os.path.splitext(file)[0]+'.mp3') #Variavel que cria o nome do arquivo e adiciona .MP3 ao final
            new_file = mp.AudioFileClip(mp4_path)  #Cria o arquivo de áudio (.MP3)
            new_file.write_audiofile(mp3_path)     #Renomeia o arquivo, setando o nome criado anteriormente
            os.remove(mp4_path)                    #Remove o arquivo .MP4
    print("Download Completo")

E basta chamarmos a função.

image.png

Pronto, viu só como é simples ? Não dependa mais desses conversores online, faça você mesmo o seu próprio!

Caso você deseje criar uma interface gráfica, ou baixar playlist, dá uma olhada neste repositório no GitHub que criei, onde fiz um programa com interface gráfica para realizar os downloads do Youtube.
Repositório: Download from YouTube

  • Curtir 10
  • Amei 1
Link to comment
Compartilhe em outros sites

  • 6 months later...
  • Pessoal da TecnoSpeed

Olá @Weime Dias acredito que basta você criar as funções para realizar a ação que irá funcionar normalmente caso sua assistente virtual seja um arquivo .py, caso seja uma aplicação web ou desktop ai aumenta a complexidade, sugiro pesquisar sobre envio e armazenamento de arquivos em servidor e disponibilização de arquivos na sua aplicação. 

Infelizmente não possuo conhecimento em como realizar essas etapas, mas acredito existir muito conteúdo na internet sobre isso. 

Espero que isso lhe de um norte de para onde seguir.

Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...