mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-11-30 16:42:57 +01:00
[vidzi] Use decode_packed_codes
Javascript codes found on Vidzi are slightly different from those found in VideoMega and iQiyi. Nevertheless, the difference has no effects on the final result.
This commit is contained in:
parent
680079be39
commit
efbd6fb8bb
@ -1,11 +1,9 @@
|
|||||||
# 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 (
|
||||||
base_n,
|
decode_packed_codes,
|
||||||
js_to_json,
|
js_to_json,
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -33,18 +31,7 @@ def _real_extract(self, url):
|
|||||||
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')
|
||||||
|
|
||||||
mobj = re.search(r"}\('(.+)',36,(\d+),'([^']+)'\.split\('\|'\)", webpage)
|
code = decode_packed_codes(webpage).replace('\\\'', '\'')
|
||||||
code, count, symbols = mobj.groups()
|
|
||||||
|
|
||||||
count = int(count)
|
|
||||||
symbols = symbols.split('|')
|
|
||||||
|
|
||||||
while count:
|
|
||||||
count -= 1
|
|
||||||
if symbols[count]:
|
|
||||||
code = re.sub(r'\b%s\b' % base_n(count, 36), symbols[count], code)
|
|
||||||
|
|
||||||
code = code.replace('\\\'', '\'')
|
|
||||||
jwplayer_data = self._parse_json(
|
jwplayer_data = self._parse_json(
|
||||||
self._search_regex(r'setup\(([^)]+)\)', code, 'jwplayer data'),
|
self._search_regex(r'setup\(([^)]+)\)', code, 'jwplayer data'),
|
||||||
video_id, transform_source=js_to_json)
|
video_id, transform_source=js_to_json)
|
||||||
|
Loading…
Reference in New Issue
Block a user