]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/esri.py
   2 from __future__ 
import unicode_literals
 
   6 from .common 
import InfoExtractor
 
   7 from ..compat 
import compat_urlparse
 
  15 class EsriVideoIE(InfoExtractor
): 
  16     _VALID_URL 
= r
'https?://video\.esri\.com/watch/(?P<id>[0-9]+)' 
  18         'url': 'https://video.esri.com/watch/1124/arcgis-online-_dash_-developing-applications', 
  19         'md5': 'd4aaf1408b221f1b38227a9bbaeb95bc', 
  23             'title': 'ArcGIS Online - Developing Applications', 
  24             'description': 'Jeremy Bartley demonstrates how to develop applications with ArcGIS Online.', 
  25             'thumbnail': 're:^https?://.*\.jpg$', 
  27             'upload_date': '20120419', 
  31     def _real_extract(self
, url
): 
  32         video_id 
= self
._match
_id
(url
) 
  34         webpage 
= self
._download
_webpage
(url
, video_id
) 
  37         for width
, height
, content 
in re
.findall( 
  38                 r
'(?s)<li><strong>(\d+)x(\d+):</strong>(.+?)</li>', webpage
): 
  39             for video_url
, ext
, filesize 
in re
.findall( 
  40                     r
'<a[^>]+href="([^"]+)">([^<]+) \(([^<]+)\)</a>', content
): 
  42                     'url': compat_urlparse
.urljoin(url
, video_url
), 
  44                     'format_id': '%s-%s' % (ext
.lower(), height
), 
  46                     'height': int(height
), 
  47                     'filesize_approx': parse_filesize(filesize
), 
  49         self
._sort
_formats
(formats
) 
  51         title 
= self
._html
_search
_meta
('title', webpage
, 'title') 
  52         description 
= self
._html
_search
_meta
( 
  53             'description', webpage
, 'description', fatal
=False) 
  55         thumbnail 
= self
._html
_search
_meta
('thumbnail', webpage
, 'thumbnail', fatal
=False) 
  57             thumbnail 
= re
.sub(r
'_[st]\.jpg$', '_x.jpg', thumbnail
) 
  59         duration 
= int_or_none(self
._search
_regex
( 
  60             [r
'var\s+videoSeconds\s*=\s*(\d+)', r
"'duration'\s*:\s*(\d+)"], 
  61             webpage
, 'duration', fatal
=False)) 
  63         upload_date 
= unified_strdate(self
._html
_search
_meta
( 
  64             'last-modified', webpage
, 'upload date', fatal
=None)) 
  69             'description': description
, 
  70             'thumbnail': thumbnail
, 
  72             'upload_date': upload_date
,