From 41d52569543158cedd1d407f2978c861193eea2e Mon Sep 17 00:00:00 2001 From: auouymous Date: Tue, 8 Dec 2020 20:21:13 -0700 Subject: [PATCH] Log youtube-dl version and warn if known to have issues. --- share/gpodder/extensions/youtube-dl.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/share/gpodder/extensions/youtube-dl.py b/share/gpodder/extensions/youtube-dl.py index b5a6e0d15..1ffc88c3a 100644 --- a/share/gpodder/extensions/youtube-dl.py +++ b/share/gpodder/extensions/youtube-dl.py @@ -29,6 +29,9 @@ __authors__ = 'Eric Le Lay ' __doc__ = 'https://gpodder.github.io/docs/extensions/youtubedl.html' +want_ytdl_version = '2020.11.12' +want_ytdl_version_msg = _('Your version of youtube-dl %(have_version)s has known issues, please upgrade to %(want_version)s or newer.') + DefaultConfig = { # youtube-dl downloads and parses each video page to get informations about it, which is very slow. # Set to False to fall back to the fast but limited (only 15 episodes) gpodder code @@ -432,6 +435,12 @@ def on_load(self): registry.feed_handler.register(self.ytdl.fetch_channel) registry.custom_downloader.register(self.ytdl.custom_downloader) + logger.debug('Youtube-DL %s' % youtube_dl.version.__version__) + + if youtube_dl.utils.version_tuple(youtube_dl.version.__version__) < youtube_dl.utils.version_tuple(want_ytdl_version): + logger.error(want_ytdl_version_msg + % {'have_version': youtube_dl.version.__version__, 'want_version': want_ytdl_version}) + def on_unload(self): logger.info('Unregistering youtube-dl.') try: @@ -448,6 +457,11 @@ def on_ui_object_available(self, name, ui_object): if name == 'gpodder-gtk': self.gpodder = ui_object + if youtube_dl.utils.version_tuple(youtube_dl.version.__version__) < youtube_dl.utils.version_tuple(want_ytdl_version): + ui_object.notification(want_ytdl_version_msg % + {'have_version': youtube_dl.version.__version__, 'want_version': want_ytdl_version}, + _('Old Youtube-DL'), important=True, widget=ui_object.main_window) + def on_episodes_context_menu(self, episodes): if not self.container.config.manage_downloads \ and not all(e.was_downloaded(and_exists=True) for e in episodes):