[tv2:article] Fix extraction (Closes #10188)

This commit is contained in:
Sergey M․ 2016-07-29 21:43:17 +07:00
parent 0cacae2807
commit 481c5c5137
No known key found for this signature in database
GPG key ID: 2C393E0F18A9236D

View file

@ -8,6 +8,7 @@ from ..utils import (
determine_ext, determine_ext,
int_or_none, int_or_none,
float_or_none, float_or_none,
js_to_json,
parse_iso8601, parse_iso8601,
remove_end, remove_end,
) )
@ -105,7 +106,7 @@ class TV2ArticleIE(InfoExtractor):
'url': 'http://www.tv2.no/2015/05/16/nyheter/alesund/krim/pingvin/6930542', 'url': 'http://www.tv2.no/2015/05/16/nyheter/alesund/krim/pingvin/6930542',
'info_dict': { 'info_dict': {
'id': '6930542', 'id': '6930542',
'title': 'Russen hetses etter pingvintyveri innrømmer å ha åpnet luken på buret', 'title': 'Russen hetses etter pingvintyveri - innrømmer å ha åpnet luken på buret',
'description': 'md5:339573779d3eea3542ffe12006190954', 'description': 'md5:339573779d3eea3542ffe12006190954',
}, },
'playlist_count': 2, 'playlist_count': 2,
@ -119,9 +120,23 @@ class TV2ArticleIE(InfoExtractor):
webpage = self._download_webpage(url, playlist_id) webpage = self._download_webpage(url, playlist_id)
# Old embed pattern (looks unused nowadays)
assets = re.findall(r'data-assetid=["\'](\d+)', webpage)
if not assets:
# New embed pattern
for v in re.findall('TV2ContentboxVideo\(({.+?})\)', webpage):
video = self._parse_json(
v, playlist_id, transform_source=js_to_json, fatal=False)
if not video:
continue
asset = video.get('assetId')
if asset:
assets.append(asset)
entries = [ entries = [
self.url_result('http://www.tv2.no/v/%s' % video_id, 'TV2') self.url_result('http://www.tv2.no/v/%s' % asset_id, 'TV2')
for video_id in re.findall(r'data-assetid="(\d+)"', webpage)] for asset_id in assets]
title = remove_end(self._og_search_title(webpage), ' - TV2.no') title = remove_end(self._og_search_title(webpage), ' - TV2.no')
description = remove_end(self._og_search_description(webpage), ' - TV2.no') description = remove_end(self._og_search_description(webpage), ' - TV2.no')