X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2Fextractor%2Forf.py;h=03421d1d5c78f2acd712e560ae17fb96d4a323be;hb=04f9bebbcb07c1ca73c34cff1d80fe0b6abaa576;hp=88f03608ba36e52db309f5249d2bd7426faced86;hpb=5d73273f6f458970b34b3c6f4c8bd18fbad9c1ca;p=youtube-dl diff --git a/youtube_dl/extractor/orf.py b/youtube_dl/extractor/orf.py index 88f03608b..03421d1d5 100644 --- a/youtube_dl/extractor/orf.py +++ b/youtube_dl/extractor/orf.py @@ -8,6 +8,7 @@ from .common import InfoExtractor from ..utils import ( HEADRequest, unified_strdate, + ExtractorError, ) @@ -35,7 +36,15 @@ class ORFIE(InfoExtractor): data_json = self._search_regex( r'initializeAdworx\((.+?)\);\n', webpage, 'video info') all_data = json.loads(data_json) - sdata = all_data[0]['values']['segments'] + + def get_segments(all_data): + for data in all_data: + if data['name'] == 'Tracker::EPISODE_DETAIL_PAGE_OVER_PROGRAM': + return data['values']['segments'] + + sdata = get_segments(all_data) + if not sdata: + raise ExtractorError('Unable to extract segments') def quality_to_int(s): m = re.search('([0-9]+)', s) @@ -68,7 +77,7 @@ class ORFIE(InfoExtractor): pass else: req = HEADRequest(http_url) - response = self._request_webpage( + self._request_webpage( req, video_id, note='Testing for geoblocking', errnote=((