mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-11-04 08:35:12 +00:00 
			
		
		
		
	Use a dictionary for storing the subtitles
The errors while getting the subtitles are reported as warnings, if no subtitles are found return and empty dict.
This commit is contained in:
		@@ -35,47 +35,47 @@ class TestYoutubeSubtitles(unittest.TestCase):
 | 
			
		||||
        DL.params['writesubtitles'] = True
 | 
			
		||||
        IE = YoutubeIE(DL)
 | 
			
		||||
        info_dict = IE.extract('QRS8MkLhQmM')
 | 
			
		||||
        sub = info_dict[0]['subtitles'][0]
 | 
			
		||||
        self.assertEqual(md5(sub[2]), '4cd9278a35ba2305f47354ee13472260')
 | 
			
		||||
        sub = info_dict[0]['subtitles']['en']
 | 
			
		||||
        self.assertEqual(md5(sub), '4cd9278a35ba2305f47354ee13472260')
 | 
			
		||||
    def test_youtube_subtitles_it(self):
 | 
			
		||||
        DL = FakeYDL()
 | 
			
		||||
        DL.params['writesubtitles'] = True
 | 
			
		||||
        DL.params['subtitleslang'] = 'it'
 | 
			
		||||
        IE = YoutubeIE(DL)
 | 
			
		||||
        info_dict = IE.extract('QRS8MkLhQmM')
 | 
			
		||||
        sub = info_dict[0]['subtitles'][0]
 | 
			
		||||
        self.assertEqual(md5(sub[2]), '164a51f16f260476a05b50fe4c2f161d')
 | 
			
		||||
        sub = info_dict[0]['subtitles']['it']
 | 
			
		||||
        self.assertEqual(md5(sub), '164a51f16f260476a05b50fe4c2f161d')
 | 
			
		||||
    def test_youtube_onlysubtitles(self):
 | 
			
		||||
        DL = FakeYDL()
 | 
			
		||||
        DL.params['writesubtitles'] = True
 | 
			
		||||
        DL.params['onlysubtitles'] = True
 | 
			
		||||
        IE = YoutubeIE(DL)
 | 
			
		||||
        info_dict = IE.extract('QRS8MkLhQmM')
 | 
			
		||||
        sub = info_dict[0]['subtitles'][0]
 | 
			
		||||
        self.assertEqual(md5(sub[2]), '4cd9278a35ba2305f47354ee13472260')
 | 
			
		||||
        sub = info_dict[0]['subtitles']['en']
 | 
			
		||||
        self.assertEqual(md5(sub), '4cd9278a35ba2305f47354ee13472260')
 | 
			
		||||
    def test_youtube_allsubtitles(self):
 | 
			
		||||
        DL = FakeYDL()
 | 
			
		||||
        DL.params['allsubtitles'] = True
 | 
			
		||||
        IE = YoutubeIE(DL)
 | 
			
		||||
        info_dict = IE.extract('QRS8MkLhQmM')
 | 
			
		||||
        subtitles = info_dict[0]['subtitles']
 | 
			
		||||
        self.assertEqual(len(subtitles), 13)
 | 
			
		||||
        self.assertEqual(len(subtitles.keys()), 13)
 | 
			
		||||
    def test_youtube_subtitles_sbv_format(self):
 | 
			
		||||
        DL = FakeYDL()
 | 
			
		||||
        DL.params['writesubtitles'] = True
 | 
			
		||||
        DL.params['subtitlesformat'] = 'sbv'
 | 
			
		||||
        IE = YoutubeIE(DL)
 | 
			
		||||
        info_dict = IE.extract('QRS8MkLhQmM')
 | 
			
		||||
        sub = info_dict[0]['subtitles'][0]
 | 
			
		||||
        self.assertEqual(md5(sub[2]), '13aeaa0c245a8bed9a451cb643e3ad8b')
 | 
			
		||||
        sub = info_dict[0]['subtitles']['en']
 | 
			
		||||
        self.assertEqual(md5(sub), '13aeaa0c245a8bed9a451cb643e3ad8b')
 | 
			
		||||
    def test_youtube_subtitles_vtt_format(self):
 | 
			
		||||
        DL = FakeYDL()
 | 
			
		||||
        DL.params['writesubtitles'] = True
 | 
			
		||||
        DL.params['subtitlesformat'] = 'vtt'
 | 
			
		||||
        IE = YoutubeIE(DL)
 | 
			
		||||
        info_dict = IE.extract('QRS8MkLhQmM')
 | 
			
		||||
        sub = info_dict[0]['subtitles'][0]
 | 
			
		||||
        self.assertEqual(md5(sub[2]), '356cdc577fde0c6783b9b822e7206ff7')
 | 
			
		||||
        sub = info_dict[0]['subtitles']['en']
 | 
			
		||||
        self.assertEqual(md5(sub), '356cdc577fde0c6783b9b822e7206ff7')
 | 
			
		||||
    def test_youtube_list_subtitles(self):
 | 
			
		||||
        DL = FakeYDL()
 | 
			
		||||
        DL.params['listsubtitles'] = True
 | 
			
		||||
@@ -88,8 +88,8 @@ class TestYoutubeSubtitles(unittest.TestCase):
 | 
			
		||||
        DL.params['subtitleslang'] = 'it'
 | 
			
		||||
        IE = YoutubeIE(DL)
 | 
			
		||||
        info_dict = IE.extract('8YoUxe5ncPo')
 | 
			
		||||
        sub = info_dict[0]['subtitles'][0]
 | 
			
		||||
        self.assertTrue(sub[2] is not None)
 | 
			
		||||
        sub = info_dict[0]['subtitles']['it']
 | 
			
		||||
        self.assertTrue(sub is not None)
 | 
			
		||||
 | 
			
		||||
if __name__ == '__main__':
 | 
			
		||||
    unittest.main()
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user