aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2016-07-29 21:43:17 +0700
committerSergey M․ <dstftw@gmail.com>2016-07-29 21:43:17 +0700
commit481c5c5137baab386c1cc4a4163bae7404a25f61 (patch)
tree1aded18baa06bd7c04bfa85604f83fc0b3d1e1fb
parent0cacae280725074fd4eef82c079b0829a15206f1 (diff)
[tv2:article] Fix extraction (Closes #10188)
-rw-r--r--youtube_dl/extractor/tv2.py21
1 files changed, 18 insertions, 3 deletions
diff --git a/youtube_dl/extractor/tv2.py b/youtube_dl/extractor/tv2.py
index 86bb7915d..e4b4ac0e7 100644
--- a/youtube_dl/extractor/tv2.py
+++ b/youtube_dl/extractor/tv2.py
@@ -8,6 +8,7 @@ from ..utils import (
determine_ext,
int_or_none,
float_or_none,
+ js_to_json,
parse_iso8601,
remove_end,
)
@@ -105,7 +106,7 @@ class TV2ArticleIE(InfoExtractor):
'url': 'http://www.tv2.no/2015/05/16/nyheter/alesund/krim/pingvin/6930542',
'info_dict': {
'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',
},
'playlist_count': 2,
@@ -119,9 +120,23 @@ class TV2ArticleIE(InfoExtractor):
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 = [
- self.url_result('http://www.tv2.no/v/%s' % video_id, 'TV2')
- for video_id in re.findall(r'data-assetid="(\d+)"', webpage)]
+ self.url_result('http://www.tv2.no/v/%s' % asset_id, 'TV2')
+ for asset_id in assets]
title = remove_end(self._og_search_title(webpage), ' - TV2.no')
description = remove_end(self._og_search_description(webpage), ' - TV2.no')