youtube-dl

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

test_age_restriction.py (1379B)


      1 #!/usr/bin/env python
      2 from __future__ import unicode_literals
      3 
      4 # Allow direct execution
      5 import os
      6 import sys
      7 import unittest
      8 sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
      9 
     10 from test.helper import try_rm
     11 
     12 
     13 from youtube_dl import YoutubeDL
     14 
     15 
     16 def _download_restricted(url, filename, age):
     17     """ Returns true if the file has been downloaded """
     18 
     19     params = {
     20         'age_limit': age,
     21         'skip_download': True,
     22         'writeinfojson': True,
     23         'outtmpl': '%(id)s.%(ext)s',
     24     }
     25     ydl = YoutubeDL(params)
     26     ydl.add_default_info_extractors()
     27     json_filename = os.path.splitext(filename)[0] + '.info.json'
     28     try_rm(json_filename)
     29     ydl.download([url])
     30     res = os.path.exists(json_filename)
     31     try_rm(json_filename)
     32     return res
     33 
     34 
     35 class TestAgeRestriction(unittest.TestCase):
     36     def _assert_restricted(self, url, filename, age, old_age=None):
     37         self.assertTrue(_download_restricted(url, filename, old_age))
     38         self.assertFalse(_download_restricted(url, filename, age))
     39 
     40     def test_youtube(self):
     41         self._assert_restricted('07FYdnEawAQ', '07FYdnEawAQ.mp4', 10)
     42 
     43     def test_youporn(self):
     44         self._assert_restricted(
     45             'http://www.youporn.com/watch/505835/sex-ed-is-it-safe-to-masturbate-daily/',
     46             '505835.mp4', 2, old_age=25)
     47 
     48 
     49 if __name__ == '__main__':
     50     unittest.main()