]>
Raphaël G. Git Repositories - youtubedl/blob - youtube_dl/extractor/dvtv.py
   2 from __future__ 
import unicode_literals
 
   6 from .common 
import InfoExtractor
 
  14 class DVTVIE(InfoExtractor
): 
  16     IE_DESC 
= 'http://video.aktualne.cz/' 
  18     _VALID_URL 
= r
'http://video\.aktualne\.cz/(?:[^/]+/)+r~(?P<id>[0-9a-f]{32})' 
  21         'url': 'http://video.aktualne.cz/dvtv/vondra-o-ceskem-stoleti-pri-pohledu-na-havla-mi-bylo-trapne/r~e5efe9ca855511e4833a0025900fea04/', 
  22         'md5': '67cb83e4a955d36e1b5d31993134a0c2', 
  24             'id': 'dc0768de855511e49e4b0025900fea04', 
  26             'title': 'Vondra o Českém století: Při pohledu na Havla mi bylo trapně', 
  29         'url': 'http://video.aktualne.cz/dvtv/stropnicky-policie-vrbetice-preventivne-nekontrolovala/r~82ed4322849211e4a10c0025900fea04/', 
  30         'md5': '6388f1941b48537dbd28791f712af8bf', 
  32             'id': '72c02230849211e49f60002590604f2e', 
  34             'title': 'Stropnický: Policie Vrbětice preventivně nekontrolovala', 
  37         'url': 'http://video.aktualne.cz/dvtv/dvtv-16-12-2014-utok-talibanu-boj-o-kliniku-uprchlici/r~973eb3bc854e11e498be002590604f2e/', 
  39             'title': 'DVTV 16. 12. 2014: útok Talibanu, boj o kliniku, uprchlíci', 
  40             'id': '973eb3bc854e11e498be002590604f2e', 
  43             'md5': 'da7ca6be4935532241fa9520b3ad91e4', 
  45                 'id': 'b0b40906854d11e4bdad0025900fea04', 
  47                 'title': 'Drtinová Veselovský TV 16. 12. 2014: Témata dne' 
  50             'md5': '5f7652a08b05009c1292317b449ffea2', 
  52                 'id': '420ad9ec854a11e4bdad0025900fea04', 
  54                 'title': 'Školní masakr možná změní boj s Talibanem, říká novinářka' 
  57             'md5': '498eb9dfa97169f409126c617e2a3d64', 
  59                 'id': '95d35580846a11e4b6d20025900fea04', 
  61                 'title': 'Boj o kliniku: Veřejný zájem, nebo právo na majetek?' 
  64             'md5': 'b8dc6b744844032dab6ba3781a7274b9', 
  66                 'id': '6fe14d66853511e4833a0025900fea04', 
  68                 'title': 'Pánek: Odmítání syrských uprchlíků je ostudou české vlády' 
  72         'url': 'http://video.aktualne.cz/v-cechach-poprve-zazni-zelenkova-zrestaurovana-mse/r~45b4b00483ec11e4883b002590604f2e/', 
  73         'only_matching': True, 
  76     def _parse_video_metadata(self
, js
, video_id
): 
  77         metadata 
= self
._parse
_json
(js
, video_id
, transform_source
=js_to_json
) 
  80         for video 
in metadata
['sources']: 
  81             ext 
= video
['type'][6:] 
  85                 'format_id': '%s-%s' % (ext
, video
['label']), 
  86                 'height': int(video
['label'].rstrip('p')), 
  90         self
._sort
_formats
(formats
) 
  93             'id': metadata
['mediaid'], 
  94             'title': unescapeHTML(metadata
['title']), 
  95             'thumbnail': self
._proto
_relative
_url
(metadata
['image'], 'http:'), 
  99     def _real_extract(self
, url
): 
 100         video_id 
= self
._match
_id
(url
) 
 102         webpage 
= self
._download
_webpage
(url
, video_id
) 
 105         item 
= self
._search
_regex
( 
 106             r
"(?s)embedData[0-9a-f]{32}\['asset'\]\s*=\s*(\{.+?\});", 
 107             webpage
, 'video', default
=None, fatal
=False) 
 110             return self
._parse
_video
_metadata
(item
, video_id
) 
 114             r
"(?s)BBX\.context\.assets\['[0-9a-f]{32}'\]\.push\(({.+?})\);", 
 121                 'title': self
._og
_search
_title
(webpage
), 
 122                 'entries': [self
._parse
_video
_metadata
(i
, video_id
) for i 
in items
] 
 125         raise ExtractorError('Could not find neither video nor playlist')