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.14k stars 643 forks source link

Possible API change, error i/o in stdout during playback of song with age filter #1297

Closed nannerpusser closed 1 week ago

nannerpusser commented 1 month ago

Hey, love this app and I use it daily. This issue isn't effecting playback or causing unwanted behavior, but if there happens to be an age restricted video/song in my playlist, I get this traceback without a crash:

Traceback

ERROR: [youtube] 7qy30k22sYE: Sign in to confirm your age. This video may be inappropriate for some users. Exception in thread Thread-10 (_preload): Traceback (most recent call last): File "C:\Users\.local\pipx\venvs\yewtube\Lib\site-packages\yt_dlp\YoutubeDL.py", line 1626, in wrapper return func(self, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\.local\pipx\venvs\yewtube\Lib\site-packages\yt_dlp\YoutubeDL.py", line 1761, in __extract_info ie_result = ie.extract(url) ^^^^^^^^^^^^^^^ File "C:\Users\.local\pipx\venvs\yewtube\Lib\site-packages\yt_dlp\extractor\common.py", line 741, in extract ie_result = self._real_extract(url) ^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\.local\pipx\venvs\yewtube\Lib\site-packages\yt_dlp\extractor\youtube.py", line 4468, in _real_extract self.raise_no_formats(reason, expected=True) File "C:\Users\.local\pipx\venvs\yewtube\Lib\site-packages\yt_dlp\extractor\common.py", line 1275, in raise_no_formats raise ExtractorError(msg, expected=expected, video_id=video_id) yt_dlp.utils.ExtractorError: [youtube] 7qy30k22sYE: Sign in to confirm your age. This video may be inappropriate for some users.

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "C:\Program Files\Python312\Lib\threading.py", line 1075, in _bootstrap_inner self.run() File "C:\Program Files\Python312\Lib\threading.py", line 1012, in run self._target(*self._args, *self._kwargs) File "C:\Users\.local\pipx\venvs\yewtube\Lib\site-packages\mps_youtube\streams.py", line 189, in _preload streamlist = get(song) ^^^^^^^^^ File "C:\Users\.local\pipx\venvs\yewtube\Lib\site-packages\mps_youtube\streams.py", line 54, in get ps = pafy.get_video_streams(ytid) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\.local\pipx\venvs\yewtube\Lib\site-packages\mps_youtube\pafy.py", line 43, in get_video_streams info_dict = ydl.extract_info(ytid, download=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\.local\pipx\venvs\yewtube\Lib\site-packages\yt_dlp\YoutubeDL.py", line 1615, in extract_info return self.__extract_info(url, self.get_info_extractor(key), download, extra_info, process) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\.local\pipx\venvs\yewtube\Lib\site-packages\yt_dlp\YoutubeDL.py", line 1644, in wrapper self.report_error(str(e), e.format_traceback()) File "C:\Users\.local\pipx\venvs\yewtube\Lib\site-packages\yt_dlp\YoutubeDL.py", line 1092, in report_error self.trouble(f'{self._format_err("ERROR:", self.Styles.ERROR)} {message}', args, **kwargs) File "C:\Users\.local\pipx\venvs\yewtube\Lib\site-packages\yt_dlp\YoutubeDL.py", line 1031, in trouble raise DownloadError(message, exc_info) yt_dlp.utils.DownloadError: ERROR: [youtube] 7qy30k22sYE: Sign in to confirm your age. This video may be inappropriate for some users.

Environment:

yewtube version : 2.12.0 yt_dlp version : 2024.10.07 Python version : 3.12.7 (tags/v3.12.7:0b05ead, Oct 1 2024, 03:06:41) [MSC v.1941 64 bit (AMD64)] Processor : AMD64 Family 23 Model 8 Stepping 2, AuthenticAMD Machine type : AMD64 Architecture : 64bit, WindowsPE Platform : Windows-11-10.0.22631-SP0 sys.stdout.enc : utf-8 default enc : utf-8 Config dir : C:\Users\\AppData\Roaming\mps-youtube dbus : None glib : False

Like I said, isn't fatal, just a (probable since so frequent) API change by yt.

nannerpusser commented 1 month ago

Looking into this further, it is probably a yt-dlp Known Issue with the new age verification requirements:

https://github.com/yt-dlp/yt-dlp/issues/11296#issuecomment-2425188728