file_downloaded = full_file_size - оставшаяся ошибка TypeError: неподдерживаемые типы операндов для -: 'int' и 'NoneType - PullRequest
1 голос
/ 21 июня 2020

Я пытался запустить этот код, но он продолжает выдавать указанную ошибку. Проблема определенно заключается в функции Progress (), где я пытаюсь отобразить индикатор выполнения на экране / кнопке. Я пробовал несколько вещей, но ничего не работает. Пожалуйста помоги! Я использую pytube3, python 3,7

from pytube import YouTube
from tkinter import * 
import threading

full_file_size = 0

def progress(stream=None, chunk=None, file_handle=None, remaining=None):
    file_downloaded = full_file_size - remaining
    per = (file_downloaded/full_file_size)*100
    # btn_text.set(f"{per} % Downloading")
    print(f"{per}%") 

def download_stream():
    global full_file_size
    input_url = entry_var.get()
    ob = YouTube(input_url, on_progress_callback=progress)
    strm = ob.streams.first()
    full_file_size = strm.filesize
    # print(type(file_size))
    print(full_file_size/(1024*1024), "MB")
    
    save_path = "C:\\Users\\hp\\Desktop\\visual programs\\youtube_download"
    print("Your video is downloading")
    
    strm.download(save_path)
    print("Dowload Complete")
    entry_widget.delete(0,END)
    btn_text.set("Download")
    
def continue_thrad():
    thread = threading.Thread(target=download_stream)
    thread.start()
    print('Thread is working')

window = Tk()
window.geometry("500x600")
window.title("Youtube Downloader.")

img = PhotoImage(file='logo.png')
l1 = Label(window, image=img)
l1.pack()

entry_var = StringVar()
btn_text = StringVar()
btn_text.set("Download")

entry_widget = Entry(window, textvar=entry_var, font=("Verdana, 20"), relief=SUNKEN)
entry_widget.pack(fill=X, padx=20, pady= 10)

b1=Button(window, textvariable=btn_text, font=("Verdana, 20"), command=continue_thrad)
b1.pack()

window.mainloop()
...