]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/ufctv.py 
   2  from  __future__ 
import  unicode_literals
   4  from  . common 
import  InfoExtractor
  11  class  UFCTVIE ( InfoExtractor
):   12      _VALID_URL 
=  r
'https?://(?:www\.)?ufc\.tv/video/(?P<id>[^/]+)'   14          'url' :  'https://www.ufc.tv/video/ufc-219-countdown-full-episode' ,   18              'title' :  'UFC 219 Countdown: Full Episode' ,   19              'description' :  'md5:26d4e8bf4665ae5878842d7050c3c646' ,   20              'timestamp' :  1513962360 ,   21              'upload_date' :  '20171222' ,   25              'skip_download' :  True ,   29      def  _real_extract ( self
,  url
):   30          display_id 
=  self
._ match
_ id
( url
)   31          video_data 
=  self
._ download
_ json
( url
,  display_id
,  query
={   34          video_id 
=  str ( video_data
[ 'id' ])   35          title 
=  video_data
[ 'name' ]   36          m3u8_url 
=  self
._ download
_ json
(   37              'https://www.ufc.tv/service/publishpoint' ,  video_id
,  query
={   42                  'User-Agent' :  'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0_1 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A402 Safari/604.1' ,   44          m3u8_url 
=  m3u8_url
. replace ( '_iphone.' ,  '.' )   45          formats 
=  self
._ extract
_ m
3u8_ formats
( m3u8_url
,  video_id
,  'mp4' )   46          self
._ sort
_ formats
( formats
)   51              'description' :  video_data
. get ( 'description' ),   52              'duration' :  parse_duration ( video_data
. get ( 'runtime' )),   53              'timestamp' :  parse_iso8601 ( video_data
. get ( 'releaseDate' )),