From c6ef553792ed48462f9fd0e78143bef6b1a71c2e Mon Sep 17 00:00:00 2001 From: bashonly Date: Tue, 5 Sep 2023 01:54:14 -0500 Subject: [PATCH] [ie/twitter:spaces] Pass referer header to downloader Closes #8029 Authored by: bashonly --- yt_dlp/extractor/twitter.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/yt_dlp/extractor/twitter.py b/yt_dlp/extractor/twitter.py index 34b8625c3..f86216f8f 100644 --- a/yt_dlp/extractor/twitter.py +++ b/yt_dlp/extractor/twitter.py @@ -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, }