]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/mlb.py 
   1  from  __future__ 
import  unicode_literals
   5  from  . common 
import  InfoExtractor
  12  class  MLBIE ( InfoExtractor
):   15                          (?:[\da-z_-]+\.)*mlb\.com/   18                                  (?:.*?/)?video/(?:topic/[\da-z_-]+/)?(?:v|.*?/c-)|   20                                      shared/video/embed/(?:embed|m-internal-embed)\.html|   21                                      (?:[^/]+/)+(?:play|index)\.jsp|   25                              (?:[^/]+/)*(?P<path>[^/]+)   30              'url' :  'http://m.mlb.com/sea/video/topic/51231442/v34698933/nymsea-ackley-robs-a-home-run-with-an-amazing-catch/?c_id=sea' ,   31              'md5' :  'ff56a598c2cf411a9a38a69709e97079' ,   35                  'title' :  "Ackley's spectacular catch" ,   36                  'description' :  'md5:7f5a981eb4f3cbc8daf2aeffa2215bf0' ,   38                  'timestamp' :  1405980600 ,   39                  'upload_date' :  '20140721' ,   40                  'thumbnail' :  r
're:^https?://.*\.jpg$' ,   44              'url' :  'http://m.mlb.com/video/topic/81536970/v34496663/mianym-stanton-practices-for-the-home-run-derby' ,   45              'md5' :  'd9c022c10d21f849f49c05ae12a8a7e9' ,   49                  'title' :  'Stanton prepares for Derby' ,   50                  'description' :  'md5:d00ce1e5fd9c9069e9c13ab4faedfa57' ,   52                  'timestamp' :  1405105800 ,   53                  'upload_date' :  '20140711' ,   54                  'thumbnail' :  r
're:^https?://.*\.jpg$' ,   58              'url' :  'http://m.mlb.com/video/topic/vtp_hrd_sponsor/v34578115/hrd-cespedes-wins-2014-gillette-home-run-derby' ,   59              'md5' :  '0e6e73d509321e142409b695eadd541f' ,   63                  'title' :  'Cespedes repeats as Derby champ' ,   64                  'description' :  'md5:08df253ce265d4cf6fb09f581fafad07' ,   66                  'timestamp' :  1405399936 ,   67                  'upload_date' :  '20140715' ,   68                  'thumbnail' :  r
're:^https?://.*\.jpg$' ,   72              'url' :  'http://m.mlb.com/video/v34577915/bautista-on-derby-captaining-duties-his-performance' ,   73              'md5' :  'b8fd237347b844365d74ea61d4245967' ,   77                  'title' :  'Bautista on Home Run Derby' ,   78                  'description' :  'md5:b80b34031143d0986dddc64a8839f0fb' ,   80                  'timestamp' :  1405390722 ,   81                  'upload_date' :  '20140715' ,   82                  'thumbnail' :  r
're:^https?://.*\.jpg$' ,   86              'url' :  'http://m.mlb.com/news/article/118550098/blue-jays-kevin-pillar-goes-spidey-up-the-wall-to-rob-tim-beckham-of-a-homer' ,   87              'md5' :  'aafaf5b0186fee8f32f20508092f8111' ,   91                  'title' :  'Must C: Pillar climbs for catch' ,   92                  'description' :  '4/15/15: Blue Jays outfielder Kevin Pillar continues his defensive dominance by climbing the wall in left to rob Tim Beckham of a home run' ,   93                  'timestamp' :  1429124820 ,   94                  'upload_date' :  '20150415' ,   98              'url' :  'https://www.mlb.com/video/hargrove-homers-off-caldwell/c-1352023483?tid=67793694' ,   99              'only_matching' :  True ,  102              'url' :  'http://m.mlb.com/shared/video/embed/embed.html?content_id=35692085&topic_id=6479266&width=400&height=224&property=mlb' ,  103              'only_matching' :  True ,  106              'url' :  'http://mlb.mlb.com/shared/video/embed/embed.html?content_id=36599553' ,  107              'only_matching' :  True ,  110              'url' :  'http://mlb.mlb.com/es/video/play.jsp?content_id=36599553' ,  111              'only_matching' :  True ,  114              'url' :  'http://m.cardinals.mlb.com/stl/video/v51175783/atlstl-piscotty-makes-great-sliding-catch-on-line/?partnerId=as_mlb_20150321_42500876&adbid=579409712979910656&adbpl=tw&adbpr=52847728' ,  115              'only_matching' :  True ,  118              # From http://m.mlb.com/news/article/118550098/blue-jays-kevin-pillar-goes-spidey-up-the-wall-to-rob-tim-beckham-of-a-homer  119              'url' :  'http://mlb.mlb.com/shared/video/embed/m-internal-embed.html?content_id=75609783&property=mlb&autoplay=true&hashmode=false&siteSection=mlb/multimedia/article_118550098/article_embed&club=mlb' ,  120              'only_matching' :  True ,  123              'url' :  'http://washington.nationals.mlb.com/mlb/gameday/index.jsp?c_id=was&gid=2015_05_09_atlmlb_wasmlb_1&lang=en&content_id=108309983&mode=video#' ,  124              'only_matching' :  True ,  128      def  _real_extract ( self
,  url
):  129          mobj 
=  re
. match ( self
._ VALID
_U RL
,  url
)  130          video_id 
=  mobj
. group ( 'id' )  133              video_path 
=  mobj
. group ( 'path' )  134              webpage 
=  self
._ download
_ webpage
( url
,  video_path
)  135              video_id 
=  self
._ search
_ regex
(  136                  [ r
'data-video-?id="(\d+)"' ,  r
'content_id=(\d+)' ],  webpage
,  'video id' )  138          detail 
=  self
._ download
_ xml
(  139              'http://m.mlb.com/gen/multimedia/detail/ %s / %s / %s / %s .xml'  140              % ( video_id
[- 3 ],  video_id
[- 2 ],  video_id
[- 1 ],  video_id
),  video_id
)  142          title 
=  detail
. find ( './headline' ). text
 143          description 
=  detail
. find ( './big-blurb' ). text
 144          duration 
=  parse_duration ( detail
. find ( './duration' ). text
)  145          timestamp 
=  parse_iso8601 ( detail
. attrib
[ 'date' ][:- 5 ])  148              'url' :  thumbnail
. text
,  149          }  for  thumbnail 
in  detail
. findall ( './thumbnailScenarios/thumbnailScenario' )]  152          for  media_url 
in  detail
. findall ( './url' ):  153              playback_scenario 
=  media_url
. attrib
[ 'playback_scenario' ]  155                  'url' :  media_url
. text
,  156                  'format_id' :  playback_scenario
,  158              m 
=  re
. search ( r
'(?P<vbr>\d+)K_(?P<width>\d+)X(?P<height>\d+)' ,  playback_scenario
)  161                      'vbr' :  int ( m
. group ( 'vbr' )) *  1000 ,  162                      'width' :  int ( m
. group ( 'width' )),  163                      'height' :  int ( m
. group ( 'height' )),  167          self
._ sort
_ formats
( formats
)  172              'description' :  description
,  173              'duration' :  duration
,  174              'timestamp' :  timestamp
,  176              'thumbnails' :  thumbnails
,