Отображение превью у видео PyTube PyQT5
Есть код:
from PyQt5 import QtCore, QtGui, QtWidgets
from pytubedes import *
from pytube import YouTube
from pytube.cli import on_progress
import pytube
import sys
import time
import re
import requests as r
import os
class downloader(QtCore.QThread):
mysignal = QtCore.pyqtSignal(float)
secondsignal = QtCore.pyqtSignal(str)
thirdsignal = QtCore.pyqtSignal(str)
foursignal = QtCore.pyqtSignal(str)
fivesignal = QtCore.pyqtSignal(str)
def __init__(self, parent=None):
super().__init__(parent)
self.url = None
def run(self):
self.foursignal.emit('Загрузка началась!')
try:
yt = pytube.YouTube(self.url) # https://www.youtube.com/watch?v=_WpXxMXIrRE
except:
self.run()
yt.register_on_progress_callback(self.pb)
print(yt.thumbnail_url)
self.secondsignal.emit(yt.title)
baks = yt.streams.filter(progressive=True).desc().first()
self.thirdsignal.emit(yt.description)
baks.download()
def pb(self, stream, chunk, bytes_remaining):
global file_size
file_size = stream.filesize
percent = (100*(file_size - bytes_remaining))/file_size
self.mysignal.emit(percent)
def init_args(self, url):
self.url = url # https://www.youtube.com/watch?v=4pK4wN-qo7U
class gui(QtWidgets.QMainWindow):
def __init__(self, parent=None):
super().__init__(parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
path = 'loading.gif'
gif = QtGui.QMovie(path) # !!!
self.ui.label_2.setMovie(gif)
gif.start()
self.path = None
self.ui.pushButton_2.clicked.connect(self.start)
self.ui.pushButton.clicked.connect(self.get_folder)
self.mythread = downloader()
self.mythread.mysignal.connect(self.start)
self.mythread.secondsignal.connect(self.title)
self.mythread.thirdsignal.connect(self.duration)
self.mythread.foursignal.connect(self.down)
#self.mythread.foursignal.connect(self.img)
self.ui.progressBar.setValue(0)
def start(self, value):
if len(self.ui.lineEdit.text()) > 5:
if self.path != None:
link = self.ui.lineEdit.text()
self.mythread.init_args(link)
self.mythread.start()
self.ui.progressBar.setValue(value)
else:
QtWidgets.QMessageBox.Warning(self, "Ошибка", "Вы не выбрали папку!")
else:
QtWidgets.QMessageBox.Warning(self, "Ошибка", "Ссылка на видео не указана!")
if value == 100:
QtWidgets.QMessageBox.information(self, "Готово!", "Видео скачано!")
def title(self, text):
self.ui.lineEdit_2.setText(text)
def duration(self, data):
self.ui.textEdit.setText(data)
def img(self, popa):
pass
def down(self, info):
QtWidgets.QMessageBox.warning(self, "Началось!", info)
def get_folder(self):
self.path = QtWidgets.QFileDialog.getExistingDirectory(self, 'Выбрать папку для сохранения')
try:
os.chdir(self.path)
except:
pass
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
MainWindow = gui()
MainWindow.show()
sys.exit(app.exec_())
Мне необходимо, чтобы из ссылки на превью видео которую предоставляет pytube, парсилась сама картинка и ставилась вместо колеса загрузки.