f63426a185f889e44868c270fdf7e389aeec162b
[youtube-dl] / test / test_dailymotion_subtitles.py
1 #!/usr/bin/env python
2
3 import sys
4 import unittest
5 import json
6 import io
7 import hashlib
8
9 # Allow direct execution
10 import os
11 sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
12
13 from youtube_dl.extractor import DailymotionIE
14 from youtube_dl.utils import *
15 from helper import FakeYDL
16
17 md5 = lambda s: hashlib.md5(s.encode('utf-8')).hexdigest()
18 TEST_URL = 'http://www.dailymotion.com/video/xczg00'
19
20 class TestDailymotionSubtitles(unittest.TestCase):
21     def setUp(self):
22         DL = FakeYDL()
23         DL.params['allsubtitles'] = False
24         DL.params['writesubtitles'] = False
25         DL.params['subtitlesformat'] = 'srt'
26         DL.params['listsubtitles'] = False
27     def test_no_subtitles(self):
28         DL = FakeYDL()
29         DL.params['writesubtitles'] = False
30         IE = DailymotionIE(DL)
31         info_dict = IE.extract(TEST_URL)
32         subtitles = info_dict[0]['subtitles']
33         self.assertEqual(subtitles, None)
34     def test_subtitles(self):
35         DL = FakeYDL()
36         DL.params['writesubtitles'] = True
37         IE = DailymotionIE(DL)
38         info_dict = IE.extract(TEST_URL)
39         sub = info_dict[0]['subtitles']['en']
40         self.assertEqual(md5(sub), '976553874490cba125086bbfea3ff76f')
41     def test_subtitles_fr(self):
42         DL = FakeYDL()
43         DL.params['writesubtitles'] = True
44         DL.params['subtitleslang'] = 'fr'
45         IE = DailymotionIE(DL)
46         info_dict = IE.extract(TEST_URL)
47         sub = info_dict[0]['subtitles']['fr']
48         self.assertEqual(md5(sub), '594564ec7d588942e384e920e5341792')
49     def test_onlysubtitles(self):
50         DL = FakeYDL()
51         DL.params['writesubtitles'] = True
52         DL.params['onlysubtitles'] = True
53         IE = DailymotionIE(DL)
54         info_dict = IE.extract(TEST_URL)
55         sub = info_dict[0]['subtitles']['en']
56         self.assertEqual(md5(sub), '976553874490cba125086bbfea3ff76f')
57     def test_allsubtitles(self):
58         DL = FakeYDL()
59         DL.params['allsubtitles'] = True
60         IE = DailymotionIE(DL)
61         info_dict = IE.extract(TEST_URL)
62         subtitles = info_dict[0]['subtitles']
63         self.assertEqual(len(subtitles.keys()), 5)
64     # def test_subtitles_sbv_format(self):
65     #     DL = FakeYDL()
66     #     DL.params['writesubtitles'] = True
67     #     DL.params['subtitlesformat'] = 'sbv'
68     #     IE = DailymotionIE(DL)
69     #     info_dict = IE.extract(TEST_URL)
70     #     sub = info_dict[0]['subtitles'][0]
71     #     self.assertEqual(md5(sub), '13aeaa0c245a8bed9a451cb643e3ad8b')
72     # def test_subtitles_vtt_format(self):
73     #     DL = FakeYDL()
74     #     DL.params['writesubtitles'] = True
75     #     DL.params['subtitlesformat'] = 'vtt'
76     #     IE = DailymotionIE(DL)
77     #     info_dict = IE.extract(TEST_URL)
78     #     sub = info_dict[0]['subtitles'][0]
79     #     self.assertEqual(md5(sub), '356cdc577fde0c6783b9b822e7206ff7')
80     def test_list_subtitles(self):
81         DL = FakeYDL()
82         DL.params['listsubtitles'] = True
83         IE = DailymotionIE(DL)
84         info_dict = IE.extract(TEST_URL)
85         self.assertEqual(info_dict, None)
86     def test_automatic_captions(self):
87         DL = FakeYDL()
88         DL.params['writeautomaticsub'] = True
89         DL.params['subtitleslang'] = 'en'
90         IE = DailymotionIE(DL)
91         info_dict = IE.extract(TEST_URL)
92         sub = info_dict[0]['subtitles']
93         self.assertTrue(len(sub) == 0)
94
95 if __name__ == '__main__':
96     unittest.main()