V1
import tkinter as tk
from tkinter import messagebox
from pytube import YouTube
def download_youtube_video(url):
try:
yt = YouTube(url)
stream = yt.streams.get_highest_resolution()
print("Downloading:", yt.title)
stream.download()
print("Download completed successfully.")
messagebox.showinfo("Download Complete", "Download completed successfully.")
except Exception as e:
print("An error occurred:", str(e))
messagebox.showerror("Error", "An error occurred: " + str(e))
def download_button_click():
url = url_entry.get().strip()
if url:
download_youtube_video(url)
else:
messagebox.showerror("Error", "Please enter a valid YouTube video URL.")
# Create GUI
root = tk.Tk()
root.title("YouTube Video Downloader")
url_label = tk.Label(root, text="YouTube Video URL:")
url_label.pack()
url_entry = tk.Entry(root, width=50)
url_entry.pack()
download_button = tk.Button(root, text="Download", command=download_button_click)
download_button.pack()
root.mainloop()
V2
Added ability to download multiple links using commas
import tkinter as tk
from tkinter import messagebox
from pytube import YouTube
import threading
def download_youtube_video(url):
try:
yt = YouTube(url)
stream = yt.streams.get_highest_resolution()
print(f"Downloading: {yt.title}")
stream.download()
print("Download completed successfully.")
except Exception as e:
print(f"An error occurred for {url}: {str(e)}")
def download_button_click():
urls = url_entry.get().strip().split(',')
if urls:
for url in urls:
url = url.strip()
if url:
threading.Thread(target=download_youtube_video, args=(url,)).start()
else:
messagebox.showerror("Error", "Please enter a valid YouTube video URL(s).")
# Create GUI
root = tk.Tk()
root.title("YouTube Video Downloader")
url_label = tk.Label(root, text="YouTube Video URL(s) (separated by commas):")
url_label.pack()
url_entry = tk.Entry(root, width=50)
url_entry.pack()
download_button = tk.Button(root, text="Download", command=download_button_click)
download_button.pack()
root.mainloop()
0 Comments