]> jfr.im git - yt-dlp.git/commitdiff
[ie/twitter:spaces] Pass referer header to downloader
authorbashonly <redacted>
Tue, 5 Sep 2023 06:54:14 +0000 (01:54 -0500)
committerbashonly <redacted>
Tue, 5 Sep 2023 06:54:14 +0000 (01:54 -0500)
Closes #8029
Authored by: bashonly

yt_dlp/extractor/twitter.py

index 34b8625c31f0acfa673c4fdaa870f8293008d76b..f86216f8fff50819b8e3f9502f04ec47e0a12d23 100644 (file)
@@ -1618,6 +1618,7 @@ def _real_extract(self, url):
         is_live = live_status == 'is_live'
 
         formats = []
+        headers = {'Referer': 'https://twitter.com/'}
         if live_status == 'is_upcoming':
             self.raise_no_formats('Twitter Space not started yet', expected=True)
         elif not is_live and not metadata.get('is_space_available_for_replay'):
@@ -1628,7 +1629,7 @@ def _real_extract(self, url):
                 ('source', ('noRedirectPlaybackUrl', 'location'), {url_or_none}), get_all=False)
             formats = self._extract_m3u8_formats(  # XXX: Some Spaces need ffmpeg as downloader
                 source, metadata['media_key'], 'm4a', entry_protocol='m3u8', live=is_live,
-                headers={'Referer': 'https://twitter.com/'}, fatal=False) if source else []
+                headers=headers, fatal=False) if source else []
             for fmt in formats:
                 fmt.update({'vcodec': 'none', 'acodec': 'aac'})
                 if not is_live:
@@ -1653,6 +1654,7 @@ def _real_extract(self, url):
                 lambda: int_or_none(metadata['scheduled_start'], scale=1000)),
             'timestamp': int_or_none(metadata.get('created_at'), scale=1000),
             'formats': formats,
+            'http_headers': headers,
         }