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()
Categories: Project

0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *