MizunoBrasil

Baixar vídeo Youtube (com janela. biblioteca Tkinter)

Jun 16th, 2023
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.43 KB | None | 0 0
  1. #Baixar vídeo Youtube (com janela. biblioteca Tkinter)
  2.  
  3. import tkinter as tk
  4. from tkinter import filedialog, messagebox
  5. import pytube
  6. import ctypes
  7.  
  8. # Função para minimizar a janela do terminal
  9. def minimize_window():
  10.     # Obtém o identificador da janela do terminal
  11.     hwnd = ctypes.windll.kernel32.GetConsoleWindow()
  12.  
  13.     # Minimiza a janela do terminal
  14.     ctypes.windll.user32.ShowWindow(hwnd, 6)  # 6 representa o comando para minimizar a janela
  15.  
  16.     # Exibe mensagem informando que o programa está sendo executado
  17.     print("O programa está sendo executado. A janela do terminal foi minimizada.")
  18.  
  19.  
  20. # Minimiza a janela do terminal
  21. minimize_window()
  22.  
  23. def download_video():
  24.     # Obtém a URL digitada na caixa de texto
  25.     video_url = entry.get()
  26.  
  27.     # Verifica se o campo de texto está vazio
  28.     if not video_url:
  29.         messagebox.showwarning("Aviso", "Por favor, informe a URL do vídeo do YouTube.")
  30.         return
  31.  
  32.     # Cria um objeto 'YouTube' com a URL do vídeo
  33.     youtube = pytube.YouTube(video_url)
  34.  
  35.     # Obtém a melhor resolução disponível para o vídeo
  36.     video = youtube.streams.get_highest_resolution()
  37.  
  38.     # Abre uma janela de diálogo para escolher a pasta de destino
  39.     folder_selected = filedialog.askdirectory()
  40.  
  41.     if folder_selected:
  42.         try:
  43.             # Define o diretório de destino para o download
  44.             video.download(folder_selected)
  45.  
  46.             # Exibe a mensagem no console
  47.             print("O vídeo foi baixado com sucesso.")
  48.  
  49.             # Exibe a mensagem em uma caixa de diálogo
  50.             messagebox.showinfo("Download Concluído", "O vídeo foi baixado com sucesso.")
  51.  
  52.             # Limpa a caixa de texto e posiciona o cursor nela
  53.             entry.delete(0, tk.END)
  54.             entry.focus()
  55.         except Exception as e:
  56.             messagebox.showerror("Erro", str(e))
  57.     else:
  58.         messagebox.showwarning("Aviso", "Nenhuma pasta selecionada.")
  59.  
  60. def show_context_menu(event):
  61.     # Exibe o menu de contexto do Windows com a opção "Colar"
  62.     menu.post(event.x_root, event.y_root)
  63.  
  64. # Cria a janela principal
  65. window = tk.Tk()
  66.  
  67. # Define o título da janela
  68. window.title("Youtube Vídeo Downloader")
  69.  
  70. # Define o tamanho da janela
  71. window.geometry("600x100")
  72.  
  73. # Centraliza a janela no meio da tela
  74. window.eval('tk::PlaceWindow . center')
  75.  
  76. # Cria o rótulo "Informe a URL do vídeo:"
  77. label = tk.Label(window, text="Informe a URL do vídeo:")
  78. label.grid(row=0, column=0, sticky="w", padx=10, pady=10)  # Posiciona na primeira linha, primeira coluna (canto superior esquerdo), alinhado à esquerda, com margem de 10 pixels
  79.  
  80. # Cria a caixa de texto
  81. entry = tk.Entry(window, width=80)
  82. entry.grid(row=1, column=0, padx=10, pady=10)  # Posiciona na segunda linha, primeira coluna (canto superior esquerdo), com margem de 10 pixels à esquerda
  83.  
  84. # Associa o evento de clique com botão direito do mouse à função do menu de contexto
  85. entry.bind("<Button-3>", show_context_menu)
  86.  
  87. # Cria o menu de contexto do Windows
  88. menu = tk.Menu(entry, tearoff=False)
  89. menu.add_command(label="Colar", command=lambda: entry.event_generate("<<Paste>>"))
  90.  
  91. # Cria o botão de download
  92. button = tk.Button(window, text="Baixar vídeo", command=download_video)
  93. button.grid(row=1, column=1, padx=5, pady=10)  # Posiciona na segunda linha, segunda coluna (canto superior direito), com margem de 10 pixels à direita
  94.  
  95. # Inicia o loop principal da janela
  96. window.mainloop()
  97.  
Add Comment
Please, Sign In to add comment