]>
Raphaël G. Git Repositories - youtubedl/blob - youtube_dl/extractor/r7.py
   2 from __future__ 
import unicode_literals
 
   4 from .common 
import InfoExtractor
 
   5 from ..utils 
import int_or_none
 
   8 class R7IE(InfoExtractor
): 
  12                             (?:[a-zA-Z]+)\.r7\.com(?:/[^/]+)+/idmedia/| 
  13                             noticias\.r7\.com(?:/[^/]+)+/[^/]+-| 
  14                             player\.r7\.com/video/i/ 
  19         'url': 'http://videos.r7.com/policiais-humilham-suspeito-a-beira-da-morte-morre-com-dignidade-/idmedia/54e7050b0cf2ff57e0279389.html', 
  20         'md5': '403c4e393617e8e8ddc748978ee8efde', 
  22             'id': '54e7050b0cf2ff57e0279389', 
  24             'title': 'Policiais humilham suspeito à beira da morte: "Morre com dignidade"', 
  25             'description': 'md5:01812008664be76a6479aa58ec865b72', 
  26             'thumbnail': r
're:^https?://.*\.jpg$', 
  32         'url': 'http://esportes.r7.com/videos/cigano-manda-recado-aos-fas/idmedia/4e176727b51a048ee6646a1b.html', 
  33         'only_matching': True, 
  35         'url': 'http://noticias.r7.com/record-news/video/representante-do-instituto-sou-da-paz-fala-sobre-fim-do-estatuto-do-desarmamento-5480fc580cf2285b117f438d/', 
  36         'only_matching': True, 
  38         'url': 'http://player.r7.com/video/i/54e7050b0cf2ff57e0279389?play=true&video=http://vsh.r7.com/54e7050b0cf2ff57e0279389/ER7_RE_BG_MORTE_JOVENS_570kbps_2015-02-2009f17818-cc82-4c8f-86dc-89a66934e633-ATOS_copy.mp4&linkCallback=http://videos.r7.com/policiais-humilham-suspeito-a-beira-da-morte-morre-com-dignidade-/idmedia/54e7050b0cf2ff57e0279389.html&thumbnail=http://vtb.r7.com/ER7_RE_BG_MORTE_JOVENS_570kbps_2015-02-2009f17818-cc82-4c8f-86dc-89a66934e633-thumb.jpg&idCategory=192&share=true&layout=full&full=true', 
  39         'only_matching': True, 
  42     def _real_extract(self
, url
): 
  43         video_id 
= self
._match
_id
(url
) 
  45         video 
= self
._download
_json
( 
  46             'http://player-api.r7.com/video/i/%s' % video_id
, video_id
) 
  48         title 
= video
['title'] 
  51         media_url_hls 
= video
.get('media_url_hls') 
  53             formats
.extend(self
._extract
_m
3u8_formats
( 
  54                 media_url_hls
, video_id
, 'mp4', entry_protocol
='m3u8_native', 
  55                 m3u8_id
='hls', fatal
=False)) 
  56         media_url 
= video
.get('media_url') 
  62             # m3u8 format always matches the http format, let's copy metadata from 
  64             m3u8_formats 
= list(filter( 
  65                 lambda f
: f
.get('vcodec') != 'none', formats
)) 
  66             if len(m3u8_formats
) == 1: 
  67                 f_copy 
= m3u8_formats
[0].copy() 
  69                 f_copy
['protocol'] = 'http' 
  72         self
._sort
_formats
(formats
) 
  74         description 
= video
.get('description') 
  75         thumbnail 
= video
.get('thumb') 
  76         duration 
= int_or_none(video
.get('media_duration')) 
  77         like_count 
= int_or_none(video
.get('likes')) 
  78         view_count 
= int_or_none(video
.get('views')) 
  83             'description': description
, 
  84             'thumbnail': thumbnail
, 
  86             'like_count': like_count
, 
  87             'view_count': view_count
, 
  92 class R7ArticleIE(InfoExtractor
): 
  93     _VALID_URL 
= r
'https?://(?:[a-zA-Z]+)\.r7\.com/(?:[^/]+/)+[^/?#&]+-(?P<id>\d+)' 
  95         'url': 'http://tv.r7.com/record-play/balanco-geral/videos/policiais-humilham-suspeito-a-beira-da-morte-morre-com-dignidade-16102015', 
  96         'only_matching': True, 
 100     def suitable(cls
, url
): 
 101         return False if R7IE
.suitable(url
) else super(R7ArticleIE
, cls
).suitable(url
) 
 103     def _real_extract(self
, url
): 
 104         display_id 
= self
._match
_id
(url
) 
 106         webpage 
= self
._download
_webpage
(url
, display_id
) 
 108         video_id 
= self
._search
_regex
( 
 109             r
'<div[^>]+(?:id=["\']player
-|
class=["\']embed["\'][^
>]+id=["\'])([\da-f]{24})', 
 112         return self.url_result('http://player.r7.com/video/i/%s' % video_id, R7IE.ie_key())