From 2acd6b364a5a9f2ef3453c41a913bc7d2758c24f Mon Sep 17 00:00:00 2001 From: noEmbryo Date: Wed, 10 Nov 2021 21:16:07 +0200 Subject: [PATCH 1/4] Update backend_shared.py --- pafy/backend_shared.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pafy/backend_shared.py b/pafy/backend_shared.py index 68707597..c3f8d2d1 100644 --- a/pafy/backend_shared.py +++ b/pafy/backend_shared.py @@ -325,6 +325,14 @@ def dislikes(self): return self._dislikes + @property + def subtitles(self): + """ The subtitles of the video. Returns dict. """ + if not self._subtitles: + self._fetch_basic() + + return self._subtitles + @property def mix(self): """ The playlist for the related YouTube mix. Returns a Playlist object. """ From 1caebfd5e0c5636bc24b3d8227021f2094784d29 Mon Sep 17 00:00:00 2001 From: noEmbryo Date: Wed, 10 Nov 2021 21:16:58 +0200 Subject: [PATCH 2/4] Update backend_youtube_dl.py --- pafy/backend_youtube_dl.py | 1 + 1 file changed, 1 insertion(+) diff --git a/pafy/backend_youtube_dl.py b/pafy/backend_youtube_dl.py index d9a19a41..b4c8390a 100644 --- a/pafy/backend_youtube_dl.py +++ b/pafy/backend_youtube_dl.py @@ -54,6 +54,7 @@ def _fetch_basic(self): self._username = self._ydl_info['uploader_id'] self._category = self._ydl_info['categories'][0] if self._ydl_info['categories'] else '' self._bestthumb = self._ydl_info['thumbnails'][0]['url'] + self._subtitles = self._ydl_info.get('subtitles', {}) self._bigthumb = g.urls['bigthumb'] % self.videoid self._bigthumbhd = g.urls['bigthumbhd'] % self.videoid self.expiry = time.time() + g.lifespan From 6159833e18c2590c9918446cb9d2fec834847ef5 Mon Sep 17 00:00:00 2001 From: noEmbryo Date: Wed, 10 Nov 2021 21:17:48 +0200 Subject: [PATCH 3/4] Update g.py --- pafy/g.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pafy/g.py b/pafy/g.py index 60def537..8cf19d7a 100644 --- a/pafy/g.py +++ b/pafy/g.py @@ -27,7 +27,8 @@ opener = build_opener() opener.addheaders = [('User-Agent', user_agent)] cache = {} -def_ydl_opts = {'quiet': True, 'prefer_insecure': False, 'no_warnings': True} +def_ydl_opts = {'quiet': True, 'prefer_insecure': False, + 'no_warnings': True, "writesubtitles": True} # The following are specific to the internal backend UEFSM = 'url_encoded_fmt_stream_map' From 9238cb1977e16a864bb68eaa142325c1b41e19a6 Mon Sep 17 00:00:00 2001 From: noEmbryo Date: Wed, 10 Nov 2021 21:19:43 +0200 Subject: [PATCH 4/4] Update backend_internal.py --- pafy/backend_internal.py | 1 + 1 file changed, 1 insertion(+) diff --git a/pafy/backend_internal.py b/pafy/backend_internal.py index 9ccdc28f..a13c6d0b 100644 --- a/pafy/backend_internal.py +++ b/pafy/backend_internal.py @@ -68,6 +68,7 @@ def _get_lst(key, default="unknown", dic=allinfo): self._keywords = _get_lst('keywords', "").split(',') self._bigthumb = _get_lst('iurlsd', "") self._bigthumbhd = _get_lst('iurlsdmaxres', "") + self._subtitles = {} # no subtitles with the internal backend self.ciphertag = _get_lst("use_cipher_signature") == "True" self.sm = _extract_smap(g.UEFSM, allinfo, True) self.asm = _extract_smap(g.AF, allinfo, True)