mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-11-04 08:35:12 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			55 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
#!/usr/bin/env python
 | 
						|
 | 
						|
# Allow direct execution
 | 
						|
import os
 | 
						|
import sys
 | 
						|
import unittest
 | 
						|
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
 | 
						|
 | 
						|
from test.helper import try_rm
 | 
						|
 | 
						|
 | 
						|
from youtube_dl import YoutubeDL
 | 
						|
 | 
						|
 | 
						|
def _download_restricted(url, filename, age):
 | 
						|
    """ Returns true if 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 = os.path.splitext(filename)[0] + '.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()
 |