diff --git a/youtube_dl/extractor/prosiebensat1.py b/youtube_dl/extractor/prosiebensat1.py index 7efff4566..dbd7dd11d 100644 --- a/youtube_dl/extractor/prosiebensat1.py +++ b/youtube_dl/extractor/prosiebensat1.py @@ -374,10 +374,11 @@ class ProSiebenSat1IE(ProSiebenSat1BaseIE): r'(\d{2}\.\d{2}\.\d{4}) \| \d{2}:\d{2} Min<br/>', ] _PAGE_TYPE_REGEXES = [ - r'<meta name="page_type" content="([^"]+)">', + r'<meta name="page_type" content="([^"]+)"/?>', r"'itemType'\s*:\s*'([^']*)'", ] _PLAYLIST_ID_REGEXES = [ + r'<meta name="node_id" content="([0-9]+)"/?>', r'content[iI]d=(\d+)', r"'itemId'\s*:\s*'([^']*)'", ] @@ -414,11 +415,12 @@ class ProSiebenSat1IE(ProSiebenSat1BaseIE): self._PLAYLIST_ID_REGEXES, webpage, 'playlist id') playlist = self._parse_json( self._search_regex( - r'var\s+contentResources\s*=\s*(\[.+?\]);\s*</script', + r'<script id="state" type="text/plain">(.+?)</script>', webpage, 'playlist'), - playlist_id) + playlist_id).get('page').get('clips') entries = [] - for item in playlist: + for playlist_item in playlist: + item = self._parse_json(playlist_item.get('contentResource'), playlist_id)[0] clip_id = item.get('id') or item.get('upc') if not clip_id: continue