test_download.py 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #!/usr/bin/env python2
  2. import unittest
  3. import hashlib
  4. import os
  5. from youtube_dl.FileDownloader import FileDownloader
  6. from youtube_dl.InfoExtractors import YoutubeIE, DailymotionIE, MetacafeIE, PhotobucketIE
  7. class DownloadTest(unittest.TestCase):
  8. #calculated with md5sum:
  9. # md5sum (GNU coreutils) 8.19
  10. YOUTUBE_MD5 = "8547978241cb87dd6782b10b8e90acc3"
  11. YOUTUBE_URL = "http://www.youtube.com/watch?v=BaW_jenozKc"
  12. YOUTUBE_FILE = "BaW_jenozKc.flv"
  13. DAILYMOTION_MD5 = ""
  14. DAILYMOTION_URL = "http://www.dailymotion.com/video/x33vw9_tutoriel-de-youtubeur-dl-des-video_tech"
  15. DAILYMOTION_FILE = ""
  16. METACAFE_MD5 = ""
  17. METACAFE_URL = "http://www.metacafe.com/watch/yt-bV9L5Ht9LgY/download_youtube_playlist_with_youtube_dl/"
  18. METACAFE_FILE = ""
  19. PHOTOBUCKET_MD5 = ""
  20. PHOTOBUCKET_URL = "http://www.metacafe.com/watch/yt-bV9L5Ht9LgY/download_youtube_playlist_with_youtube_dl/"
  21. PHOTOBUCKET_FILE = ""
  22. def test_youtube(self):
  23. #let's download a file from youtube
  24. fd = FileDownloader({})
  25. fd.add_info_extractor(YoutubeIE())
  26. fd.download([DownloadTest.YOUTUBE_URL])
  27. self.assertTrue(os.path.exists(DownloadTest.YOUTUBE_FILE))
  28. md5_down_file = md5_for_file(DownloadTest.YOUTUBE_FILE)
  29. self.assertEqual(md5_down_file, DownloadTest.YOUTUBE_MD5)
  30. def test_dailymotion(self):
  31. fd = FileDownloader({})
  32. fd.add_info_extractor(DailymotionIE())
  33. fd.download([DownloadTest.DAILYMOTION_URL])
  34. self.assertTrue(os.path.exists(DownloadTest.DAILYMOTION_FILE))
  35. md5_down_file = md5_for_file(DownloadTest.DAILYMOTION_FILE)
  36. self.assertEqual(md5_down_file, DownloadTest.DAILYMOTION_MD5)
  37. def test_metacafe(self):
  38. fd = FileDownloader({})
  39. fd.add_info_extractor(MetacafeIE())
  40. fd.download([DownloadTest.METACAFE_URL])
  41. self.assertTrue(os.path.exists(DownloadTest.METACAFE_FILE))
  42. md5_down_file = md5_for_file(DownloadTest.METACAFE_FILE)
  43. self.assertEqual(md5_down_file, DownloadTest.METACAFE_MD5)
  44. def test_photobucket(self):
  45. fd = FileDownloader({})
  46. fd.add_info_extractor(PhotobucketIE())
  47. fd.download([DownloadTest.PHOTOBUCKET_URL])
  48. self.assertTrue(os.path.exists(DownloadTest.PHOTOBUCKET_FILE))
  49. md5_down_file = md5_for_file(DownloadTest.PHOTOBUCKET_FILE)
  50. self.assertEqual(md5_down_file, DownloadTest.PHOTOBUCKET_MD5)
  51. def cleanUp(self):
  52. if os.path.exists(DownloadTest.YOUTUBE_FILE):
  53. os.remove(DownloadTest.YOUTUBE_FILE)
  54. if os.path.exists(DownloadTest.DAILYMOTION_FILE):
  55. os.remove(DownloadTest.DAILYMOTION_FILE)
  56. if os.path.exists(DownloadTest.METACAFE_FILE):
  57. os.remove(DownloadTest.METACAFE_FILE)
  58. if os.path.exists(DownloadTest.PHOTOBUCKET_FILE):
  59. os.remove(DownloadTest.PHOTOBUCKET_FILE)
  60. def md5_for_file(f, block_size=2**20):
  61. md5 = hashlib.md5()
  62. while True:
  63. data = f.read(block_size)
  64. if not data:
  65. break
  66. md5.update(data)
  67. return md5.digest()