mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2025-07-10 23:38:30 +00:00
[ie/EuroParlWebstream] Start fixing
This commit is contained in:
parent
4a0b1079f8
commit
dbb48a21f5
@ -162,31 +162,43 @@ class EuroParlWebstreamIE(InfoExtractor):
|
|||||||
}]
|
}]
|
||||||
|
|
||||||
def _real_extract(self, url):
|
def _real_extract(self, url):
|
||||||
display_id = self._match_id(url)
|
video_id = self._match_id(url)
|
||||||
webpage = self._download_webpage(url, display_id)
|
webpage = self._download_webpage(url, video_id)
|
||||||
|
stream_info = self._search_nextjs_data(webpage, video_id)['props']['pageProps']
|
||||||
|
status = traverse_obj(stream_info, ('media_item', 'mediaSubType'))
|
||||||
|
base = 'https://control.eup.glcloud.eu/content-manager/api/v1/socket.io/?EIO=4&transport=polling'
|
||||||
|
headers = {'referer': f'https://control.eup.glcloud.eu/content-manager/content-page/{video_id}'}
|
||||||
|
sid = self._download_socket_json(base, video_id, note='Opening socket', headers=headers)['sid']
|
||||||
|
base += '&sid=' + sid
|
||||||
|
self._download_webpage(base, video_id, 'Polling socket with payload', data=b'40/content,', headers=headers)
|
||||||
|
self._download_webpage(base, video_id, 'Polling socket', headers=headers)
|
||||||
|
self._download_socket_json(base, video_id, 'Getting broadcast metadata from socket', headers=headers)
|
||||||
|
|
||||||
webpage_nextjs = self._search_nextjs_data(webpage, display_id)['props']['pageProps']
|
# webpage = self._download_webpage(f'https://control.eup.glcloud.eu/content-manager/content-page/{video_id}', video_id)
|
||||||
|
# stream_info = self._search_json(r'<script [^>]*id="ng-state"[^>]*>', webpage, 'stream info', video_id)['contentEventKey']
|
||||||
|
|
||||||
json_info = self._download_json(
|
# json_info = self._download_json(
|
||||||
'https://acs-api.europarl.connectedviews.eu/api/FullMeeting', display_id,
|
# 'https://acs-api.europarl.connectedviews.eu/api/FullMeeting', display_id,
|
||||||
query={
|
# query={
|
||||||
'api-version': 1.0,
|
# 'api-version': 1.0,
|
||||||
'tenantId': 'bae646ca-1fc8-4363-80ba-2c04f06b4968',
|
# 'tenantId': 'bae646ca-1fc8-4363-80ba-2c04f06b4968',
|
||||||
'externalReference': display_id,
|
# 'externalReference': display_id,
|
||||||
})
|
# })
|
||||||
|
|
||||||
formats, subtitles = [], {}
|
|
||||||
for hls_url in traverse_obj(json_info, ((('meetingVideo'), ('meetingVideos', ...)), 'hlsUrl')):
|
|
||||||
fmt, subs = self._extract_m3u8_formats_and_subtitles(hls_url, display_id)
|
|
||||||
formats.extend(fmt)
|
|
||||||
self._merge_subtitles(subs, target=subtitles)
|
|
||||||
|
|
||||||
|
# formats, subtitles = [], {}
|
||||||
|
# for hls_url in traverse_obj(json_info, ((('meetingVideo'), ('meetingVideos', ...)), 'hlsUrl')):
|
||||||
|
# fmt, subs = self._extract_m3u8_formats_and_subtitles(hls_url, display_id)
|
||||||
|
# formats.extend(fmt)
|
||||||
|
# self._merge_subtitles(subs, target=subtitles)
|
||||||
return {
|
return {
|
||||||
'id': json_info['id'],
|
'live_status': 'is_upcoming' if status == 'Upcoming' else 'is_live' if status == 'Live' else 'was_live',
|
||||||
'display_id': display_id,
|
**traverse_obj(stream_info, {
|
||||||
'title': traverse_obj(webpage_nextjs, (('mediaItem', 'title'), ('title', )), get_all=False),
|
'id': ('mediaID', {str_or_none}),
|
||||||
'formats': formats,
|
'display_id': ('slug', {str_or_none}),
|
||||||
'subtitles': subtitles,
|
'title': ('title', {str_or_none}),
|
||||||
'release_timestamp': parse_iso8601(json_info.get('startDateTime')),
|
'description': ('mediaItem', 'description', {str_or_none}),
|
||||||
'is_live': traverse_obj(webpage_nextjs, ('mediaItem', 'mediaSubType')) == 'Live',
|
'release_timestamp': ('mediaItem', 'mediaDate', {parse_iso8601}),
|
||||||
|
'thumbnail': ('mediaItem', 'mediaThumbnailURL', {url_or_none}),
|
||||||
|
'live_status': ('mediaSubType'),
|
||||||
|
}),
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user