mps-youtube / yewtube

yewtube, forked from mps-youtube , is a Terminal based YouTube player and downloader. No Youtube API key required.
GNU General Public License v3.0
8.07k stars 645 forks source link

youtube-dl version is outdated #1074

Closed okschlatter closed 1 year ago

okschlatter commented 4 years ago

On some videos, such as this one, using the "url" command in mps-youtube results in this error:

ERROR: Signature extraction failed: Traceback (most recent call last): File "/usr/local/Cellar/mps-youtube/0.2.8_9/libexec/lib/python3.7/site-packages/youtube_dl/extractor/youtube.py", line 1385, in _decrypt_signature video_id, player_url, s File "/usr/local/Cellar/mps-youtube/0.2.8_9/libexec/lib/python3.7/site-packages/youtube_dl/extractor/youtube.py", line 1262, in _extract_signature_function raise ExtractorError('Cannot identify player %r' % player_url) youtube_dl.utils.ExtractorError: Cannot identify player 'https://www.youtube.com/s/player/4fbb4d5b/player_ias.vflset/en_US/base.js'; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see https://yt-dl.org/update on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output. (caused by ExtractorError("Cannot identify player 'https://www.youtube.com/s/player/4fbb4d5b/player_ias.vflset/en_US/base.js'; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see https://yt-dl.org/update on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.")); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see https://yt-dl.org/update on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

Other issues with the same error were generally solved by updating youtube-dl. When I check which version of youtube-dl is installed on my computer, terminal tells me that I already have the latest version:

$ youtube-dl --version 2020.03.24

But when I check the version of mpsyt, I get this:

$ mpsyt -v mpsyt version : 0.2.8 notes : released 17 February 2018 pafy version : 0.5.5 (youtube-dl backend) youtube-dl version : 2020.01.24 Python version : 3.7.7 (default, Apr 14 2020, 14:43:36) [Clang 11.0.0 (clang-1100.0.33.17)] (etc.)

The problem seems to be that the version of youtube-dl installed on the system is not the version that mps-youtube is using. Is there a way to change which version of youtube-dl is used by mps-youtube? Or is it possible to run a command in whatever directory mps-youtube stores youtube-dl to update it? (Which command should I use?)

I am running MacOS 10.15.3 (19D76). I installed mps-youtube via the homebrew method. It is currently set up to use mpv as the media player (also installed via homebrew, per the instructions). I also set up my own YouTube API key.

hypnull commented 4 years ago

I believe mps-youtube uses youtube-dl available from pip. Update your youtube-dl with pip and see if that changes the version in the mpsyt -v info

pip3 install --upgrade youtube-dl
kz6wk9 commented 4 years ago

Probably your issue is related to what I already said in this comment.

And just to be very clear, you should never have the same software installed in two different ways, eg. if you install youtube-dl with pip, do not install it again with Homebrew. Make sure to remove one of the versions first, and then you can think about updating the other one.

Di9 commented 4 years ago

And just to be very clear, you should never have the same software installed in two different ways, eg. if you install youtube-dl with pip, do not install it again with Homebrew.

It is strange, because youtube-dl is dependency package. I deleted pip package and how I can link my brew youtube-dl with mps-youtube then?