mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 06:35:12 +00:00 
			
		
		
		
	Allow users to specify an age limit (fixes #1545)
With these changes, users can now restrict what videos are downloaded by the intented audience, by specifying their age with --age-limit YEARS . Add rudimentary support in youtube, pornotube, and youporn.
This commit is contained in:
		
							
								
								
									
										53
									
								
								test/test_age_restriction.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								test/test_age_restriction.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| #!/usr/bin/env python | ||||
|  | ||||
| import sys | ||||
| import unittest | ||||
|  | ||||
| # Allow direct execution | ||||
| import os | ||||
| sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) | ||||
|  | ||||
| from youtube_dl import YoutubeDL | ||||
| from helper import try_rm | ||||
|  | ||||
|  | ||||
| def _download_restricted(url, filename, age): | ||||
|     """ Returns true iff the file has been downloaded """ | ||||
|  | ||||
|     params = { | ||||
|         'age_limit': age, | ||||
|         'skip_download': True, | ||||
|         'writeinfojson': True, | ||||
|         "outtmpl": "%(id)s.%(ext)s", | ||||
|     } | ||||
|     ydl = YoutubeDL(params) | ||||
|     ydl.add_default_info_extractors() | ||||
|     json_filename = filename + '.info.json' | ||||
|     try_rm(json_filename) | ||||
|     ydl.download([url]) | ||||
|     res = os.path.exists(json_filename) | ||||
|     try_rm(json_filename) | ||||
|     return res | ||||
|  | ||||
|  | ||||
| class TestAgeRestriction(unittest.TestCase): | ||||
|     def _assert_restricted(self, url, filename, age, old_age=None): | ||||
|         self.assertTrue(_download_restricted(url, filename, old_age)) | ||||
|         self.assertFalse(_download_restricted(url, filename, age)) | ||||
|  | ||||
|     def test_youtube(self): | ||||
|         self._assert_restricted('07FYdnEawAQ', '07FYdnEawAQ.mp4', 10) | ||||
|  | ||||
|     def test_youporn(self): | ||||
|         self._assert_restricted( | ||||
|             'http://www.youporn.com/watch/505835/sex-ed-is-it-safe-to-masturbate-daily/', | ||||
|             '505835.mp4', 2, old_age=25) | ||||
|  | ||||
|     def test_pornotube(self): | ||||
|         self._assert_restricted( | ||||
|             'http://pornotube.com/c/173/m/1689755/Marilyn-Monroe-Bathing', | ||||
|             '1689755.flv', 13) | ||||
|  | ||||
|  | ||||
| if __name__ == '__main__': | ||||
|     unittest.main() | ||||
		Reference in New Issue
	
	Block a user
	 Philipp Hagemeister
					Philipp Hagemeister