]> jfr.im git - yt-dlp.git/blame - test/test_youtube_lists.py
[compat] Remove more functions
[yt-dlp.git] / test / test_youtube_lists.py
CommitLineData
cc52de43 1#!/usr/bin/env python3
44a5f171
PH
2# Allow direct execution
3import os
9789a05c
FV
4import sys
5import unittest
f8271158 6
44a5f171
PH
7sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
8
060ac762 9from test.helper import FakeYDL, is_download_test
9789a05c 10
f8271158 11from yt_dlp.extractor import YoutubeIE, YoutubeTabIE
9789a05c 12
9789a05c 13
060ac762 14@is_download_test
9789a05c 15class TestYoutubeLists(unittest.TestCase):
44a5f171 16 def assertIsPlaylist(self, info):
8a38a194
JMF
17 """Make sure the info has '_type' set to 'playlist'"""
18 self.assertEqual(info['_type'], 'playlist')
19
d4d9920a
FV
20 def test_youtube_playlist_noplaylist(self):
21 dl = FakeYDL()
22 dl.params['noplaylist'] = True
dd2a987d 23 ie = YoutubeTabIE(dl)
d5a39898 24 result = ie.extract('https://www.youtube.com/watch?v=OmJ-4B-mS-Y&list=PLydZ2Hrp_gPRJViZjLFKaBMgCQOYEEkyp&index=2')
d4d9920a 25 self.assertEqual(result['_type'], 'url')
d5a39898 26 self.assertEqual(result['ie_key'], YoutubeIE.ie_key())
27 self.assertEqual(YoutubeIE.extract_id(result['url']), 'OmJ-4B-mS-Y')
9789a05c 28
652cdaa2
JMF
29 def test_youtube_mix(self):
30 dl = FakeYDL()
dd2a987d 31 ie = YoutubeTabIE(dl)
32 result = ie.extract('https://www.youtube.com/watch?v=tyITL_exICo&list=RDCLAK5uy_kLWIr9gv1XLlPbaDS965-Db4TrBoUTxQ8')
33 entries = list(result['entries'])
1b6182d8 34 self.assertTrue(len(entries) >= 50)
652cdaa2 35 original_video = entries[0]
dd2a987d 36 self.assertEqual(original_video['id'], 'tyITL_exICo')
652cdaa2 37
bc2ca1bb 38 def test_youtube_flat_playlist_extraction(self):
8e5b1219
S
39 dl = FakeYDL()
40 dl.params['extract_flat'] = True
bc2ca1bb 41 ie = YoutubeTabIE(dl)
42 result = ie.extract('https://www.youtube.com/playlist?list=PL4lCao7KL_QFVb7Iudeipvc2BCavECqzc')
8e5b1219 43 self.assertIsPlaylist(result)
bc2ca1bb 44 entries = list(result['entries'])
45 self.assertTrue(len(entries) == 1)
46 video = entries[0]
dd2a987d 47 self.assertEqual(video['_type'], 'url')
bc2ca1bb 48 self.assertEqual(video['ie_key'], 'Youtube')
49 self.assertEqual(video['id'], 'BaW_jenozKc')
dd2a987d 50 self.assertEqual(video['url'], 'https://www.youtube.com/watch?v=BaW_jenozKc')
bc2ca1bb 51 self.assertEqual(video['title'], 'youtube-dl test video "\'/\\ä↭𝕐')
52 self.assertEqual(video['duration'], 10)
53 self.assertEqual(video['uploader'], 'Philipp Hagemeister')
8e5b1219 54
582be358 55
9789a05c
FV
56if __name__ == '__main__':
57 unittest.main()