diff options
| author | Remita Amine <remitamine@gmail.com> | 2021-02-08 09:20:28 +0100 | 
|---|---|---|
| committer | Remita Amine <remitamine@gmail.com> | 2021-02-08 09:20:28 +0100 | 
| commit | 99c68db0a8adc634e2e928ea2756a2ceee3ae863 (patch) | |
| tree | 0617195d95b4c39e718c00e29b9c2c32679643d0 /test | |
| parent | 5fc53690cbe6abb11941a3f4846b566a7472753e (diff) | |
[youtube] add support phone/tablet JS player(closes #26424)
Diffstat (limited to 'test')
| -rw-r--r-- | test/test_youtube_signature.py | 31 | 
1 files changed, 10 insertions, 21 deletions
| diff --git a/test/test_youtube_signature.py b/test/test_youtube_signature.py index b5a4d0d5f..627d4cb92 100644 --- a/test/test_youtube_signature.py +++ b/test/test_youtube_signature.py @@ -19,55 +19,46 @@ from youtube_dl.compat import compat_str, compat_urlretrieve  _TESTS = [      (          'https://s.ytimg.com/yts/jsbin/html5player-vflHOr_nV.js', -        'js',          86,          '>=<;:/.-[+*)(\'&%$#"!ZYX0VUTSRQPONMLKJIHGFEDCBA\\yxwvutsrqponmlkjihgfedcba987654321',      ),      (          'https://s.ytimg.com/yts/jsbin/html5player-vfldJ8xgI.js', -        'js',          85,          '3456789a0cdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRS[UVWXYZ!"#$%&\'()*+,-./:;<=>?@',      ),      (          'https://s.ytimg.com/yts/jsbin/html5player-vfle-mVwz.js', -        'js',          90,          ']\\[@?>=<;:/.-,+*)(\'&%$#"hZYXWVUTSRQPONMLKJIHGFEDCBAzyxwvutsrqponmlkjiagfedcb39876',      ),      (          'https://s.ytimg.com/yts/jsbin/html5player-en_US-vfl0Cbn9e.js', -        'js',          84,          'O1I3456789abcde0ghijklmnopqrstuvwxyzABCDEFGHfJKLMN2PQRSTUVW@YZ!"#$%&\'()*+,-./:;<=',      ),      (          'https://s.ytimg.com/yts/jsbin/html5player-en_US-vflXGBaUN.js', -        'js',          '2ACFC7A61CA478CD21425E5A57EBD73DDC78E22A.2094302436B2D377D14A3BBA23022D023B8BC25AA',          'A52CB8B320D22032ABB3A41D773D2B6342034902.A22E87CDD37DBE75A5E52412DC874AC16A7CFCA2',      ),      (          'https://s.ytimg.com/yts/jsbin/html5player-en_US-vflBb0OQx.js', -        'js',          84,          '123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQ0STUVWXYZ!"#$%&\'()*+,@./:;<=>'      ),      (          'https://s.ytimg.com/yts/jsbin/html5player-en_US-vfl9FYC6l.js', -        'js',          83,          '123456789abcdefghijklmnopqr0tuvwxyzABCDETGHIJKLMNOPQRS>UVWXYZ!"#$%&\'()*+,-./:;<=F'      ),      (          'https://s.ytimg.com/yts/jsbin/html5player-en_US-vflCGk6yw/html5player.js', -        'js',          '4646B5181C6C3020DF1D9C7FCFEA.AD80ABF70C39BD369CCCAE780AFBB98FA6B6CB42766249D9488C288',          '82C8849D94266724DC6B6AF89BBFA087EACCD963.B93C07FBA084ACAEFCF7C9D1FD0203C6C1815B6B'      ),      (          'https://s.ytimg.com/yts/jsbin/html5player-en_US-vflKjOTVq/html5player.js', -        'js',          '312AA52209E3623129A412D56A40F11CB0AF14AE.3EE09501CB14E3BCDC3B2AE808BF3F1D14E7FBF12',          '112AA5220913623229A412D56A40F11CB0AF14AE.3EE0950FCB14EEBCDC3B2AE808BF331D14E7FBF3',      ) @@ -78,6 +69,10 @@ class TestPlayerInfo(unittest.TestCase):      def test_youtube_extract_player_info(self):          PLAYER_URLS = (              ('https://www.youtube.com/s/player/64dddad9/player_ias.vflset/en_US/base.js', '64dddad9'), +            ('https://www.youtube.com/s/player/64dddad9/player_ias.vflset/fr_FR/base.js', '64dddad9'), +            ('https://www.youtube.com/s/player/64dddad9/player-plasma-ias-phone-en_US.vflset/base.js', '64dddad9'), +            ('https://www.youtube.com/s/player/64dddad9/player-plasma-ias-phone-de_DE.vflset/base.js', '64dddad9'), +            ('https://www.youtube.com/s/player/64dddad9/player-plasma-ias-tablet-en_US.vflset/base.js', '64dddad9'),              # obsolete              ('https://www.youtube.com/yts/jsbin/player_ias-vfle4-e03/en_US/base.js', 'vfle4-e03'),              ('https://www.youtube.com/yts/jsbin/player_ias-vfl49f_g4/en_US/base.js', 'vfl49f_g4'), @@ -100,13 +95,13 @@ class TestSignature(unittest.TestCase):              os.mkdir(self.TESTDATA_DIR) -def make_tfunc(url, stype, sig_input, expected_sig): +def make_tfunc(url, sig_input, expected_sig):      m = re.match(r'.*-([a-zA-Z0-9_-]+)(?:/watch_as3|/html5player)?\.[a-z]+$', url)      assert m, '%r should follow URL format' % url      test_id = m.group(1)      def test_func(self): -        basename = 'player-%s.%s' % (test_id, stype) +        basename = 'player-%s.js' % test_id          fn = os.path.join(self.TESTDATA_DIR, basename)          if not os.path.exists(fn): @@ -114,22 +109,16 @@ def make_tfunc(url, stype, sig_input, expected_sig):          ydl = FakeYDL()          ie = YoutubeIE(ydl) -        if stype == 'js': -            with io.open(fn, encoding='utf-8') as testf: -                jscode = testf.read() -            func = ie._parse_sig_js(jscode) -        else: -            assert stype == 'swf' -            with open(fn, 'rb') as testf: -                swfcode = testf.read() -            func = ie._parse_sig_swf(swfcode) +        with io.open(fn, encoding='utf-8') as testf: +            jscode = testf.read() +        func = ie._parse_sig_js(jscode)          src_sig = (              compat_str(string.printable[:sig_input])              if isinstance(sig_input, int) else sig_input)          got_sig = func(src_sig)          self.assertEqual(got_sig, expected_sig) -    test_func.__name__ = str('test_signature_' + stype + '_' + test_id) +    test_func.__name__ = str('test_signature_js_' + test_id)      setattr(TestSignature, test_func.__name__, test_func) | 
