mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-09-22 02:11:26 +02:00
Compare commits
No commits in common. "4f7e9c4f5815f6fd294eaf65f77fd06c0bd94ffa" and "ea805b08133fd1e77fb0e156d5a6967f08676e39" have entirely different histories.
4f7e9c4f58
...
ea805b0813
|
@ -21,6 +21,7 @@ class PeriscopeBaseIE(InfoExtractor):
|
||||||
uploader = broadcast.get('user_display_name') or broadcast.get('username')
|
uploader = broadcast.get('user_display_name') or broadcast.get('username')
|
||||||
title = '%s - %s' % (uploader, title) if uploader else title
|
title = '%s - %s' % (uploader, title) if uploader else title
|
||||||
is_live = broadcast.get('state').lower() == 'running'
|
is_live = broadcast.get('state').lower() == 'running'
|
||||||
|
timestamp = int_or_none(broadcast.get('created_at_ms'), scale=1000) or parse_iso8601(broadcast.get('created_at'))
|
||||||
|
|
||||||
thumbnails = [{
|
thumbnails = [{
|
||||||
'url': broadcast[image],
|
'url': broadcast[image],
|
||||||
|
@ -29,7 +30,7 @@ class PeriscopeBaseIE(InfoExtractor):
|
||||||
return {
|
return {
|
||||||
'id': broadcast.get('id') or video_id,
|
'id': broadcast.get('id') or video_id,
|
||||||
'title': title,
|
'title': title,
|
||||||
'timestamp': int_or_none(broadcast.get('created_at_ms'), scale=1000) or parse_iso8601(broadcast.get('created_at')),
|
'timestamp': timestamp,
|
||||||
'uploader': uploader,
|
'uploader': uploader,
|
||||||
'uploader_id': broadcast.get('user_id') or broadcast.get('username'),
|
'uploader_id': broadcast.get('user_id') or broadcast.get('username'),
|
||||||
'thumbnails': thumbnails,
|
'thumbnails': thumbnails,
|
||||||
|
|
|
@ -1563,7 +1563,7 @@ class TwitterBroadcastIE(TwitterBaseIE, PeriscopeBaseIE):
|
||||||
IE_NAME = 'twitter:broadcast'
|
IE_NAME = 'twitter:broadcast'
|
||||||
_VALID_URL = TwitterBaseIE._BASE_REGEX + r'i/broadcasts/(?P<id>[0-9a-zA-Z]{13})'
|
_VALID_URL = TwitterBaseIE._BASE_REGEX + r'i/broadcasts/(?P<id>[0-9a-zA-Z]{13})'
|
||||||
|
|
||||||
_TESTS = [{
|
_TEST = {
|
||||||
# untitled Periscope video
|
# untitled Periscope video
|
||||||
'url': 'https://twitter.com/i/broadcasts/1yNGaQLWpejGj',
|
'url': 'https://twitter.com/i/broadcasts/1yNGaQLWpejGj',
|
||||||
'info_dict': {
|
'info_dict': {
|
||||||
|
@ -1571,42 +1571,11 @@ class TwitterBroadcastIE(TwitterBaseIE, PeriscopeBaseIE):
|
||||||
'ext': 'mp4',
|
'ext': 'mp4',
|
||||||
'title': 'Andrea May Sahouri - Periscope Broadcast',
|
'title': 'Andrea May Sahouri - Periscope Broadcast',
|
||||||
'uploader': 'Andrea May Sahouri',
|
'uploader': 'Andrea May Sahouri',
|
||||||
'uploader_id': 'andreamsahouri',
|
'uploader_id': '1PXEdBZWpGwKe',
|
||||||
'uploader_url': 'https://twitter.com/andreamsahouri',
|
|
||||||
'timestamp': 1590973638,
|
|
||||||
'upload_date': '20200601',
|
|
||||||
'thumbnail': r're:^https?://[^?#]+\.jpg\?token=',
|
'thumbnail': r're:^https?://[^?#]+\.jpg\?token=',
|
||||||
'view_count': int,
|
'view_count': int,
|
||||||
},
|
},
|
||||||
}, {
|
}
|
||||||
'url': 'https://twitter.com/i/broadcasts/1ZkKzeyrPbaxv',
|
|
||||||
'info_dict': {
|
|
||||||
'id': '1ZkKzeyrPbaxv',
|
|
||||||
'ext': 'mp4',
|
|
||||||
'title': 'Starship | SN10 | High-Altitude Flight Test',
|
|
||||||
'uploader': 'SpaceX',
|
|
||||||
'uploader_id': 'SpaceX',
|
|
||||||
'uploader_url': 'https://twitter.com/SpaceX',
|
|
||||||
'timestamp': 1614812942,
|
|
||||||
'upload_date': '20210303',
|
|
||||||
'thumbnail': r're:^https?://[^?#]+\.jpg\?token=',
|
|
||||||
'view_count': int,
|
|
||||||
},
|
|
||||||
}, {
|
|
||||||
'url': 'https://twitter.com/i/broadcasts/1OyKAVQrgzwGb',
|
|
||||||
'info_dict': {
|
|
||||||
'id': '1OyKAVQrgzwGb',
|
|
||||||
'ext': 'mp4',
|
|
||||||
'title': 'Starship Flight Test',
|
|
||||||
'uploader': 'SpaceX',
|
|
||||||
'uploader_id': 'SpaceX',
|
|
||||||
'uploader_url': 'https://twitter.com/SpaceX',
|
|
||||||
'timestamp': 1681993964,
|
|
||||||
'upload_date': '20230420',
|
|
||||||
'thumbnail': r're:^https?://[^?#]+\.jpg\?token=',
|
|
||||||
'view_count': int,
|
|
||||||
},
|
|
||||||
}]
|
|
||||||
|
|
||||||
def _real_extract(self, url):
|
def _real_extract(self, url):
|
||||||
broadcast_id = self._match_id(url)
|
broadcast_id = self._match_id(url)
|
||||||
|
@ -1617,8 +1586,8 @@ class TwitterBroadcastIE(TwitterBaseIE, PeriscopeBaseIE):
|
||||||
raise ExtractorError('Broadcast no longer exists', expected=True)
|
raise ExtractorError('Broadcast no longer exists', expected=True)
|
||||||
info = self._parse_broadcast_data(broadcast, broadcast_id)
|
info = self._parse_broadcast_data(broadcast, broadcast_id)
|
||||||
info['title'] = broadcast.get('status') or info.get('title')
|
info['title'] = broadcast.get('status') or info.get('title')
|
||||||
info['uploader_id'] = broadcast.get('twitter_username') or info.get('uploader_id')
|
info['uploader_id'] = broadcast.get('twitter_user_id') or info.get('uploader_id')
|
||||||
info['uploader_url'] = format_field(broadcast, 'twitter_username', 'https://twitter.com/%s', default=None)
|
info['uploader'] = broadcast.get('twitter_username') or info.get('uploader')
|
||||||
media_key = broadcast['media_key']
|
media_key = broadcast['media_key']
|
||||||
source = self._call_api(
|
source = self._call_api(
|
||||||
f'live_video_stream/status/{media_key}', media_key)['source']
|
f'live_video_stream/status/{media_key}', media_key)['source']
|
||||||
|
|
Loading…
Reference in New Issue
Block a user