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