youtube-dl

Another place where youtube-dl lives on
git clone git://git.oshgnacknak.de/youtube-dl.git
Log | Files | Refs | README | LICENSE

behindkink.py (1647B)


      1 # coding: utf-8
      2 from __future__ import unicode_literals
      3 
      4 import re
      5 
      6 from .common import InfoExtractor
      7 from ..utils import url_basename
      8 
      9 
     10 class BehindKinkIE(InfoExtractor):
     11     _VALID_URL = r'https?://(?:www\.)?behindkink\.com/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[0-9]{2})/(?P<id>[^/#?_]+)'
     12     _TEST = {
     13         'url': 'http://www.behindkink.com/2014/12/05/what-are-you-passionate-about-marley-blaze/',
     14         'md5': '507b57d8fdcd75a41a9a7bdb7989c762',
     15         'info_dict': {
     16             'id': '37127',
     17             'ext': 'mp4',
     18             'title': 'What are you passionate about – Marley Blaze',
     19             'description': 'md5:aee8e9611b4ff70186f752975d9b94b4',
     20             'upload_date': '20141205',
     21             'thumbnail': 'http://www.behindkink.com/wp-content/uploads/2014/12/blaze-1.jpg',
     22             'age_limit': 18,
     23         }
     24     }
     25 
     26     def _real_extract(self, url):
     27         mobj = re.match(self._VALID_URL, url)
     28         display_id = mobj.group('id')
     29 
     30         webpage = self._download_webpage(url, display_id)
     31 
     32         video_url = self._search_regex(
     33             r'<source src="([^"]+)"', webpage, 'video URL')
     34         video_id = url_basename(video_url).split('_')[0]
     35         upload_date = mobj.group('year') + mobj.group('month') + mobj.group('day')
     36 
     37         return {
     38             'id': video_id,
     39             'display_id': display_id,
     40             'url': video_url,
     41             'title': self._og_search_title(webpage),
     42             'thumbnail': self._og_search_thumbnail(webpage),
     43             'description': self._og_search_description(webpage),
     44             'upload_date': upload_date,
     45             'age_limit': 18,
     46         }