]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/groupon.py
   1 from __future__ 
import unicode_literals
 
   3 from .common 
import InfoExtractor
 
   6 class GrouponIE(InfoExtractor
): 
   7     _VALID_URL 
= r
'https?://(?:www\.)?groupon\.com/deals/(?P<id>[^/?#&]+)' 
  10         'url': 'https://www.groupon.com/deals/bikram-yoga-huntington-beach-2#ooid=tubGNycTo_9Uxg82uESj4i61EYX8nyuf', 
  12             'id': 'bikram-yoga-huntington-beach-2', 
  13             'title': '$49 for 10 Yoga Classes or One Month of Unlimited Classes at Bikram Yoga Huntington Beach ($180 Value)', 
  14             'description': 'Studio kept at 105 degrees and 40% humidity with anti-microbial and anti-slip Flotex flooring; certified instructors', 
  17             'md5': '42428ce8a00585f9bc36e49226eae7a1', 
  21                 'title': 'Bikram Yoga Huntington Beach | Orange County !tubGNycTo@9Uxg82uESj4i61EYX8nyuf', 
  22                 'description': 'md5:d41d8cd98f00b204e9800998ecf8427e', 
  24                 'upload_date': '20160405', 
  25                 'uploader_id': 'groupon', 
  26                 'uploader': 'Groupon', 
  28             'add_ie': ['Youtube'], 
  31             'skip_download': True, 
  36         'ooyala': ('ooyala:%s', 'Ooyala'), 
  37         'youtube': ('%s', 'Youtube'), 
  40     def _real_extract(self
, url
): 
  41         playlist_id 
= self
._match
_id
(url
) 
  42         webpage 
= self
._download
_webpage
(url
, playlist_id
) 
  44         payload 
= self
._parse
_json
(self
._search
_regex
( 
  45             r
'(?:var\s+|window\.)payload\s*=\s*(.*?);\n', webpage
, 'payload'), playlist_id
) 
  46         videos 
= payload
['carousel'].get('dealVideos', []) 
  49             provider 
= v
.get('provider') 
  50             video_id 
= v
.get('media') or v
.get('id') or v
.get('baseURL') 
  51             if not provider 
or not video_id
: 
  53             url_pattern
, ie_key 
= self
._PROVIDERS
.get(provider
.lower()) 
  56                     '%s: Unsupported video provider %s, skipping video' % 
  57                     (playlist_id
, provider
)) 
  59             entries
.append(self
.url_result(url_pattern 
% video_id
, ie_key
)) 
  65             'title': self
._og
_search
_title
(webpage
), 
  66             'description': self
._og
_search
_description
(webpage
),