diff options
author | Tom-Oliver Heidel <github@tom-oliver.eu> | 2020-11-30 02:46:10 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-30 02:46:10 +0100 |
commit | 9e4043faa99609ac16d279a5f8d5fc22b23f0c8e (patch) | |
tree | 2c052847cd85fdf3ac33176a7d0109c79b518c45 /youtube_dlc/extractor/bitwave.py | |
parent | 5867a1678924ad25a4784abfa5dbd28b5b69eb67 (diff) | |
parent | 94c29091d049f48962c3e81a1b5b0237ab54827d (diff) | |
download | hypervideo-pre-9e4043faa99609ac16d279a5f8d5fc22b23f0c8e.tar.lz hypervideo-pre-9e4043faa99609ac16d279a5f8d5fc22b23f0c8e.tar.xz hypervideo-pre-9e4043faa99609ac16d279a5f8d5fc22b23f0c8e.zip |
Merge branch 'master' into rcs
Diffstat (limited to 'youtube_dlc/extractor/bitwave.py')
-rw-r--r-- | youtube_dlc/extractor/bitwave.py | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/youtube_dlc/extractor/bitwave.py b/youtube_dlc/extractor/bitwave.py new file mode 100644 index 000000000..eb16c469d --- /dev/null +++ b/youtube_dlc/extractor/bitwave.py @@ -0,0 +1,61 @@ +from __future__ import unicode_literals + +from .common import InfoExtractor + + +class BitwaveReplayIE(InfoExtractor): + IE_NAME = 'bitwave:replay' + _VALID_URL = r'https?://(?:www\.)?bitwave\.tv/(?P<user>\w+)/replay/(?P<id>\w+)/?$' + _TEST = { + 'url': 'https://bitwave.tv/RhythmicCarnage/replay/z4P6eq5L7WDrM85UCrVr', + 'only_matching': True + } + + def _real_extract(self, url): + replay_id = self._match_id(url) + replay = self._download_json( + 'https://api.bitwave.tv/v1/replays/' + replay_id, + replay_id + ) + + return { + 'id': replay_id, + 'title': replay['data']['title'], + 'uploader': replay['data']['name'], + 'uploader_id': replay['data']['name'], + 'url': replay['data']['url'], + 'thumbnails': [ + {'url': x} for x in replay['data']['thumbnails'] + ], + } + + +class BitwaveStreamIE(InfoExtractor): + IE_NAME = 'bitwave:stream' + _VALID_URL = r'https?://(?:www\.)?bitwave\.tv/(?P<id>\w+)/?$' + _TEST = { + 'url': 'https://bitwave.tv/doomtube', + 'only_matching': True + } + + def _real_extract(self, url): + username = self._match_id(url) + channel = self._download_json( + 'https://api.bitwave.tv/v1/channels/' + username, + username) + + formats = self._extract_m3u8_formats( + channel['data']['url'], username, + 'mp4') + self._sort_formats(formats) + + return { + 'id': username, + 'title': self._live_title(channel['data']['title']), + 'uploader': username, + 'uploader_id': username, + 'formats': formats, + 'thumbnail': channel['data']['thumbnail'], + 'is_live': True, + 'view_count': channel['data']['viewCount'] + } |