Amazing-Python-Scripts
61 строка · 1.7 Кб
1from tkinter import *
2from pytube import YouTube
3from pytube import Playlist
4
5# select wether to download video or playlist
6
7
8def mode_selector():
9url = link.get()
10if "watch?v=" in url:
11video_downloader(url)
12elif "playlist?list=" in url:
13playlist_downloader(url)
14else:
15print("Invalid YouTube URL!")
16Label(root, text='DOWNLOADED!', font='arial 15').place(x=280, y=230)
17
18# function to download single video
19
20
21def video_downloader(url):
22try:
23yt = YouTube(url, use_oauth=True, allow_oauth_cache=True)
24yt.streams.first().download()
25except Exception as e:
26Label(root, text=f'Video Error Downloading!.... Try Again #{e}', font='arial 15').place(
27x=100, y=210)
28
29# function to download playlist
30
31
32def playlist_downloader(url):
33try:
34py = Playlist(url)
35for video in py.videos:
36video_downloader(video.watch_url)
37except Exception as e:
38Label(root, text=f'Playlist Error Downloading!.... Try Again #{e}', font='arial 15').place(
39x=100, y=210)
40print(e)
41
42
43if __name__ == "__main__":
44root = Tk()
45root.geometry('800x600')
46root.resizable(0, 0)
47root.title("YouTube Video Downloader")
48
49Label(root, text='Copy the link of the VIDEO/PLAYLIST you want to download from YouTube',
50font='arial 15 bold').pack()
51
52# enter link
53link = StringVar()
54
55Label(root, text='Paste Link Here:',
56font='arial 15 bold').place(x=270, y=60)
57Entry(root, width=80, textvariable=link).place(x=32, y=90)
58Button(root, text='DOWNLOAD', font='arial 15 bold', bg='white',
59padx=2, command=mode_selector).place(x=280, y=150)
60
61root.mainloop()
62