[ynet] Remove unused stuff, simplify and improve
[youtube-dl] / youtube_dl / extractor / ynet.py
1 # coding: utf-8
2 from __future__ import unicode_literals
3
4 import re
5 import json
6
7 from .common import InfoExtractor
8 from ..utils import compat_urllib_parse
9
10
11 class YnetIE(InfoExtractor):
12     _VALID_URL = r'http://.*ynet\.co\.il/.*/0,7340,(?P<id>L(?:-[0-9]+)+),00\.html'
13     _TESTS = [
14         {
15             'url': 'http://hot.ynet.co.il/home/0,7340,L-11659-99244,00.html',
16             'md5': '002b44ee2f33d50363a1c153bed524cf',
17             'info_dict': {
18                 'id': 'L-11659-99244',
19                 'ext': 'flv',
20                 'title': 'איש לא יודע מאיפה באנו',
21                 'thumbnail': 're:^https?://.*\.jpg',
22             }
23         }, {
24             'url': 'http://hot.ynet.co.il/home/0,7340,L-8859-84418,00.html',
25             'md5': '6455046ae1b48cf7e2b7cae285e53a16',
26             'info_dict': {
27                 'id': 'L-8859-84418',
28                 'ext': 'flv',
29                 'title': "צפו: הנשיקה הלוהטת של תורגי' ויוליה פלוטקין",
30                 'thumbnail': 're:^https?://.*\.jpg',
31             }
32         }
33     ]
34
35     def _real_extract(self, url):
36         mobj = re.match(self._VALID_URL, url)
37         video_id = mobj.group('id')
38         
39         webpage = self._download_webpage(url, video_id)
40
41         content = compat_urllib_parse.unquote_plus(self._og_search_video_url(webpage))
42         config = json.loads(self._search_regex(r'config=({.+?})$', content, 'video config'))
43         f4m_url = config['clip']['url']
44         title = self._og_search_title(webpage)
45         m = re.search(r'ynet - HOT -- (["\']+)(?P<title>.+?)\1', title)
46         if m:
47             title = m.group('title')
48
49         return {
50             'id': video_id,
51             'title': title,
52             'formats': self._extract_f4m_formats(f4m_url, video_id),
53             'thumbnail': self._og_search_thumbnail(webpage),
54         }