first commit
This commit is contained in:
commit
e25625fa35
|
@ -0,0 +1,33 @@
|
||||||
|
from pytube import YouTube
|
||||||
|
import os
|
||||||
|
|
||||||
|
path = os.path.abspath(os.getcwd())
|
||||||
|
|
||||||
|
def DownloadMP3(url, destination):
|
||||||
|
yt = YouTube(url)
|
||||||
|
newpath = path + "/Downloads/Audio"
|
||||||
|
if len(destination)==0:
|
||||||
|
check = os.path.exists(newpath)
|
||||||
|
if not check:
|
||||||
|
os.makedirs(newpath)
|
||||||
|
destination = newpath
|
||||||
|
vid = yt.streams.filter(only_audio=True).first()
|
||||||
|
out_file = vid.download(output_path=destination)
|
||||||
|
n = os.path.splitext(out_file)
|
||||||
|
filename = n[0] + '.mp3'
|
||||||
|
os.rename(out_file, filename)
|
||||||
|
|
||||||
|
def DownloadMP4(url, quality, destination):
|
||||||
|
yt = YouTube(url)
|
||||||
|
newpath = path + "/Downloads/Video"
|
||||||
|
if len(destination)==0:
|
||||||
|
check = os.path.exists(newpath)
|
||||||
|
if not check:
|
||||||
|
os.makedirs(newpath)
|
||||||
|
destination = newpath
|
||||||
|
if quality == "MaxQ":
|
||||||
|
vid = yt.streams.get_highest_resolution()
|
||||||
|
else:
|
||||||
|
vid = yt.streams.filter(res=quality).first()
|
||||||
|
out_file = vid.download(output_path=destination)
|
||||||
|
|
|
@ -0,0 +1,110 @@
|
||||||
|
from tkinter import *
|
||||||
|
from tkinter import ttk
|
||||||
|
from tkinter import filedialog
|
||||||
|
from tkinter import messagebox
|
||||||
|
import os.path
|
||||||
|
import downloader
|
||||||
|
|
||||||
|
check = os.path.exists("dir.txt")
|
||||||
|
if check == False:
|
||||||
|
f = open("dir.txt", "w")
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
qlist = [
|
||||||
|
"144p",
|
||||||
|
"240p",
|
||||||
|
"360p",
|
||||||
|
"480p",
|
||||||
|
"MaxQ"
|
||||||
|
]
|
||||||
|
|
||||||
|
mp = [
|
||||||
|
"Audio (MP3)",
|
||||||
|
"Video (MP4)"
|
||||||
|
]
|
||||||
|
|
||||||
|
# Root
|
||||||
|
root = Tk()
|
||||||
|
root.title("GonTube")
|
||||||
|
root.geometry("390x400")
|
||||||
|
root.resizable(False, False)
|
||||||
|
icon = Image("photo", file="icon.png")
|
||||||
|
root.tk.call('wm', 'iconphoto', root._w, icon)
|
||||||
|
# Settings
|
||||||
|
def openSettings():
|
||||||
|
nw = Toplevel(root)
|
||||||
|
nw.title("Settings")
|
||||||
|
nw.geometry("350x150")
|
||||||
|
nw.tk.call('wm', 'iconphoto', nw._w, icon)
|
||||||
|
nw.resizable(False, False)
|
||||||
|
Label(nw, text="Directory").grid(column=1, row=2, padx=20, pady=50)
|
||||||
|
def Save():
|
||||||
|
root.filename = filedialog.askdirectory(initialdir = "/",title = "Select directory")
|
||||||
|
f = open("dir.txt", "w")
|
||||||
|
f.write(root.filename)
|
||||||
|
f.close()
|
||||||
|
dirb = Button(nw, text="Change Directory", command=Save).grid(column=2, row=2, padx=50, sticky=E)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Menu
|
||||||
|
menu_bar = Menu(root)
|
||||||
|
menu = Menu(menu_bar, tearoff=0)
|
||||||
|
menu_bar.add_cascade(label="Options", menu=menu)
|
||||||
|
menu.add_command(label="Settings", command=openSettings)
|
||||||
|
menu.add_command(label="Info")
|
||||||
|
root.config(menu=menu_bar)
|
||||||
|
|
||||||
|
# Link field
|
||||||
|
link = StringVar()
|
||||||
|
link_entry = ttk.Entry(root, width=25, textvariable=link)
|
||||||
|
link_entry.grid(column=2, row=3, padx=20, pady=80)
|
||||||
|
|
||||||
|
|
||||||
|
# Labels
|
||||||
|
Label(root, text="Quality", font=(None, 23)).grid(column=1, row=2, pady=40, sticky = W)
|
||||||
|
Label(root, text="Format", font=(None, 23)).grid(column=1, row=1, pady=40, sticky = W)
|
||||||
|
Label(root, text="URL", font=(None, 23)).grid(column=1, row=3, pady=40, sticky = W)
|
||||||
|
|
||||||
|
# Buttons and Stuff
|
||||||
|
var1 = StringVar()
|
||||||
|
var1.set(qlist[4])
|
||||||
|
var2 = StringVar()
|
||||||
|
var2.set(mp[0])
|
||||||
|
|
||||||
|
qdd = OptionMenu(root, var1, *qlist)
|
||||||
|
qdd.grid(column=2, row=2, pady=20, padx=5, sticky = E)
|
||||||
|
|
||||||
|
mdd = OptionMenu(root, var2, *mp)
|
||||||
|
mdd.grid(column=2, row=1, pady=20, padx=5, sticky = E)
|
||||||
|
|
||||||
|
|
||||||
|
# Popups :)
|
||||||
|
def popup():
|
||||||
|
messagebox.showinfo("GonTube", "Done")
|
||||||
|
|
||||||
|
def Download():
|
||||||
|
quality = var1.get()
|
||||||
|
mpf = var2.get()
|
||||||
|
url = link.get()
|
||||||
|
f = open("dir.txt", "r")
|
||||||
|
dire = f.readline()
|
||||||
|
f.close()
|
||||||
|
if(mpf == "Audio (MP3)"):
|
||||||
|
downloader.DownloadMP3(url, dire)
|
||||||
|
else:
|
||||||
|
downloader.DownloadMP4(url, quality, dire)
|
||||||
|
link_entry.delete(0, 'end')
|
||||||
|
popup()
|
||||||
|
|
||||||
|
|
||||||
|
downb = Button(root, text="Download", command=Download).grid(column=3, row=3)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
root.mainloop()
|
Loading…
Reference in New Issue