diff options
| author | Philipp Hagemeister <phihag@phihag.de> | 2014-02-04 10:21:42 +0100 | 
|---|---|---|
| committer | Philipp Hagemeister <phihag@phihag.de> | 2014-02-04 10:21:42 +0100 | 
| commit | c79ef8e1ae2868ea02257ed4e3accb9d58df3f2d (patch) | |
| tree | 41d44b76fafd5c7355e4e033508a84e24b9e59d6 | |
| parent | 58d915df51ce1db2eacdf1ded02fa9338b565a6f (diff) | |
| parent | 7881a6449901d2cf22b58c00ff057a979f6d2e2a (diff) | |
Merge remote-tracking branch 'pulpe/_iprima'
| -rw-r--r-- | youtube_dl/extractor/__init__.py | 1 | ||||
| -rw-r--r-- | youtube_dl/extractor/iprima.py | 83 | 
2 files changed, 84 insertions, 0 deletions
| diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index 073f3a0d1..a8d5a9cb8 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -96,6 +96,7 @@ from .ina import InaIE  from .infoq import InfoQIE  from .instagram import InstagramIE  from .internetvideoarchive import InternetVideoArchiveIE +from .iprima import IPrimaIE  from .ivi import (      IviIE,      IviCompilationIE diff --git a/youtube_dl/extractor/iprima.py b/youtube_dl/extractor/iprima.py new file mode 100644 index 000000000..95557ff10 --- /dev/null +++ b/youtube_dl/extractor/iprima.py @@ -0,0 +1,83 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +import re +from random import random +from math import floor + +from .common import InfoExtractor +from ..utils import compat_urllib_request + + +class IPrimaIE(InfoExtractor): +    _VALID_URL = r'https?://play\.iprima\.cz/(?P<videogroup>.+)/(?P<videoid>.+)' + +    _TESTS = [{ +        'url': 'http://play.iprima.cz/particka/particka-92', +        'info_dict': { +            'id': '39152', +            'ext': 'flv', +            'title': 'Partička (92)', +            'description': 'md5:3740fda51464da35a2d4d0670b8e4fd6', +            'thumbnail': 'http://play.iprima.cz/sites/default/files/image_crops/image_620x349/3/491483_particka-92_image_620x349.jpg', +        }, +        'params': { +            'skip_download': True, +        }, +    }, +    ] + +    def _real_extract(self, url): +        mobj = re.match(self._VALID_URL, url) +        video_id = mobj.group('videoid') + +        webpage = self._download_webpage(url, video_id) + +        player_url = 'http://embed.livebox.cz/iprimaplay/player-embed-v2.js?__tok%s__=%s' % ( +                         floor(random()*1073741824), +                         floor(random()*1073741824)) + +        req = compat_urllib_request.Request(player_url) +        req.add_header('Referer', url) +        playerpage = self._download_webpage(req, video_id) + +        base_url = ''.join(re.findall(r"embed\['stream'\] = '(.+?)'.+'(\?auth=)'.+'(.+?)';", playerpage)[1]) + +        zoneGEO = self._html_search_regex(r'"zoneGEO":(.+?),', webpage, 'zoneGEO') + +        if zoneGEO != '0': +            base_url = base_url.replace('token', 'token_'+zoneGEO) + +        formats = [] +        for format_id in ['lq', 'hq', 'hd']: +            filename = self._html_search_regex(r'"%s_id":(.+?),' % format_id, webpage, 'filename') + +            if filename == 'null': +                continue + +            real_id = self._search_regex(r'Prima-[0-9]{10}-([0-9]+)_', filename, 'real video id') + +            if format_id == 'lq': +                quality = 0 +            elif format_id == 'hq': +                quality = 1 +            elif format_id == 'hd': +                quality = 2 +                filename = 'hq/'+filename + +            formats.append({ +                'format_id': format_id, +                'url': base_url, +                'quality': quality, +                'play_path': 'mp4:'+filename.replace('"', '')[:-4], +                'rtmp_live': True, +                'ext': 'flv', +                }) + +        return { +            'id': real_id, +            'title': self._og_search_title(webpage), +            'thumbnail': self._og_search_thumbnail(webpage), +            'formats': formats, +            'description': self._og_search_description(webpage), +        }
\ No newline at end of file | 
