diff --git a/yt_dlp/extractor/omnyfm.py b/yt_dlp/extractor/omnyfm.py index 0f69d59542..a338ae1c17 100644 --- a/yt_dlp/extractor/omnyfm.py +++ b/yt_dlp/extractor/omnyfm.py @@ -1,10 +1,9 @@ import functools import json -import math from .common import InfoExtractor from ..utils import ( - InAdvancePagedList, + OnDemandPagedList, clean_html, float_or_none, get_element_by_id, @@ -60,11 +59,8 @@ def _real_extract(self, url): data = json.loads(get_element_by_id('__NEXT_DATA__', webpage)) org_id = traverse_obj(data, ('props', 'pageProps', 'program', 'OrganizationId', {str_or_none})) playlist_id = traverse_obj(data, ('props', 'pageProps', 'program', 'Id', {str_or_none})) - playlist_count = traverse_obj(data, ('props', 'pageProps', 'program', 'DefaultPlaylist', 'NumberOfClips', {int_or_none})) title = traverse_obj(data, ('props', 'pageProps', 'program', 'Name', {str_or_none})) first_page_data = traverse_obj(data, ('props', 'pageProps', 'clips', {dict})) - total_pages = math.ceil(playlist_count / self._PAGE_SIZE) - return self.playlist_result(InAdvancePagedList( - functools.partial(self._entries, org_id, playlist_id, first_page_data), - total_pages, self._PAGE_SIZE), playlist_id, title) + entries = OnDemandPagedList(functools.partial(self._entries, org_id, playlist_id, first_page_data), self._PAGE_SIZE) + return self.playlist_result(entries, playlist_id, title)