]> jfr.im git - yt-dlp.git/blame - youtube_dl/extractor/keek.py
[pluralsight] Rephrase
[yt-dlp.git] / youtube_dl / extractor / keek.py
CommitLineData
f30e9976 1# coding: utf-8
5aaca50d
JMF
2from __future__ import unicode_literals
3
2c64df03
PH
4from .common import InfoExtractor
5
6
7class KeekIE(InfoExtractor):
e13b9e78 8 _VALID_URL = r'https?://(?:www\.)?keek\.com/keek/(?P<id>\w+)'
5aaca50d 9 IE_NAME = 'keek'
6f5ac90c 10 _TEST = {
e13b9e78 11 'url': 'https://www.keek.com/keek/NODfbab',
12 'md5': '9b0636f8c0f7614afa4ea5e4c6e57e83',
5aaca50d 13 'info_dict': {
7129bed5
PH
14 'id': 'NODfbab',
15 'ext': 'mp4',
926fb62e 16 'title': 'md5:35d42050a3ece241d5ddd7fdcc6fd896',
6a24cb3d 17 'uploader': 'ytdl',
18 'uploader_id': 'eGT5bab',
5aaca50d 19 },
6f5ac90c 20 }
2c64df03
PH
21
22 def _real_extract(self, url):
7129bed5 23 video_id = self._match_id(url)
2c64df03 24
2c64df03
PH
25 webpage = self._download_webpage(url, video_id)
26
5aaca50d
JMF
27 return {
28 'id': video_id,
e13b9e78 29 'url': self._og_search_video_url(webpage),
5aaca50d 30 'ext': 'mp4',
86692c01 31 'title': self._og_search_description(webpage).strip(),
e13b9e78 32 'thumbnail': self._og_search_thumbnail(webpage),
1ab1c4ef
S
33 'uploader': self._search_regex(
34 r'data-username=(["\'])(?P<uploader>.+?)\1', webpage,
35 'uploader', fatal=False, group='uploader'),
36 'uploader_id': self._search_regex(
37 r'data-user-id=(["\'])(?P<uploader_id>.+?)\1', webpage,
38 'uploader id', fatal=False, group='uploader_id'),
2c64df03 39 }