|
|
@ -5,7 +5,10 @@ import re
|
|
|
|
|
|
|
|
|
|
|
|
from .common import InfoExtractor
|
|
|
|
from .common import InfoExtractor
|
|
|
|
from ..compat import compat_chr
|
|
|
|
from ..compat import compat_chr
|
|
|
|
from ..utils import decode_packed_codes
|
|
|
|
from ..utils import (
|
|
|
|
|
|
|
|
decode_packed_codes,
|
|
|
|
|
|
|
|
ExtractorError,
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class VShareIE(InfoExtractor):
|
|
|
|
class VShareIE(InfoExtractor):
|
|
|
@ -42,6 +45,12 @@ class VShareIE(InfoExtractor):
|
|
|
|
title = self._html_search_regex(r'<title>([^<]+)</title>', webpage, 'title')
|
|
|
|
title = self._html_search_regex(r'<title>([^<]+)</title>', webpage, 'title')
|
|
|
|
title = title.split(' - ')[0]
|
|
|
|
title = title.split(' - ')[0]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
error = self._html_search_regex(
|
|
|
|
|
|
|
|
r'(?s)<div[^>]+\bclass=["\']xxx-error[^>]+>(.+?)</div', webpage,
|
|
|
|
|
|
|
|
'error', default=None)
|
|
|
|
|
|
|
|
if error:
|
|
|
|
|
|
|
|
raise ExtractorError(error, expected=True)
|
|
|
|
|
|
|
|
|
|
|
|
unpacked = self._extract_packed(webpage)
|
|
|
|
unpacked = self._extract_packed(webpage)
|
|
|
|
video_urls = re.findall(r'<source src="([^"]+)', unpacked)
|
|
|
|
video_urls = re.findall(r'<source src="([^"]+)', unpacked)
|
|
|
|
formats = [{'url': video_url} for video_url in video_urls]
|
|
|
|
formats = [{'url': video_url} for video_url in video_urls]
|
|
|
|