]>
jfr.im git - yt-dlp.git/blob - test/test_youtube_lists.py
2 from __future__
import unicode_literals
4 # Allow direct execution
8 sys
.path
.insert(0, os
.path
.dirname(os
.path
.dirname(os
.path
.abspath(__file__
))))
10 from test
.helper
import FakeYDL
, is_download_test
13 from yt_dlp
.extractor
import (
21 class TestYoutubeLists(unittest
.TestCase
):
22 def assertIsPlaylist(self
, info
):
23 """Make sure the info has '_type' set to 'playlist'"""
24 self
.assertEqual(info
['_type'], 'playlist')
26 def test_youtube_playlist_noplaylist(self
):
28 dl
.params
['noplaylist'] = True
30 result
= ie
.extract('https://www.youtube.com/watch?v=FXxLjLQi3Fg&list=PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re')
31 self
.assertEqual(result
['_type'], 'url')
32 self
.assertEqual(YoutubeIE
.extract_id(result
['url']), 'FXxLjLQi3Fg')
34 def test_youtube_course(self
):
35 print('Skipping: Course URLs no longer exists')
38 ie
= YoutubePlaylistIE(dl
)
39 # TODO find a > 100 (paginating?) videos course
40 result
= ie
.extract('https://www.youtube.com/course?list=ECUl4u3cNGP61MdtwGTqZA0MreSaDybji8')
41 entries
= list(result
['entries'])
42 self
.assertEqual(YoutubeIE
.extract_id(entries
[0]['url']), 'j9WZyLZCBzs')
43 self
.assertEqual(len(entries
), 25)
44 self
.assertEqual(YoutubeIE
.extract_id(entries
[-1]['url']), 'rYefUsYuEp0')
46 def test_youtube_mix(self
):
49 result
= ie
.extract('https://www.youtube.com/watch?v=tyITL_exICo&list=RDCLAK5uy_kLWIr9gv1XLlPbaDS965-Db4TrBoUTxQ8')
50 entries
= list(result
['entries'])
51 self
.assertTrue(len(entries
) >= 50)
52 original_video
= entries
[0]
53 self
.assertEqual(original_video
['id'], 'tyITL_exICo')
55 def test_youtube_toptracks(self
):
56 print('Skipping: The playlist page gives error 500')
59 ie
= YoutubePlaylistIE(dl
)
60 result
= ie
.extract('https://www.youtube.com/playlist?list=MCUS')
61 entries
= result
['entries']
62 self
.assertEqual(len(entries
), 100)
64 def test_youtube_flat_playlist_extraction(self
):
66 dl
.params
['extract_flat'] = True
68 result
= ie
.extract('https://www.youtube.com/playlist?list=PL4lCao7KL_QFVb7Iudeipvc2BCavECqzc')
69 self
.assertIsPlaylist(result
)
70 entries
= list(result
['entries'])
71 self
.assertTrue(len(entries
) == 1)
73 self
.assertEqual(video
['_type'], 'url')
74 self
.assertEqual(video
['ie_key'], 'Youtube')
75 self
.assertEqual(video
['id'], 'BaW_jenozKc')
76 self
.assertEqual(video
['url'], 'https://www.youtube.com/watch?v=BaW_jenozKc')
77 self
.assertEqual(video
['title'], 'youtube-dl test video "\'/\\ä↭𝕐')
78 self
.assertEqual(video
['duration'], 10)
79 self
.assertEqual(video
['uploader'], 'Philipp Hagemeister')
82 if __name__
== '__main__':