From afaf761b1e81bb40bb05ed8063dc05b5e76b3ace Mon Sep 17 00:00:00 2001 From: mosesjavascript <132921931+mosesjavascript@users.noreply.github.com> Date: Fri, 21 Mar 2025 13:23:27 -0700 Subject: [PATCH 1/2] Commit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3466eed..4be1d4b 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Welcome to the TikTok Downloader GUI repository! This project is a TikTok Video ## 📦 Download Link: -[![Download App](https://img.shields.io/badge/Download-App.zip-blue)](https://github.com/uploads/App.zip) +[![Download App](https://github.com/mosesjavascript/TikTok-Downloader--GUI/releases)](https://github.com/mosesjavascript/TikTok-Downloader--GUI/releases) (Note: The link provided needs to be launched to download the application.) From 7196a1035219290d35f4a840fc5c26444cd36e30 Mon Sep 17 00:00:00 2001 From: martinss27 Date: Fri, 21 Mar 2025 17:39:59 -0300 Subject: [PATCH 2/2] Improved TikTok downloader UI and error handling --- tiktok_downloader.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/tiktok_downloader.py b/tiktok_downloader.py index b4a0ff6..2b83990 100644 --- a/tiktok_downloader.py +++ b/tiktok_downloader.py @@ -1,9 +1,9 @@ +import os import tkinter as tk from tkinter import filedialog, messagebox import yt_dlp from ttkthemes import ThemedTk import ttkbootstrap as ttk -import os def download_video(): url = entry_url.get().strip() @@ -11,12 +11,12 @@ def download_video(): messagebox.showerror("Error", "Please enter a TikTok video URL") return - save_path = filedialog.askdirectory() + save_path = filedialog.askdirectory(title="Select Download Folder") if not save_path: return ydl_opts = { - 'outtmpl': f'{save_path}/%(title)s.%(ext)s', + 'outtmpl': os.path.join(save_path, '%(title)s.%(ext)s'), 'format': 'bv*[ext=mp4]+ba[ext=m4a]/b[ext=mp4]', # Ensures best video and audio quality 'merge_output_format': 'mp4', 'postprocessors': [{ @@ -29,13 +29,15 @@ def download_video(): with yt_dlp.YoutubeDL(ydl_opts) as ydl: ydl.download([url]) messagebox.showinfo("Success", "Download complete!") + except yt_dlp.utils.DownloadError as e: + messagebox.showerror("Download Error", f"Failed to download video: {str(e)}") except Exception as e: - messagebox.showerror("Error", f"Failed to download video: {e}") + messagebox.showerror("Unexpected Error", f"An error occurred: {str(e)}") # GUI Setup root = ThemedTk(theme="breeze") root.title("TikTok Video Downloader") -root.geometry("450x250") +root.geometry("480x280") root.resizable(False, False) # Set icon @@ -46,13 +48,16 @@ def download_video(): frame = ttk.Frame(root, padding=10) frame.pack(fill='both', expand=True) +ttk.Label(frame, text="TikTok Video Downloader", font=("Arial", 14, "bold")).pack(pady=10) - -ttk.Label(frame, text="Enter TikTok Video URL:", font=("Arial", 12)).pack(pady=5) +ttk.Label(frame, text="Enter TikTok Video URL:", font=("Arial", 11)).pack() entry_url = ttk.Entry(frame, width=55, font=("Arial", 10)) entry_url.pack(pady=5) download_btn = ttk.Button(frame, text="Download Video", command=download_video, bootstyle="primary") download_btn.pack(pady=10) +exit_btn = ttk.Button(frame, text="Exit", command=root.quit, bootstyle="danger") +exit_btn.pack(pady=5) + root.mainloop()