diff options
Diffstat (limited to 'youtube_dl/extractor/dtube.py')
-rw-r--r-- | youtube_dl/extractor/dtube.py | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/youtube_dl/extractor/dtube.py b/youtube_dl/extractor/dtube.py deleted file mode 100644 index 114d2dbe3..000000000 --- a/youtube_dl/extractor/dtube.py +++ /dev/null @@ -1,83 +0,0 @@ -# coding: utf-8 -from __future__ import unicode_literals - -import json -import re -from socket import timeout - -from .common import InfoExtractor -from ..utils import ( - int_or_none, - parse_iso8601, -) - - -class DTubeIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?d\.tube/(?:#!/)?v/(?P<uploader_id>[0-9a-z.-]+)/(?P<id>[0-9a-z]{8})' - _TEST = { - 'url': 'https://d.tube/#!/v/broncnutz/x380jtr1', - 'md5': '9f29088fa08d699a7565ee983f56a06e', - 'info_dict': { - 'id': 'x380jtr1', - 'ext': 'mp4', - 'title': 'Lefty 3-Rings is Back Baby!! NCAA Picks', - 'description': 'md5:60be222088183be3a42f196f34235776', - 'uploader_id': 'broncnutz', - 'upload_date': '20190107', - 'timestamp': 1546854054, - }, - 'params': { - 'format': '480p', - }, - } - - def _real_extract(self, url): - uploader_id, video_id = re.match(self._VALID_URL, url).groups() - result = self._download_json('https://api.steemit.com/', video_id, data=json.dumps({ - 'jsonrpc': '2.0', - 'method': 'get_content', - 'params': [uploader_id, video_id], - }).encode())['result'] - - metadata = json.loads(result['json_metadata']) - video = metadata['video'] - content = video['content'] - info = video.get('info', {}) - title = info.get('title') or result['title'] - - def canonical_url(h): - if not h: - return None - return 'https://video.dtube.top/ipfs/' + h - - formats = [] - for q in ('240', '480', '720', '1080', ''): - video_url = canonical_url(content.get('video%shash' % q)) - if not video_url: - continue - format_id = (q + 'p') if q else 'Source' - try: - self.to_screen('%s: Checking %s video format URL' % (video_id, format_id)) - self._downloader._opener.open(video_url, timeout=5).close() - except timeout: - self.to_screen( - '%s: %s URL is invalid, skipping' % (video_id, format_id)) - continue - formats.append({ - 'format_id': format_id, - 'url': video_url, - 'height': int_or_none(q), - 'ext': 'mp4', - }) - - return { - 'id': video_id, - 'title': title, - 'description': content.get('description'), - 'thumbnail': canonical_url(info.get('snaphash')), - 'tags': content.get('tags') or metadata.get('tags'), - 'duration': info.get('duration'), - 'formats': formats, - 'timestamp': parse_iso8601(result.get('created')), - 'uploader_id': uploader_id, - } |