]>
Commit | Line | Data |
---|---|---|
efe8902f | 1 | #!/usr/bin/env python2 |
2 | import unittest | |
3 | import hashlib | |
4 | import os | |
5 | ||
6 | from youtube_dl.FileDownloader import FileDownloader | |
6da7877b | 7 | from youtube_dl.InfoExtractors import YoutubeIE, DailymotionIE |
8 | from youtube_dl.InfoExtractors import MetacafeIE, PhotobucketIE | |
4c9afeca | 9 | from youtube_dl.InfoExtractors import FacebookIE, BlipTVIE |
10 | from youtube_dl.InfoExtractors import VimeoIE, XVideosIE | |
11 | ||
efe8902f | 12 | |
13 | class DownloadTest(unittest.TestCase): | |
137c5803 | 14 | #calculated with md5sum: |
4c9afeca | 15 | #md5sum (GNU coreutils) 8.19 |
137c5803 | 16 | YOUTUBE_MD5 = "8547978241cb87dd6782b10b8e90acc3" |
17 | YOUTUBE_URL = "http://www.youtube.com/watch?v=BaW_jenozKc" | |
18 | YOUTUBE_FILE = "BaW_jenozKc.flv" | |
efe8902f | 19 | |
6da7877b | 20 | |
ff089842 | 21 | DAILYMOTION_MD5 = "" |
22 | DAILYMOTION_URL = "http://www.dailymotion.com/video/x33vw9_tutoriel-de-youtubeur-dl-des-video_tech" | |
23 | DAILYMOTION_FILE = "" | |
24 | ||
a4b5f225 | 25 | |
26 | METACAFE_MD5 = "" | |
27 | METACAFE_URL = "http://www.metacafe.com/watch/yt-bV9L5Ht9LgY/download_youtube_playlist_with_youtube_dl/" | |
28 | METACAFE_FILE = "" | |
29 | ||
b4e5de51 | 30 | |
31 | PHOTOBUCKET_MD5 = "" | |
32 | PHOTOBUCKET_URL = "http://www.metacafe.com/watch/yt-bV9L5Ht9LgY/download_youtube_playlist_with_youtube_dl/" | |
33 | PHOTOBUCKET_FILE = "" | |
34 | ||
6da7877b | 35 | |
36 | FACEBOOK_MD5 = "" | |
37 | FACEBOOK_URL = "https://www.facebook.com/video/video.php?v=207446242657384" | |
38 | FACEBOOK_FILE = "" | |
39 | ||
40 | ||
4c9afeca | 41 | BLIP_MD5 = "" |
42 | BLIP_URL = "https://www.facebook.com/video/video.php?v=207446242657384" | |
43 | BLIP_FILE = "" | |
44 | ||
45 | VIMEO_MD5 = "" | |
46 | VIMEO_URL = "https://www.facebook.com/video/video.php?v=207446242657384" | |
47 | VIMEO_FILE = "" | |
48 | ||
49 | XVIDEO_MD5 = "" | |
50 | XVIDEO_URL = "https://www.facebook.com/video/video.php?v=207446242657384" | |
51 | XVIDEO_FILE = "" | |
52 | ||
53 | ||
137c5803 | 54 | def test_youtube(self): |
55 | #let's download a file from youtube | |
56 | fd = FileDownloader({}) | |
57 | fd.add_info_extractor(YoutubeIE()) | |
58 | fd.download([DownloadTest.YOUTUBE_URL]) | |
59 | self.assertTrue(os.path.exists(DownloadTest.YOUTUBE_FILE)) | |
60 | md5_down_file = md5_for_file(DownloadTest.YOUTUBE_FILE) | |
61 | self.assertEqual(md5_down_file, DownloadTest.YOUTUBE_MD5) | |
efe8902f | 62 | |
ff089842 | 63 | def test_dailymotion(self): |
64 | fd = FileDownloader({}) | |
65 | fd.add_info_extractor(DailymotionIE()) | |
66 | fd.download([DownloadTest.DAILYMOTION_URL]) | |
67 | self.assertTrue(os.path.exists(DownloadTest.DAILYMOTION_FILE)) | |
68 | md5_down_file = md5_for_file(DownloadTest.DAILYMOTION_FILE) | |
69 | self.assertEqual(md5_down_file, DownloadTest.DAILYMOTION_MD5) | |
70 | ||
71 | ||
a4b5f225 | 72 | def test_metacafe(self): |
73 | fd = FileDownloader({}) | |
74 | fd.add_info_extractor(MetacafeIE()) | |
75 | fd.download([DownloadTest.METACAFE_URL]) | |
76 | self.assertTrue(os.path.exists(DownloadTest.METACAFE_FILE)) | |
77 | md5_down_file = md5_for_file(DownloadTest.METACAFE_FILE) | |
78 | self.assertEqual(md5_down_file, DownloadTest.METACAFE_MD5) | |
79 | ||
b4e5de51 | 80 | def test_photobucket(self): |
81 | fd = FileDownloader({}) | |
82 | fd.add_info_extractor(PhotobucketIE()) | |
83 | fd.download([DownloadTest.PHOTOBUCKET_URL]) | |
84 | self.assertTrue(os.path.exists(DownloadTest.PHOTOBUCKET_FILE)) | |
85 | md5_down_file = md5_for_file(DownloadTest.PHOTOBUCKET_FILE) | |
86 | self.assertEqual(md5_down_file, DownloadTest.PHOTOBUCKET_MD5) | |
87 | ||
88 | ||
6da7877b | 89 | def test_facebook(self): |
90 | fd = FileDownloader({}) | |
91 | fd.add_info_extractor(FacebookIE()) | |
92 | fd.download([DownloadTest.FACEBOOK_URL]) | |
93 | self.assertTrue(os.path.exists(DownloadTest.FACEBOOK_FILE)) | |
94 | md5_down_file = md5_for_file(DownloadTest.FACEBOOK_FILE) | |
95 | self.assertEqual(md5_down_file, DownloadTest.FACEBOOK_MD5) | |
96 | ||
4c9afeca | 97 | def test_blip(self): |
98 | fd = FileDownloader({}) | |
99 | fd.add_info_extractor(BlipTVIE()) | |
100 | fd.download([DownloadTest.BLIP_URL]) | |
101 | self.assertTrue(os.path.exists(DownloadTest.BLIP_FILE)) | |
102 | md5_down_file = md5_for_file(DownloadTest.BLIP_FILE) | |
103 | self.assertEqual(md5_down_file, DownloadTest.BLIP_MD5) | |
104 | ||
105 | ||
106 | def test_vimeo(self): | |
107 | fd = FileDownloader({}) | |
108 | fd.add_info_extractor(VimeoIE()) | |
109 | fd.download([DownloadTest.VIMEO_URL]) | |
110 | self.assertTrue(os.path.exists(DownloadTest.VIMEO_FILE)) | |
111 | md5_down_file = md5_for_file(DownloadTest.VIMEO_FILE) | |
112 | self.assertEqual(md5_down_file, DownloadTest.VIMEO_MD5) | |
113 | ||
114 | ||
115 | def test_xvideo(self): | |
116 | fd = FileDownloader({}) | |
117 | fd.add_info_extractor(XVideosIE()) | |
118 | fd.download([DownloadTest.XVIDEO_URL]) | |
119 | self.assertTrue(os.path.exists(DownloadTest.XVIDEO_FILE)) | |
120 | md5_down_file = md5_for_file(DownloadTest.XVIDEO_FILE) | |
121 | self.assertEqual(md5_down_file, DownloadTest.XVIDEO_MD5) | |
122 | ||
137c5803 | 123 | def cleanUp(self): |
124 | if os.path.exists(DownloadTest.YOUTUBE_FILE): | |
125 | os.remove(DownloadTest.YOUTUBE_FILE) | |
ff089842 | 126 | if os.path.exists(DownloadTest.DAILYMOTION_FILE): |
127 | os.remove(DownloadTest.DAILYMOTION_FILE) | |
b4e5de51 | 128 | if os.path.exists(DownloadTest.METACAFE_FILE): |
129 | os.remove(DownloadTest.METACAFE_FILE) | |
130 | if os.path.exists(DownloadTest.PHOTOBUCKET_FILE): | |
131 | os.remove(DownloadTest.PHOTOBUCKET_FILE) | |
6da7877b | 132 | if os.path.exists(DownloadTest.FACEBOOK_FILE): |
133 | os.remove(DownloadTest.FACEBOOK_FILE) | |
4c9afeca | 134 | if os.path.exists(DownloadTest.BLIP_FILE): |
135 | os.remove(DownloadTest.BLIP_FILE) | |
136 | if os.path.exists(DownloadTest.VIMEO_FILE): | |
137 | os.remove(DownloadTest.VIMEO_FILE) | |
138 | if os.path.exists(DownloadTest.XVIDEO_FILE): | |
139 | os.remove(DownloadTest.XVIDEO_FILE) | |
efe8902f | 140 | |
141 | def md5_for_file(f, block_size=2**20): | |
137c5803 | 142 | md5 = hashlib.md5() |
143 | while True: | |
144 | data = f.read(block_size) | |
145 | if not data: | |
146 | break | |
147 | md5.update(data) | |
148 | return md5.digest() |