mhogomchungu / media-downloader

Media Downloader is a Qt/C++ front end to yt-dlp, youtube-dl, gallery-dl, lux, you-get, svtplay-dl, aria2c, wget and safari books..
GNU General Public License v2.0
1.34k stars 101 forks source link

Weird glitch when downloading some videos #377

Closed kolbdog3333 closed 4 months ago

kolbdog3333 commented 4 months ago

When downloading a video on youtube sometimes there is a weird glitch that apepars that says when downloading [download] 0 bytes / 0 bytes (0.00%) at 0 bytes/s, ETA 00:00 But the video is actually downloading same with audio.

Please fix this it is very annoying because it looks like the video isnt downloading when it acutally is.

kolbdog3333 commented 4 months ago

Then once that glitch appears it continues for every video afterwards its very weird.

mhogomchungu commented 4 months ago

Post a link to Url that produces this behavior.

kolbdog3333 commented 4 months ago

Here are a few urls where the glitch happens:

https://youtu.be/OpbUMDCzhEc?si=WMTf31gs_LGlNcLl https://youtu.be/UaqxuxJANIM?si=jJdQb8WSiGEhWcnN https://youtu.be/UdDBO_ns-Sw?si=zlnNno7yeSI0cimW

mhogomchungu commented 4 months ago

I can not reproduce this.

Are you using windows?

This problem shows up when using batch downloader tab or playlist downloader tab?

If, yes then follow instructions from below link to update to git version and then when the problem happen again, right click the middle section of batch downloader tab or playlist downloader tab and then select "Show Raw Log Window" and post the contents of the window that will show up.

https://github.com/mhogomchungu/media-downloader/wiki/Frequently-Asked-Questions#14-how-do-i-start-updating-from-git-channel-instead-of-release-channel-when-using-windows

trimechee commented 4 months ago

Hello, the same thing has been happening to me for a long time, since YouTube started to restrict YouTube downloading speed.... the download is done normally but we can't see the progress of the download and the speed of the download, it happens when we add several downloads to the donwloader batch....users of a media player that uses yt-dlp complain about video quality restrictions.....probably the problem comes from youtube and not from M-D, the solution is to wait quietly for the download to finish and M-D will send a visual or audio signal when the download is finished, or to use yt-dlp aria2c, you can see the progress of the download, but the hard disk activity increases a lot and the fan becomes noisy, so it's better to put the download folder in a cheap usb key to save the expensive ssd....otherwise, you have to use a vpn and you could see the download progress bar

mhogomchungu commented 4 months ago

Thanks trimechee for confirming the problem.

Can you start using git version and when the problem happens, wait until the download finish and then open the "raw log window" and post its output here.

I suspect the problem is yt-dlp giving its ouput in a way Media Downloader does not expect.

trimechee commented 4 months ago

Thank you :) I change the default engine from yt-dlp aria2c to yt-dl, the only problem is sometimes there is not this freeze problem, sometimes there is this problem...as soon as this little problem appears, I will try to post the logs !

trimechee commented 4 months ago

Hello, I downloaded 3 youTube videos, the first 2 YouTube videos download normally with indication of download progress and download speed, however the third download, there is no longer any indication of progress and download speed, this is not the case. It's not a problem because the most important thing is that the download succeeds and that's the case, I don't know how to activate git version but I copied and pasted logs:

"[media-downloader] cmd: "C:/Users/Asus/AppData/Roaming/media-downloader/bin/yt-dlp.exe" "--match-filter" "!playlist" "--break-on-reject" "-f" "worstaudio" "-x" "--newline" "--ignore-config" "--no-playlist" "-o" "%(title).200s-%(id)s.%(ext)s" "--output-na-placeholder" "NA" "--compat-options" "2022" "--progress-template" "download:[download] {"filename":"%(progress.filename)s","downloaded_bytes":"%(progress.downloaded_bytes)s","ETA":"%(progress.eta)s","total_bytes_estimate":"%(progress.total_bytes_estimate)s","total_bytes":"%(progress.total_bytes)s","speed":"%(progress.speed)s","fragment_index":"%(progress.fragment_index)s","fragment_count":"%(progress.fragment_count)s"}" "https://www.youtube.com/watch?v=-zfzzSHav8w" [youtube] Extracting URL: https://www.youtube.com/watch?v=-zfzzSHav8w [youtube] -zfzzSHav8w: Downloading webpage [youtube] -zfzzSHav8w: Downloading ios player API JSON [youtube] -zfzzSHav8w: Downloading android player API JSON [youtube] -zfzzSHav8w: Downloading m3u8 information [info] -zfzzSHav8w: Downloading 1 format(s): 233 [hlsnative] Downloading m3u8 manifest [hlsnative] Total fragments: 125 [download] Destination: Sissi-City La Nouvelle Capitale qui pourrait Ruiner l'�gypte--zfzzSHav8w.mp4 [download] 0 octets / 0 octets (0.00%) at 0 octets/s, ETA 00:00 [ExtractAudio] Destination: Sissi-City La Nouvelle Capitale qui pourrait Ruiner l'�gypte--zfzzSHav8w.m4a [media-downloader] Download Completed Successfully [media-downloader] cmd: "C:/Users/Asus/AppData/Roaming/media-downloader/bin/yt-dlp.exe" "--match-filter" "!playlist" "--break-on-reject" "-f" "worstaudio" "-x" "--newline" "--ignore-config" "--no-playlist" "-o" "%(title).200s-%(id)s.%(ext)s" "--output-na-placeholder" "NA" "--compat-options" "2022" "--progress-template" "download:[download] {"filename":"%(progress.filename)s","downloaded_bytes":"%(progress.downloaded_bytes)s","ETA":"%(progress.eta)s","total_bytes_estimate":"%(progress.total_bytes_estimate)s","total_bytes":"%(progress.total_bytes)s","speed":"%(progress.speed)s","fragment_index":"%(progress.fragment_index)s","fragment_count":"%(progress.fragment_count)s"}" "https://www.youtube.com/watch?v=yOGYZjFgmys" [youtube] Extracting URL: https://www.youtube.com/watch?v=yOGYZjFgmys [youtube] yOGYZjFgmys: Downloading webpage [youtube] yOGYZjFgmys: Downloading ios player API JSON [youtube] yOGYZjFgmys: Downloading android player API JSON [youtube] yOGYZjFgmys: Downloading m3u8 information [info] yOGYZjFgmys: Downloading 1 format(s): 233 [hlsnative] Downloading m3u8 manifest [hlsnative] Total fragments: 132 [download] Destination: La Fin du Canal de Panama -yOGYZjFgmys.mp4 [download] 3,94 Mio / 3,94 Mio (100%) at 133,52 Kio/s, ETA NA [ExtractAudio] Destination: La Fin du Canal de Panama -yOGYZjFgmys.m4a [media-downloader] Download Completed Successfully [media-downloader] cmd: "C:/Users/Asus/AppData/Roaming/media-downloader/bin/yt-dlp.exe" "--match-filter" "!playlist" "--break-on-reject" "-f" "worstaudio" "-x" "--newline" "--ignore-config" "--no-playlist" "-o" "%(title).200s-%(id)s.%(ext)s" "--output-na-placeholder" "NA" "--compat-options" "2022" "--progress-template" "download:[download] {"filename":"%(progress.filename)s","downloaded_bytes":"%(progress.downloaded_bytes)s","ETA":"%(progress.eta)s","total_bytes_estimate":"%(progress.total_bytes_estimate)s","total_bytes":"%(progress.total_bytes)s","speed":"%(progress.speed)s","fragment_index":"%(progress.fragment_index)s","fragment_count":"%(progress.fragment_count)s"}" "https://www.youtube.com/watch?v=KahblTl5RMM" [youtube] Extracting URL: https://www.youtube.com/watch?v=KahblTl5RMM [youtube] KahblTl5RMM: Downloading webpage [youtube] KahblTl5RMM: Downloading ios player API JSON [youtube] KahblTl5RMM: Downloading android player API JSON [youtube] KahblTl5RMM: Downloading m3u8 information [info] KahblTl5RMM: Downloading 1 format(s): 233 [hlsnative] Downloading m3u8 manifest [hlsnative] Total fragments: 128 [download] Destination: Des Milliards pour Rien Ces M�ga-Constructions qui ont Totalement �chou�-KahblTl5RMM.mp4 [download] 0 octets / 0 octets (0.00%) at 0 octets/s, ETA 00:00 [ExtractAudio] Destination: Des Milliards pour Rien Ces M�ga-Constructions qui ont Totalement �chou�-KahblTl5RMM.m4a [media-downloader] Download Completed Successfully"

kolbdog3333 commented 4 months ago

Also it only happens when using the media downloader but when I use yt-dlp via cmd it downloads fine the same video and can see the progress.

mhogomchungu commented 4 months ago

Fixed. The problem was caused by file names that contained invalid json characters. This problem does not show up on my Linux system and i suspect the reason maybe a buggy Qt version i am bundling on windows.

Below three images show progress i made with this bug. The first picture shows i managed to reproduced the problem, the second picture shows i though of just showing a user a json error that was causing the progress problem and then the third picture shows problem solved since the progress shows up as expected because i decided to not use json data structure.

Screenshot_20240218_141823

Screenshot_20240218_140342

Screenshot_20240218_141409

trimechee commented 4 months ago

Awesome !! @mhogomchungu Thank you so much ft his great fix :) 🥇

trimechee commented 3 months ago

I said I use aria2c with the worstaudio preset, but I have just made a sensational discovery, the "bestaudio" preset allows us to download audio with 64kb/s quality, it is a good balanced audio quality, not too much large nor too small, and in addition we can see the progress bar when we open it with foobar2000 or aimp so no more need for -f worstaudio -x and no more need for aria2c which can wear out the ssd with a lot of fragmentation because with "bestaudio" preset, the download is carried out at full speed and the download is no longer restricted as is the case with "worstaudio" preset.....but I have a question of curiosity please @mhogomchungu , why with the bestaudio preset , M-D is not downloading the best possible audio quality from youtube?

mhogomchungu commented 3 months ago

It does, but -x option converts the downloaded best audio file to another audio format that may be of lower quality.

Yt-dlp has below options that goes with -x and you may use them to specify better conversion audio quality if default values are not best for you.

-x, --extract-audio             Convert video files to audio-only files
                                (requires ffmpeg and ffprobe)
--audio-format FORMAT           Format to convert the audio to when -x is
                                used. (currently supported: best (default),
                                aac, alac, flac, m4a, mp3, opus, vorbis,
                                wav). You can specify multiple rules using
                                similar syntax as --remux-video
--audio-quality QUALITY         Specify ffmpeg audio quality to use when
                                converting the audio with -x. Insert a value
                                between 0 (best) and 10 (worst) for VBR or a
                                specific bitrate like 128K (default 5)
trimechee commented 3 months ago

Interesting ! Thank you for your help:)