|
|
|
@ -6,8 +6,10 @@ import re
|
|
|
|
|
from .common import InfoExtractor
|
|
|
|
|
from ..compat import compat_chr
|
|
|
|
|
from ..utils import (
|
|
|
|
|
determine_ext,
|
|
|
|
|
encode_base_n,
|
|
|
|
|
ExtractorError,
|
|
|
|
|
mimetype2ext,
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -96,17 +98,25 @@ class OpenloadIE(InfoExtractor):
|
|
|
|
|
r'<video[^>]+>\s*<script[^>]+>([^<]+)</script>',
|
|
|
|
|
webpage, 'JS code')
|
|
|
|
|
|
|
|
|
|
decoded = self.openload_decode(code)
|
|
|
|
|
|
|
|
|
|
video_url = self._search_regex(
|
|
|
|
|
r'return\s+"(https?://[^"]+)"', self.openload_decode(code), 'video URL')
|
|
|
|
|
r'return\s+"(https?://[^"]+)"', decoded, 'video URL')
|
|
|
|
|
|
|
|
|
|
title = self._og_search_title(webpage, default=None) or self._search_regex(
|
|
|
|
|
r'<span[^>]+class=["\']title["\'][^>]*>([^<]+)', webpage,
|
|
|
|
|
'title', default=None) or self._html_search_meta(
|
|
|
|
|
'description', webpage, 'title', fatal=True)
|
|
|
|
|
|
|
|
|
|
ext = mimetype2ext(self._search_regex(
|
|
|
|
|
r'window\.vt\s*=\s*(["\'])(?P<mimetype>.+?)\1', decoded,
|
|
|
|
|
'mimetype', default=None, group='mimetype')) or determine_ext(
|
|
|
|
|
video_url, 'mp4')
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
'id': video_id,
|
|
|
|
|
'title': title,
|
|
|
|
|
'ext': ext,
|
|
|
|
|
'thumbnail': self._og_search_thumbnail(webpage),
|
|
|
|
|
'url': video_url,
|
|
|
|
|
}
|
|
|
|
|