From 7738bd32722154a26f70006e0fe586f40d06e606 Mon Sep 17 00:00:00 2001 From: Mohammad Khaled AbouElSherbini <50295916+MKSherbini@users.noreply.github.com> Date: Sat, 18 Sep 2021 13:33:06 +0200 Subject: [PATCH] [Oreilly] Handle new web url (#990) The change in URL is most likely a server side issue. But we can work around it by a simple substitution Authored by: MKSherbini --- yt_dlp/extractor/safari.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/yt_dlp/extractor/safari.py b/yt_dlp/extractor/safari.py index c92e8849b..fbbbc7e77 100644 --- a/yt_dlp/extractor/safari.py +++ b/yt_dlp/extractor/safari.py @@ -193,7 +193,12 @@ def _real_extract(self, url): part = self._download_json( url, '%s/%s' % (mobj.group('course_id'), mobj.group('part')), 'Downloading part JSON') - return self.url_result(part['web_url'], SafariIE.ie_key()) + web_url = part['web_url'] + if 'library/view' in web_url: + web_url = web_url.replace('library/view', 'videos') + natural_keys = part['natural_key'] + web_url = f'{web_url.rsplit("/")[0]}/{natural_keys[0]}-{natural_keys[1][:-5]}' + return self.url_result(web_url, SafariIE.ie_key()) class SafariCourseIE(SafariBaseIE):