Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from tkinter import *
- from tkinter import filedialog
- from PIL import Image, ImageTk
- import pytube
- #Valor hexadecimal da cor da janela, para outras cores visite o
- # site https://www.rapidtables.com/convert/color/rgb-to-hex.html
- # Altere o RGB e clique em Convert, depois basta copiar o Hex color code
- cor = "#E8A722"
- #Configurações do form (janela do programa)
- root = Tk()
- root.title("YouYube Downloader")
- root.resizable(False, False)
- #Respectivamente a altura e largura da janela com a distância do programa em relação a parte esquerda e de cima da tela
- root.geometry("550x150+433+234")
- root.config(bg=cor)
- #Variáveis globais, duas para receber o conteúdo dos componentes tkinter.Entry
- # e duas para converter as primeiras em tipo string
- stringURL = StringVar()
- stringDiretorio =StringVar()
- url = str()
- caminho = str()
- #Função para selecionar o diretório onde o vídeo será salvo
- def ondeSalvar():
- global caminho
- caminho = filedialog.askdirectory()
- stringDiretorio.set(caminho)
- #Função para baixar o vídeo
- def baixarVideo():
- global url
- url = stringURL.get() #Copia o tipo StringVar para string (necessário para a função pytube)
- youtube = pytube.YouTube(url) #Recebe as informações do vídeo com a URL (copiada na linha acima)
- video = youtube.streams.get_highest_resolution() #Modo de download
- video.download(caminho, youtube.title) #Baixa o vídeo passando o caminho e nome
- #Variável para receber uma imagem que será exibida no programa
- #Ícone baixado aqui: https://icon-icons.com/pt/icone/sociais-youtube/2201
- img = ImageTk.PhotoImage(Image.open("YouTube.ico")) #Basta colocálo na mesma pasta que o projeto Python
- #3 Labels, uma para a imagem (apague se não houver imagem)
- # As outras duas são para receber o URL do vídeo e o diretório onde salvá-lo
- lb1 = Label(root, image=img, bg=cor).pack(anchor=NW)
- lb2 = Label(root, text="URL do vídeo", bg=cor).place(x=130, y=5)
- lb3 = Label(root, text="Onde salvar", bg=cor).place(x=130, y=35)
- #Duas entradas para receber URL e diretório, fazem conexão com as variáveis
- # globais stringURL e stringDiretorio
- et1 = Entry(root, textvariable=stringURL, width=53).place(x=210, y=5)
- et2 = Entry(root, textvariable=stringDiretorio, width=53).place(x=210, y=35)
- #Botões para chamar as funções ondeSalvar() e baixarVideo()
- bt1 = Button(root, text="Onde salvar", width=20, command=ondeSalvar).place(x=210, y=65)
- bt2 = Button(root, text="Baixar vídeo", width=20, command=baixarVideo).place(x=380, y=65)
- root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement