Pré-requisitos: GUI Python - tkinter

O YouTube é um site de compartilhamento de vídeo muito popular. Baixar um vídeo / playlist do YouTube é uma tarefa tediosa. Baixar esse vídeo através do Downloader ou tentar baixá-lo de um site aleatório, o que aumenta o risco de lamber seus dados pessoais. Usando o pacote Python Tkinter, essa tarefa é muito simples, eficiente e segura. Poucos códigos de grupo farão o download do vídeo para você. Para isso, existem duas bibliotecas Python - Tkinter e pytube .

Módulos necessários

  • pytube: pytube é uma biblioteca Python leve, simples de usar e livre de dependências que é usada para baixar vídeos do web.pytube, não é uma biblioteca configurada automaticamente. Você precisa instalá-lo antes de usá-lo. A instalação do pytube é fácil quando você tem pip. No Terminal ou Prompt de Comando, digite o seguinte comando para instalar o pytube.

    Se você estiver no Mac OS X ou Linux, é provável que um dos dois comandos a seguir funcione para você:

    pip install pytube
    git clone git: //github.com/NFicano/pytube.git pytube | cd pytube | python setup.py install

    Se você estiver no Windows



    pip install pytube3
  • Tkinter : Tkinter é uma ligação Python ao kit de ferramentas Tk GUI. É a interface padrão do Python para o kit de ferramentas Tk GUI ou, em palavras simples, o Tkinter é usado como interface gráfica do usuário Python. Tkinter é a biblioteca nativa, você não precisa instalar externamente, apenas importar, enquanto usa.

Abaixo está a implementação.

import tkinter as tk 
from tkinter import *
from pytube import YouTube 
from tkinter import messagebox, filedialog 
  
def Widgets(): 
    link_label = Label(root,  
                       text="YouTube link  :", 
                       bg="#E8D579") 
    link_label.grid(row=1, 
                    column=0, 
                    pady=5, 
                    padx=5) 
   
    root.linkText = Entry(root, 
                          width=55, 
                          textvariable=video_Link) 
    root.linkText.grid(row=1
                       column=1, 
                       pady=5, 
                       padx=5, 
                       columnspan = 2) 
   
    destination_label = Label(root,  
                              text="Destination    :", 
                              bg="#E8D579") 
    destination_label.grid(row=2, 
                           column=0, 
                           pady=5, 
                           padx=5) 
   
    root.destinationText = Entry(root, 
                                 width=40, 
                                 textvariable=download_Path) 
    root.destinationText.grid(row=2
                              column=1, 
                              pady=5, 
                              padx=5) 
   
    browse_B = Button(root,  
                      text="Browse", 
                      command=Browse, 
                      width=10, 
                      bg="#05E8E0") 
    browse_B.grid(row=2, 
                  column=2, 
                  pady=1, 
                  padx=1) 
   
    Download_B = Button(root, 
                        text="Download"
                        command=Download,  
                        width=20, 
                        bg="#05E8E0") 
    Download_B.grid(row=3, 
                    column=1, 
                    pady=3, 
                    padx=3) 
  
  
def Browse(): 
    
    
    
    
    
    download_Directory = filedialog.askdirectory(initialdir="YOUR DIRECTORY PATH") 
   
    
    
    download_Path.set(download_Directory) 
def Download(): 
      
    
    Youtube_link = video_Link.get() 
      
    
    
    download_Folder = download_Path.get() 
   
    
    getVideo = YouTube(Youtube_link) 
   
    
    
    
    videoStream = getVideo.streams.first() 
   
    
    
    videoStream.download(download_Folder) 
   
    
    messagebox.showinfo("SUCCESSFULLY"
                        "DOWNLOADED AND SAVED IN\n" 
                        + download_Folder) 
root = tk.Tk() 
   
root.geometry("600x120") 
root.resizable(False, False) 
root.title("YouTube_Video_Downloader") 
root.config(background="#000000") 
   
video_Link = StringVar() 
download_Path = StringVar() 
   
Widgets() 
   
root.mainloop() 

Resultado:

python-download-youtube-video