diff options
Diffstat (limited to 'youtube_dl/extractor/dlive.py')
-rw-r--r-- | youtube_dl/extractor/dlive.py | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/youtube_dl/extractor/dlive.py b/youtube_dl/extractor/dlive.py deleted file mode 100644 index d95c67a5b..000000000 --- a/youtube_dl/extractor/dlive.py +++ /dev/null @@ -1,97 +0,0 @@ -from __future__ import unicode_literals - -import json -import re - -from .common import InfoExtractor -from ..utils import int_or_none - - -class DLiveVODIE(InfoExtractor): - IE_NAME = 'dlive:vod' - _VALID_URL = r'https?://(?:www\.)?dlive\.tv/p/(?P<uploader_id>.+?)\+(?P<id>[^/?#&]+)' - _TESTS = [{ - 'url': 'https://dlive.tv/p/pdp+3mTzOl4WR', - 'info_dict': { - 'id': '3mTzOl4WR', - 'ext': 'mp4', - 'title': 'Minecraft with james charles epic', - 'upload_date': '20190701', - 'timestamp': 1562011015, - 'uploader_id': 'pdp', - } - }, { - 'url': 'https://dlive.tv/p/pdpreplay+D-RD-xSZg', - 'only_matching': True, - }] - - def _real_extract(self, url): - uploader_id, vod_id = re.match(self._VALID_URL, url).groups() - broadcast = self._download_json( - 'https://graphigo.prd.dlive.tv/', vod_id, - data=json.dumps({'query': '''query { - pastBroadcast(permlink:"%s+%s") { - content - createdAt - length - playbackUrl - title - thumbnailUrl - viewCount - } -}''' % (uploader_id, vod_id)}).encode())['data']['pastBroadcast'] - title = broadcast['title'] - formats = self._extract_m3u8_formats( - broadcast['playbackUrl'], vod_id, 'mp4', 'm3u8_native') - self._sort_formats(formats) - return { - 'id': vod_id, - 'title': title, - 'uploader_id': uploader_id, - 'formats': formats, - 'description': broadcast.get('content'), - 'thumbnail': broadcast.get('thumbnailUrl'), - 'timestamp': int_or_none(broadcast.get('createdAt'), 1000), - 'view_count': int_or_none(broadcast.get('viewCount')), - } - - -class DLiveStreamIE(InfoExtractor): - IE_NAME = 'dlive:stream' - _VALID_URL = r'https?://(?:www\.)?dlive\.tv/(?!p/)(?P<id>[\w.-]+)' - - def _real_extract(self, url): - display_name = self._match_id(url) - user = self._download_json( - 'https://graphigo.prd.dlive.tv/', display_name, - data=json.dumps({'query': '''query { - userByDisplayName(displayname:"%s") { - livestream { - content - createdAt - title - thumbnailUrl - watchingCount - } - username - } -}''' % display_name}).encode())['data']['userByDisplayName'] - livestream = user['livestream'] - title = livestream['title'] - username = user['username'] - formats = self._extract_m3u8_formats( - 'https://live.prd.dlive.tv/hls/live/%s.m3u8' % username, - display_name, 'mp4') - self._sort_formats(formats) - return { - 'id': display_name, - 'title': self._live_title(title), - 'uploader': display_name, - 'uploader_id': username, - 'formats': formats, - 'description': livestream.get('content'), - 'thumbnail': livestream.get('thumbnailUrl'), - 'is_live': True, - 'timestamp': int_or_none(livestream.get('createdAt'), 1000), - 'view_count': int_or_none(livestream.get('watchingCount')), - } |