Arkadaşlar merhaba
def videoYukle(self):
self.ui.listWidget.show()
label_4 = self.ui.label_4.text()
url = self.ui.link_line.text()
self.my_playlist = Playlist(url)
# mp3 için
# playlisti indirirken listwidgets ekranında sayac youtubedeki tek videoyu indirirke gördüğü için sayıcıyı ilk başta tekli video indirdigini zannediyor
# ve sayacı oradan baslatıyor yani ekranda ilk videonun ismi 2 defa gözüküyor onu engellemek için playlisti ayrı bir kodla yazdık
# mp4 için
try:
if self.ui.mp4_radio.isChecked() == True:
playlist_sayac = 0
if self.my_playlist:
self.ui.progressBar.show()
for self.playlist in self.my_playlist.videos:
self.playlist.register_on_progress_callback(self.progress_callback_playlist)
self.playlist.register_on_complete_callback(self.complete_callback_playlist)
self.playlist.streams.filter(progressive=True).order_by('resolution').desc().first().download(
output_path=self.file_dialog_yukle)
playlist_sayac += 1
self.video_yuklenme = False
video_ismi = str(playlist_sayac) + ' - ' + self.playlist.title
self.signal_listeye_yazma.emit(video_ismi)
except KeyError:
pass
try:
if label_4 != "":
if self.ui.mp4_radio.isChecked() == True:
self.mp4_yukle = YouTube(url)
self.mp4_yukle.register_on_progress_callback(self.progress_callback)
self.mp4_yukle.register_on_complete_callback(self.complete_callback)
mp4_download = self.mp4_yukle.streams.get_highest_resolution()
if mp4_download:
self.ui.progressBar.show()
mp4_download.download(
output_path=self.file_dialog_yukle) # parantezin içine output_path = burayada konum yazman gerekıyor sonrakı konum
self.video_yuklenme = False
video_ismi = mp4_download.title
# video_ismi = mp4_download.title
self.signal_listeye_yazma.emit(video_ismi)
if self.ui.mp3_radio.isChecked() == True:
mp3_yukle = YouTube(url)
mp3_download = mp3_yukle.streams.get_audio_only()
if mp3_download:
mp3_download.download(output_path=self.file_dialog_yukle)
self.video_yuklenme = False
self.signal_Msj.emit()
video_ismi = mp3_download.title
self.signal_listeye_yazma.emit(video_ismi)
if my_playlist:
for playlist in my_playlist.videos:
playlist.streams.filter(only_audio=True).first().download(
output_path=self.file_dialog_yukle)
self.video_yuklenme = False
self.signal_Msj.emit()
video_isim = playlist.title
self.signal_listeye_yazma(video_isim)
except KeyError:
pass
def progress_callback(self,stream, chunk, bytes_remaining):
try:
download = self.mp4_yukle
contentsize = download.streams.get_highest_resolution().filesize
size = contentsize - bytes_remaining
steer = int(size / contentsize * 100)
self.ui.progressBar.setValue(steer)
except Exception as Hata:
print(str(Hata))
#while steer == 100:
# self.ui.progressBar.setValue(timer)
# break
def complete_callback(self,stream, file_handle): # progress bar kapandıgında
time.sleep(3)
self.ui.progressBar.hide()
def progress_callback_playlist(self,stream, chunk, bytes_remaining):
try:
download = self.playlist
contentsize = download.streams.get_highest_resolution().filesize
size = contentsize - bytes_remaining
steer = int(size / contentsize * 100)
self.ui.progressBar.setValue(steer)
except Exception as Hata:
print(str(Hata))
def complete_callback_playlist(self,stream, file_handle):
pass
playlist ve normal video indirme alanlarım var
Video indiğinde progressbar sayıyor,sayma işlemi bittiğinde listboxa videonun ismini yazdırıyor
Sorunum şu;
Tek video iniyor diyelim bazen %30’da bazen %60’da bazen %90’da kapanıyor
bazense hiç kapanmıyor normal indiriyor
Playlist video iniyor diyelim,bazen 2nci video inerken bazen 5nci video inerken bazen 7nci video inerken ekran kendi kendine kapanıyor
Sorunum ne olabilir?