Доброго времени суток, я делаю программу которая скачивает видео с YouTube, но при использовании progress bar он не обновляется в момент скачивания видео, а показывает полную загрузку только в конце. Использую библиотеки pytube и tkinter.
Вот весь код:
import pytube
from threading import Thread
import tkinter as tk
from tkinter import ttk
win = tk.Tk()
win.geometry('250x50')
file_size = 0
def progress(stream=None, chunk=None, remaining=0):
file_downloaded = (file_size - remaining)
per = (file_downloaded / file_size) * 100
pb.config(value=format(per))
def download():
global file_size
video_url = 'ссылка на видео'
save_path = 'C:\\Users\\parfe\\Desktop'
video = pytube.YouTube(video_url, on_progress_callback=progress).streams.filter(res='720p', file_extension='mp4', progressive=True).desc().first()
file_size = video.filesize
video.download(save_path)
def start():
thread = Thread(target=download)
thread.start()
pb = ttk.Progressbar(win, length=200)
pb.pack()
tk.Button(win, text='Start', command=start).pack()
win.mainloop()