

def _real_extract(self, url):
    display_id = self._match_id(url)
    webpage = self._download_webpage(url, display_id)
    live_id = self._search_regex('data-prid="([^"]+)"', webpage, 'live id')
    metadata = self._download_json(('http://e.omroep.nl/metadata/%s' % live_id), display_id, transform_source=strip_jsonp)
    token = self._get_token(display_id)
    formats = []
    streams = metadata.get('streams')
    if streams:
        for stream in streams:
            stream_type = stream.get('type').lower()
            if (stream_type == 'ss'):
                continue
            stream_info = stream._download_json(('http://ida.omroep.nl/aapi/?stream=%s&token=%s&type=jsonp' % (stream.get('url'), token)), display_id, ('Downloading %s JSON' % stream_type))
            if (stream_info.get('error_code', 0) or stream_info.get('errorcode', 0)):
                continue
            stream_url = self._download_json(stream_info['stream'], display_id, ('Downloading %s URL' % stream_type), transform_source=strip_jsonp)
            if (stream_type == 'hds'):
                f4m_formats = self._extract_f4m_formats(stream_url, display_id)
                for f4m_format in f4m_formats:
                    f4m_format['preference'] = (- 1)
                formats.extend(f4m_formats)
            elif (stream_type == 'hls'):
                formats.extend(self._extract_m3u8_formats(stream_url, display_id, 'mp4'))
            else:
                formats.append({
                    'url': stream_url,
                })
    self._sort_formats(formats)
    return {
        'id': live_id,
        'display_id': display_id,
        'title': self._live_title(metadata['titel']),
        'description': metadata['info'],
        'thumbnail': metadata.get('images', [{
            'url': None,
        }])[(- 1)]['url'],
        'formats': formats,
        'is_live': True,
    }

dataset/ETHPy150Open yasoob/youtube-dl-GUI/youtube_dl/extractor/npo.py NPOLiveIE._real_extract/VarMisuse@126/193 `self`->`stream`