0
0
Fork 0
mirror of https://github.com/yt-dlp/yt-dlp.git synced 2024-12-22 06:00:00 +00:00

[crunchyroll] Add season to flat-playlist

Closes #1319
This commit is contained in:
pukkandan 2021-10-17 17:34:03 +05:30
parent dd078970ba
commit ec3f6640c1
No known key found for this signature in database
GPG key ID: 0F00D95A001F4698
2 changed files with 14 additions and 10 deletions

View file

@ -1087,12 +1087,13 @@ def raise_no_formats(self, msg, expected=False, video_id=None):
# Methods for following #608
@staticmethod
def url_result(url, ie=None, video_id=None, video_title=None):
def url_result(url, ie=None, video_id=None, video_title=None, **kwargs):
"""Returns a URL that points to a page that should be processed"""
# TODO: ie should be the class used for getting the info
video_info = {'_type': 'url',
'url': url,
'ie_key': ie}
video_info.update(kwargs)
if video_id is not None:
video_info['id'] = video_id
if video_title is not None:

View file

@ -686,20 +686,23 @@ def _real_extract(self, url):
headers=self.geo_verification_headers())
title = self._html_search_meta('name', webpage, default=None)
episode_paths = re.findall(
r'(?s)<li id="showview_videos_media_(\d+)"[^>]+>.*?<a href="([^"]+)"',
webpage)
entries = [
self.url_result('http://www.crunchyroll.com' + ep, 'Crunchyroll', ep_id)
for ep_id, ep in episode_paths
]
entries.reverse()
episode_re = r'<li id="showview_videos_media_(\d+)"[^>]+>.*?<a href="([^"]+)"'
season_re = r'<a [^>]+season-dropdown[^>]+>([^<]+)'
paths = re.findall(f'(?s){episode_re}|{season_re}', webpage)
entries, current_season = [], None
for ep_id, ep, season in paths:
if season:
current_season = season
continue
entries.append(self.url_result(
f'http://www.crunchyroll.com{ep}', CrunchyrollIE.ie_key(), ep_id, season=current_season))
return {
'_type': 'playlist',
'id': show_id,
'title': title,
'entries': entries,
'entries': reversed(entries),
}