mirror of https://github.com/yt-dlp/yt-dlp
Merge 9426635429
into 4429fd0450
commit
02b29ee4aa
@ -0,0 +1,61 @@
|
||||
import json
|
||||
import unittest
|
||||
|
||||
from test.helper import FakeYDL
|
||||
|
||||
from yt_dlp.extractor.acfun import AcFunVideoIE
|
||||
|
||||
|
||||
class TestAcFunPlaylist(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.ie = AcFunVideoIE()
|
||||
self.ie.set_downloader(FakeYDL({'noplaylist': False}))
|
||||
|
||||
def test_playlist_entries_are_generated_for_multi_part_videos(self):
|
||||
video_info = {
|
||||
'title': 'Sample Playlist',
|
||||
'description': 'Sample description',
|
||||
'coverUrl': 'https://example.com/thumb.jpg',
|
||||
'user': {
|
||||
'name': 'Uploader Name',
|
||||
'href': 'uploader-id',
|
||||
},
|
||||
'videoList': [
|
||||
{
|
||||
'id': 'part-1',
|
||||
'title': 'Episode 1',
|
||||
},
|
||||
{
|
||||
'id': 'part-2',
|
||||
'title': 'Episode 2',
|
||||
},
|
||||
],
|
||||
'currentVideoInfo': {
|
||||
'id': 'part-1',
|
||||
},
|
||||
}
|
||||
webpage = f'<script>window.videoInfo = {json.dumps(video_info)};</script>'
|
||||
self.ie._download_webpage = lambda url, video_id: webpage
|
||||
|
||||
result = self.ie._real_extract('https://www.acfun.cn/v/ac12345?foo=bar')
|
||||
|
||||
self.assertEqual(result['_type'], 'playlist')
|
||||
self.assertEqual(result['id'], '12345')
|
||||
self.assertEqual(result['title'], 'Sample Playlist')
|
||||
self.assertEqual(result['description'], 'Sample description')
|
||||
self.assertEqual(result['uploader'], 'Uploader Name')
|
||||
self.assertEqual(result['uploader_id'], 'uploader-id')
|
||||
entry_urls = [entry['url'] for entry in result['entries']]
|
||||
entry_ids = [entry['id'] for entry in result['entries']]
|
||||
entry_titles = [entry['title'] for entry in result['entries']]
|
||||
|
||||
self.assertEqual(
|
||||
entry_urls,
|
||||
[
|
||||
'https://www.acfun.cn/v/ac12345?foo=bar',
|
||||
'https://www.acfun.cn/v/ac12345_2?foo=bar',
|
||||
],
|
||||
)
|
||||
self.assertEqual(entry_ids, ['12345', '12345_2'])
|
||||
self.assertEqual(entry_titles, ['Episode 1', 'Episode 2'])
|
||||
self.assertTrue(all(entry['ie_key'] == 'AcFunVideo' for entry in result['entries']))
|
Loading…
Reference in New Issue