diff options
| author | Hannu Lintala <hannu.lintala@gmail.com> | 2015-06-08 05:58:41 +0300 | 
|---|---|---|
| committer | Hannu Lintala <hannu.lintala@gmail.com> | 2015-06-12 01:03:14 +0300 | 
| commit | 99ac0390f559aa6dd09ffd8a15b9b562fda5f363 (patch) | |
| tree | 2f751e449dcd75d53530785e40210c85cff3b72b | |
| parent | 0e805e782bd05951ca3f420cf2a050e2ac3ae846 (diff) | |
[fivetv] Add extractor (Closes #5794)
| -rw-r--r-- | youtube_dl/extractor/__init__.py | 1 | ||||
| -rw-r--r-- | youtube_dl/extractor/fivetv.py | 67 | 
2 files changed, 68 insertions, 0 deletions
| diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index 67eb96057..d10275d03 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -152,6 +152,7 @@ from .fc2 import FC2IE  from .firstpost import FirstpostIE  from .firsttv import FirstTVIE  from .fivemin import FiveMinIE +from .fivetv import FiveTVIE  from .fktv import (      FKTVIE,      FKTVPosteckeIE, diff --git a/youtube_dl/extractor/fivetv.py b/youtube_dl/extractor/fivetv.py new file mode 100644 index 000000000..e47383b39 --- /dev/null +++ b/youtube_dl/extractor/fivetv.py @@ -0,0 +1,67 @@ +# coding: utf-8 +from __future__ import unicode_literals + +from .common import InfoExtractor +from ..utils import ( +    int_or_none, +) + + +class FiveTVIE(InfoExtractor): +    _VALID_URL = r'http://(?:www\.)?5-tv\.ru/[^/]*/(?P<id>\d+)' +    _TESTS = [ +        { +            'url': 'http://5-tv.ru/news/96814/', +            'md5': 'bbff554ad415ecf5416a2f48c22d9283', +            'info_dict': { +                'id': '96814', +                'ext': 'mp4', +                'title': 'Россияне выбрали имя для общенациональной платежной системы', +                'description': 'md5:a8aa13e2b7ad36789e9f77a74b6de660', +                'thumbnail': 're:^https?://.*\.jpg$', +                'width': 480, +                'height': 360, +                'duration': 180, +            }, +        }, +        { +            'url': 'http://5-tv.ru/video/1021729/', +            'md5': '299c8b72960efc9990acd2c784dc2296', +            'info_dict': { +                'id': '1021729', +                'ext': 'mp4', +                'title': '3D принтер', +                'description': 'md5:d76c736d29ef7ec5c0cf7d7c65ffcb41', +                'thumbnail': 're:^https?://.*\.jpg$', +                'width': 480, +                'height': 360, +                'duration': 180, +            }, +        }, +    ] + +    def _real_extract(self, url): +        video_id = self._match_id(url) + +        webpage = self._download_webpage(url, video_id) + +        video_link = self._search_regex( +            r'(<a.*?class="videoplayer">)', webpage, 'video link') + +        url = self._search_regex(r'href="([^"]+)"', video_link, 'video url') +        width = int_or_none(self._search_regex( +            r'width:(\d+)px', video_link, 'width', default=None, fatal=False)) +        height = int_or_none(self._search_regex( +            r'height:(\d+)px', video_link, 'height', default=None, fatal=False)) +        duration = int_or_none(self._og_search_property( +            'video:duration', webpage, 'duration')) +        return { +            'id': video_id, +            'url': url, +            'width': width, +            'height': height, +            'title': self._og_search_title(webpage), +            'description': self._og_search_description(webpage), +            'thumbnail': self._og_search_thumbnail(webpage), +            'duration': duration, +        } | 
