[vidzi] Fix extraction (closes #10908, closes #10952)

master
Sergey M․ 8 years ago
parent 06b3fe2926
commit 2b96b06bf0
No known key found for this signature in database
GPG Key ID: 2C393E0F18A9236D

@ -1,10 +1,14 @@
# coding: utf-8 # coding: utf-8
from __future__ import unicode_literals from __future__ import unicode_literals
import re
from .jwplatform import JWPlatformBaseIE from .jwplatform import JWPlatformBaseIE
from ..utils import ( from ..utils import (
decode_packed_codes, decode_packed_codes,
js_to_json, js_to_json,
NO_DEFAULT,
PACKED_CODES_RE,
) )
@ -35,10 +39,17 @@ class VidziIE(JWPlatformBaseIE):
title = self._html_search_regex( title = self._html_search_regex(
r'(?s)<h2 class="video-title">(.*?)</h2>', webpage, 'title') r'(?s)<h2 class="video-title">(.*?)</h2>', webpage, 'title')
code = decode_packed_codes(webpage).replace('\\\'', '\'') packed_codes = [mobj.group(0) for mobj in re.finditer(
jwplayer_data = self._parse_json( PACKED_CODES_RE, webpage)]
self._search_regex(r'setup\(([^)]+)\)', code, 'jwplayer data'), for num, pc in enumerate(packed_codes, 1):
video_id, transform_source=js_to_json) code = decode_packed_codes(pc).replace('\\\'', '\'')
jwplayer_data = self._parse_json(
self._search_regex(
r'setup\(([^)]+)\)', code, 'jwplayer data',
default=NO_DEFAULT if num == len(packed_codes) else '{}'),
video_id, transform_source=js_to_json)
if jwplayer_data:
break
info_dict = self._parse_jwplayer_data(jwplayer_data, video_id, require_title=False) info_dict = self._parse_jwplayer_data(jwplayer_data, video_id, require_title=False)
info_dict['title'] = title info_dict['title'] = title

Loading…
Cancel
Save