]> jfr.im git - yt-dlp.git/blame - yt_dlp/extractor/odatv.py
[ie/lbry] Add playlist support (#8213)
[yt-dlp.git] / yt_dlp / extractor / odatv.py
CommitLineData
740d7c49 1from .common import InfoExtractor
2from ..utils import (
3 ExtractorError,
790b06b7 4 NO_DEFAULT,
740d7c49 5 remove_start
6)
740d7c49 7
8
9class OdaTVIE(InfoExtractor):
790b06b7 10 _VALID_URL = r'https?://(?:www\.)?odatv\.com/(?:mob|vid)_video\.php\?.*\bid=(?P<id>[^&]+)'
740d7c49 11 _TESTS = [{
12 'url': 'http://odatv.com/vid_video.php?id=8E388',
13 'md5': 'dc61d052f205c9bf2da3545691485154',
14 'info_dict': {
15 'id': '8E388',
16 'ext': 'mp4',
790b06b7 17 'title': 'Artık Davutoğlu ile devam edemeyiz'
740d7c49 18 }
19 }, {
790b06b7 20 # mobile URL
740d7c49 21 'url': 'http://odatv.com/mob_video.php?id=8E388',
790b06b7 22 'only_matching': True,
740d7c49 23 }, {
790b06b7 24 # no video
740d7c49 25 'url': 'http://odatv.com/mob_video.php?id=8E900',
790b06b7 26 'only_matching': True,
740d7c49 27 }]
28
29 def _real_extract(self, url):
30 video_id = self._match_id(url)
31 webpage = self._download_webpage(url, video_id)
790b06b7
S
32
33 no_video = 'NO VIDEO!' in webpage
34
35 video_url = self._search_regex(
36 r'mp4\s*:\s*(["\'])(?P<url>http.+?)\1', webpage, 'video url',
37 default=None if no_video else NO_DEFAULT, group='url')
38
39 if no_video:
740d7c49 40 raise ExtractorError('Video %s does not exist' % video_id, expected=True)
41
42 return {
43 'id': video_id,
790b06b7 44 'url': video_url,
740d7c49 45 'title': remove_start(self._og_search_title(webpage), 'Video: '),
46 'thumbnail': self._og_search_thumbnail(webpage),
740d7c49 47 }