From db7d841f8a263036c515e33778332b157c8dc1f4 Mon Sep 17 00:00:00 2001 From: doe1080 <98906116+doe1080@users.noreply.github.com> Date: Sat, 24 May 2025 00:52:56 +0900 Subject: [PATCH] fix --- yt_dlp/extractor/twitter.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/yt_dlp/extractor/twitter.py b/yt_dlp/extractor/twitter.py index 8d7a61ac2d..de94e66170 100644 --- a/yt_dlp/extractor/twitter.py +++ b/yt_dlp/extractor/twitter.py @@ -1684,17 +1684,21 @@ class TwitterBroadcastIE(TwitterBaseIE, PeriscopeBaseIE): else: broadcast_id = display_id - broadcast = self._call_api( - 'broadcasts/show.json', broadcast_id, - {'ids': broadcast_id})['broadcasts'][broadcast_id] - if not broadcast: + if not (broadcast := self._call_api( + 'broadcasts/show.json', broadcast_id, {'ids': broadcast_id}, + )['broadcasts'][broadcast_id]): raise ExtractorError('Broadcast no longer exists', expected=True) + info = self._parse_broadcast_data(broadcast, broadcast_id) - info['title'] = broadcast.get('status') or info.get('title') - info['uploader_id'] = broadcast.get('twitter_username') or info.get('uploader_id') - info['uploader_url'] = format_field(broadcast, 'twitter_username', 'https://twitter.com/%s', default=None) - info['display_id'] = display_id + info.update({ + 'display_id': display_id, + 'title': broadcast.get('status') or info.get('title'), + 'uploader_id': broadcast.get('twitter_username') or info.get('uploader_id'), + 'uploader_url': format_field( + broadcast, 'twitter_username', 'https://twitter.com/%s', default=None), + }) if info['live_status'] == 'is_upcoming': + self.raise_no_formats('This live broadcast has not yet started', expected=True) return info media_key = broadcast['media_key']