]>
Raphaƫl G. Git Repositories - youtubedl/blob - test/test_youtube_lists.py
   7 # Allow direct execution 
   9 sys
.path
.append(os
.path
.dirname(os
.path
.dirname(os
.path
.abspath(__file__
)))) 
  11 from youtube_dl
.extractor 
import YoutubeUserIE
, YoutubePlaylistIE
, YoutubeIE
, YoutubeChannelIE
, YoutubeShowIE
 
  12 from youtube_dl
.utils 
import * 
  14 from helper 
import FakeYDL
 
  16 class TestYoutubeLists(unittest
.TestCase
): 
  17     def assertIsPlaylist(self
,info
): 
  18         """Make sure the info has '_type' set to 'playlist'""" 
  19         self
.assertEqual(info
['_type'], 'playlist') 
  21     def test_youtube_playlist(self
): 
  23         ie 
= YoutubePlaylistIE(dl
) 
  24         result 
= ie
.extract('https://www.youtube.com/playlist?list=PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re')[0] 
  25         self
.assertIsPlaylist(result
) 
  26         self
.assertEqual(result
['title'], 'ytdl test PL') 
  27         ytie_results 
= [YoutubeIE()._extract
_id
(url
['url']) for url 
in result
['entries']] 
  28         self
.assertEqual(ytie_results
, [ 'bV9L5Ht9LgY', 'FXxLjLQi3Fg', 'tU3Bgo5qJZE']) 
  30     def test_issue_673(self
): 
  32         ie 
= YoutubePlaylistIE(dl
) 
  33         result 
= ie
.extract('PLBB231211A4F62143')[0] 
  34         self
.assertTrue(len(result
['entries']) > 25) 
  36     def test_youtube_playlist_long(self
): 
  38         ie 
= YoutubePlaylistIE(dl
) 
  39         result 
= ie
.extract('https://www.youtube.com/playlist?list=UUBABnxM4Ar9ten8Mdjj1j0Q')[0] 
  40         self
.assertIsPlaylist(result
) 
  41         self
.assertTrue(len(result
['entries']) >= 799) 
  43     def test_youtube_playlist_with_deleted(self
): 
  46         ie 
= YoutubePlaylistIE(dl
) 
  47         result 
= ie
.extract('https://www.youtube.com/playlist?list=PLwP_SiAcdui0KVebT0mU9Apz359a4ubsC')[0] 
  48         ytie_results 
= [YoutubeIE()._extract
_id
(url
['url']) for url 
in result
['entries']] 
  49         self
.assertFalse('pElCt5oNDuI' in ytie_results
) 
  50         self
.assertFalse('KdPEApIVdWM' in ytie_results
) 
  52     def test_youtube_playlist_empty(self
): 
  54         ie 
= YoutubePlaylistIE(dl
) 
  55         result 
= ie
.extract('https://www.youtube.com/playlist?list=PLtPgu7CB4gbZDA7i_euNxn75ISqxwZPYx')[0] 
  56         self
.assertIsPlaylist(result
) 
  57         self
.assertEqual(len(result
['entries']), 0) 
  59     def test_youtube_course(self
): 
  61         ie 
= YoutubePlaylistIE(dl
) 
  62         # TODO find a > 100 (paginating?) videos course 
  63         result 
= ie
.extract('https://www.youtube.com/course?list=ECUl4u3cNGP61MdtwGTqZA0MreSaDybji8')[0] 
  64         entries 
= result
['entries'] 
  65         self
.assertEqual(YoutubeIE()._extract
_id
(entries
[0]['url']), 'j9WZyLZCBzs') 
  66         self
.assertEqual(len(entries
), 25) 
  67         self
.assertEqual(YoutubeIE()._extract
_id
(entries
[-1]['url']), 'rYefUsYuEp0') 
  69     def test_youtube_channel(self
): 
  71         ie 
= YoutubeChannelIE(dl
) 
  72         #test paginated channel 
  73         result 
= ie
.extract('https://www.youtube.com/channel/UCKfVa3S1e4PHvxWcwyMMg8w')[0] 
  74         self
.assertTrue(len(result
['entries']) > 90) 
  75         #test autogenerated channel 
  76         result 
= ie
.extract('https://www.youtube.com/channel/HCtnHdj3df7iM/videos')[0] 
  77         self
.assertTrue(len(result
['entries']) >= 18) 
  79     def test_youtube_user(self
): 
  81         ie 
= YoutubeUserIE(dl
) 
  82         result 
= ie
.extract('https://www.youtube.com/user/TheLinuxFoundation')[0] 
  83         self
.assertTrue(len(result
['entries']) >= 320) 
  85     def test_youtube_safe_search(self
): 
  87         ie 
= YoutubePlaylistIE(dl
) 
  88         result 
= ie
.extract('PLtPgu7CB4gbY9oDN3drwC3cMbJggS7dKl')[0] 
  89         self
.assertEqual(len(result
['entries']), 2) 
  91     def test_youtube_show(self
): 
  93         ie 
= YoutubeShowIE(dl
) 
  94         result 
= ie
.extract('http://www.youtube.com/show/airdisasters') 
  95         self
.assertTrue(len(result
) >= 4) 
  97 if __name__ 
== '__main__':