diff options
Diffstat (limited to 'youtube_dl/extractor/vshare.py')
-rw-r--r-- | youtube_dl/extractor/vshare.py | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/youtube_dl/extractor/vshare.py b/youtube_dl/extractor/vshare.py deleted file mode 100644 index c631ac1fa..000000000 --- a/youtube_dl/extractor/vshare.py +++ /dev/null @@ -1,74 +0,0 @@ -# coding: utf-8 -from __future__ import unicode_literals - -import re - -from .common import InfoExtractor -from ..compat import compat_chr -from ..utils import ( - decode_packed_codes, - ExtractorError, -) - - -class VShareIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?vshare\.io/[dv]/(?P<id>[^/?#&]+)' - _TESTS = [{ - 'url': 'https://vshare.io/d/0f64ce6', - 'md5': '17b39f55b5497ae8b59f5fbce8e35886', - 'info_dict': { - 'id': '0f64ce6', - 'title': 'vl14062007715967', - 'ext': 'mp4', - } - }, { - 'url': 'https://vshare.io/v/0f64ce6/width-650/height-430/1', - 'only_matching': True, - }] - - @staticmethod - def _extract_urls(webpage): - return re.findall( - r'<iframe[^>]+?src=["\'](?P<url>(?:https?:)?//(?:www\.)?vshare\.io/v/[^/?#&]+)', - webpage) - - def _extract_packed(self, webpage): - packed = self._search_regex( - r'(eval\(function.+)', webpage, 'packed code') - unpacked = decode_packed_codes(packed) - digits = self._search_regex(r'\[((?:\d+,?)+)\]', unpacked, 'digits') - digits = [int(digit) for digit in digits.split(',')] - key_digit = self._search_regex( - r'fromCharCode\(.+?(\d+)\)}', unpacked, 'key digit') - chars = [compat_chr(d - int(key_digit)) for d in digits] - return ''.join(chars) - - def _real_extract(self, url): - video_id = self._match_id(url) - - webpage = self._download_webpage( - 'https://vshare.io/v/%s/width-650/height-430/1' % video_id, - video_id, headers={'Referer': url}) - - title = self._html_search_regex( - r'<title>([^<]+)</title>', webpage, 'title') - 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) - - info = self._parse_html5_media_entries( - url, '<video>%s</video>' % self._extract_packed(webpage), - video_id)[0] - - self._sort_formats(info['formats']) - - info.update({ - 'id': video_id, - 'title': title, - }) - - return info |