mirror of
https://github.com/ytdl-org/youtube-dl
synced 2025-12-04 10:33:48 +00:00
[YouTube] Revert forcing player JS by default
* still leaving the parameters in place thx bashonly for confirming this suggestion
This commit is contained in:
parent
6315f4b1df
commit
d0283f5385
@ -1699,7 +1699,8 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
|||||||
self._player_cache = {}
|
self._player_cache = {}
|
||||||
|
|
||||||
def _get_player_js_version(self):
|
def _get_player_js_version(self):
|
||||||
player_js_version = self.get_param('youtube_player_js_version') or '20348@0004de42'
|
player_js_version = self.get_param('youtube_player_js_version')
|
||||||
|
if player_js_version:
|
||||||
sts_hash = self._search_regex(
|
sts_hash = self._search_regex(
|
||||||
('^actual$(^)?(^)?', r'^([0-9]{5,})@([0-9a-f]{8,})$'),
|
('^actual$(^)?(^)?', r'^([0-9]{5,})@([0-9a-f]{8,})$'),
|
||||||
player_js_version, 'player_js_version', group=(1, 2), default=None)
|
player_js_version, 'player_js_version', group=(1, 2), default=None)
|
||||||
@ -1723,18 +1724,18 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
|||||||
ytcfgs = ytcfgs + ({'PLAYER_JS_URL': player_url},)
|
ytcfgs = ytcfgs + ({'PLAYER_JS_URL': player_url},)
|
||||||
player_url = traverse_obj(
|
player_url = traverse_obj(
|
||||||
ytcfgs, (Ellipsis, 'PLAYER_JS_URL'), (Ellipsis, 'WEB_PLAYER_CONTEXT_CONFIGS', Ellipsis, 'jsUrl'),
|
ytcfgs, (Ellipsis, 'PLAYER_JS_URL'), (Ellipsis, 'WEB_PLAYER_CONTEXT_CONFIGS', Ellipsis, 'jsUrl'),
|
||||||
get_all=False, expected_type=lambda u: urljoin('https://www.youtube.com', u))
|
get_all=False, expected_type=self._yt_urljoin)
|
||||||
|
|
||||||
player_id_override = self._get_player_js_version()[1]
|
requested_js_variant = self.get_param('youtube_player_js_variant')
|
||||||
|
|
||||||
requested_js_variant = self.get_param('youtube_player_js_variant') or 'main'
|
|
||||||
variant_js = next(
|
variant_js = next(
|
||||||
(v for k, v in self._PLAYER_JS_VARIANT_MAP if k == requested_js_variant),
|
(v for k, v in self._PLAYER_JS_VARIANT_MAP if k == requested_js_variant),
|
||||||
None)
|
None)
|
||||||
if variant_js:
|
if variant_js:
|
||||||
|
player_id_override = self._get_player_js_version()[1]
|
||||||
player_id = player_id_override or self._extract_player_info(player_url)
|
player_id = player_id_override or self._extract_player_info(player_url)
|
||||||
original_url = player_url
|
original_url = player_url
|
||||||
player_url = '/s/player/{0}/{1}'.format(player_id, variant_js)
|
player_url = self._yt_urljoin(
|
||||||
|
'/s/player/{0}/{1}'.format(player_id, variant_js))
|
||||||
if original_url != player_url:
|
if original_url != player_url:
|
||||||
self.write_debug(
|
self.write_debug(
|
||||||
'Forcing "{0}" player JS variant for player {1}\n'
|
'Forcing "{0}" player JS variant for player {1}\n'
|
||||||
@ -1748,7 +1749,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
|||||||
requested_js_variant, ','.join(k for k, _ in self._PLAYER_JS_VARIANT_MAP)),
|
requested_js_variant, ','.join(k for k, _ in self._PLAYER_JS_VARIANT_MAP)),
|
||||||
only_once=True)
|
only_once=True)
|
||||||
|
|
||||||
return urljoin('https://www.youtube.com', player_url)
|
return player_url
|
||||||
|
|
||||||
def _download_player_url(self, video_id, fatal=False):
|
def _download_player_url(self, video_id, fatal=False):
|
||||||
res = self._download_webpage(
|
res = self._download_webpage(
|
||||||
|
|||||||
@ -421,12 +421,12 @@ def parseOpts(overrideArguments=None):
|
|||||||
action='store', dest='youtube_player_js_variant',
|
action='store', dest='youtube_player_js_variant',
|
||||||
help='For YouTube, the player javascript variant to use for n/sig deciphering; `actual` to follow the site; default `%default`.',
|
help='For YouTube, the player javascript variant to use for n/sig deciphering; `actual` to follow the site; default `%default`.',
|
||||||
choices=('actual', 'main', 'tcc', 'tce', 'es5', 'es6', 'tv', 'tv_es6', 'phone', 'tablet'),
|
choices=('actual', 'main', 'tcc', 'tce', 'es5', 'es6', 'tv', 'tv_es6', 'phone', 'tablet'),
|
||||||
default='main', metavar='VARIANT')
|
default='actual', metavar='VARIANT')
|
||||||
video_format.add_option(
|
video_format.add_option(
|
||||||
'--youtube-player-js-version',
|
'--youtube-player-js-version',
|
||||||
action='store', dest='youtube_player_js_version',
|
action='store', dest='youtube_player_js_version',
|
||||||
help='For YouTube, the player javascript version to use for n/sig deciphering, specified as `signature_timestamp@hash`, or `actual` to follow the site; default `%default`',
|
help='For YouTube, the player javascript version to use for n/sig deciphering, specified as `signature_timestamp@hash`, or `actual` to follow the site; default `%default`',
|
||||||
default='20348@0004de42', metavar='STS@HASH')
|
default='actual', metavar='STS@HASH')
|
||||||
video_format.add_option(
|
video_format.add_option(
|
||||||
'--merge-output-format',
|
'--merge-output-format',
|
||||||
action='store', dest='merge_output_format', metavar='FORMAT', default=None,
|
action='store', dest='merge_output_format', metavar='FORMAT', default=None,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user