From 7cdb94e892e95ba115018a93eccf87c494ab7540 Mon Sep 17 00:00:00 2001 From: mpeter50 <83356418+mpeter50@users.noreply.github.com> Date: Fri, 14 Jul 2023 15:43:04 +0200 Subject: [PATCH] add extractor args for setting the IDs from args --- yt_dlp/extractor/twitch.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/yt_dlp/extractor/twitch.py b/yt_dlp/extractor/twitch.py index 8781a038d..d3c3583b9 100644 --- a/yt_dlp/extractor/twitch.py +++ b/yt_dlp/extractor/twitch.py @@ -63,6 +63,14 @@ def _CLIENT_ID(self): return self._configuration_arg( 'client_id', ['ue6666qo983tsx6so1t0vnawi233wa'], ie_key='Twitch', casesense=True)[0] + @property + def _DEVICE_ID(self): + return self._configuration_arg('device_id', [None], ie_key='Twitch')[0] + + @property + def _CLIENT_INTEGRITY(self): + return self._configuration_arg('client_integrity', [None], ie_key='Twitch', casesense=True)[0] + def _perform_login(self, username, password): def fail(message): raise ExtractorError( @@ -147,6 +155,14 @@ def _download_base_gql(self, video_id, ops, note, fatal=True): gql_auth = self._get_cookies('https://gql.twitch.tv').get('auth-token') if gql_auth: headers['Authorization'] = 'OAuth ' + gql_auth.value + + # TODO: remove existence checks when the values will be generated + if self._DEVICE_ID: + headers["X-Device-Id"] = self._DEVICE_ID + + if self._CLIENT_INTEGRITY: + headers["Client-Integrity"] = self._CLIENT_INTEGRITY + return self._download_json( 'https://gql.twitch.tv/gql', video_id, note, data=json.dumps(ops).encode(),