diff options
Diffstat (limited to 'youtube_dl/extractor')
| -rw-r--r-- | youtube_dl/extractor/common.py | 10 | ||||
| -rw-r--r-- | youtube_dl/extractor/pornotube.py | 4 | ||||
| -rw-r--r-- | youtube_dl/extractor/youporn.py | 4 | ||||
| -rw-r--r-- | youtube_dl/extractor/youtube.py | 3 | 
4 files changed, 18 insertions, 3 deletions
diff --git a/youtube_dl/extractor/common.py b/youtube_dl/extractor/common.py index 69cdcdc1b..2a5a85dc6 100644 --- a/youtube_dl/extractor/common.py +++ b/youtube_dl/extractor/common.py @@ -54,6 +54,7 @@ class InfoExtractor(object):      view_count:     How many users have watched the video on the platform.      urlhandle:      [internal] The urlHandle to be used to download the file,                      like returned by urllib.request.urlopen +    age_limit:      Age restriction for the video, as an integer (years)      formats:        A list of dictionaries for each format available, it must                      be ordered from worst to best quality. Potential fields:                      * url       Mandatory. The URL of the video file @@ -318,6 +319,15 @@ class InfoExtractor(object):                                          self._og_regex('video')],                                         html, name, **kargs) +    def _rta_search(self, html): +        # See http://www.rtalabel.org/index.php?content=howtofaq#single +        if re.search(r'(?ix)<meta\s+name="rating"\s+' +                     r'     content="RTA-5042-1996-1400-1577-RTA"', +                     html): +            return 18 +        return 0 + +  class SearchInfoExtractor(InfoExtractor):      """      Base class for paged search queries extractors. diff --git a/youtube_dl/extractor/pornotube.py b/youtube_dl/extractor/pornotube.py index add76a11e..9039dff5a 100644 --- a/youtube_dl/extractor/pornotube.py +++ b/youtube_dl/extractor/pornotube.py @@ -38,6 +38,7 @@ class PornotubeIE(InfoExtractor):          VIDEO_UPLOADED_RE = r'<div class="video_added_by">Added (?P<date>[0-9\/]+) by'          upload_date = self._html_search_regex(VIDEO_UPLOADED_RE, webpage, u'upload date', fatal=False)          if upload_date: upload_date = unified_strdate(upload_date) +        age_limit = self._rta_search(webpage)          info = {'id': video_id,                  'url': video_url, @@ -45,6 +46,7 @@ class PornotubeIE(InfoExtractor):                  'upload_date': upload_date,                  'title': video_title,                  'ext': 'flv', -                'format': 'flv'} +                'format': 'flv', +                'age_restriction': age_limit}          return [info] diff --git a/youtube_dl/extractor/youporn.py b/youtube_dl/extractor/youporn.py index c85fd4b5a..e2860ec9d 100644 --- a/youtube_dl/extractor/youporn.py +++ b/youtube_dl/extractor/youporn.py @@ -51,6 +51,7 @@ class YouPornIE(InfoExtractor):          req = compat_urllib_request.Request(url)          req.add_header('Cookie', 'age_verified=1')          webpage = self._download_webpage(req, video_id) +        age_limit = self._rta_search(webpage)          # Get JSON parameters          json_params = self._search_regex(r'var currentVideo = new Video\((.*)\);', webpage, u'JSON parameters') @@ -115,7 +116,8 @@ class YouPornIE(InfoExtractor):                  'ext': extension,                  'format': format,                  'thumbnail': thumbnail, -                'description': video_description +                'description': video_description, +                'age_restriction': age_limit,              })          if self._downloader.params.get('listformats', None): diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index 1101011ea..9bcd035bd 100644 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@ -1495,7 +1495,8 @@ class YoutubeIE(YoutubeBaseInfoExtractor, SubtitlesInfoExtractor):                  'description':  video_description,                  'player_url':   player_url,                  'subtitles':    video_subtitles, -                'duration':     video_duration +                'duration':     video_duration, +                'age_restriction': 18 if age_gate else 0,              })          return results  | 
