mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2026-02-22 08:26:00 +00:00
[ie/opencast] Support oc-p.uni-jena.de URLs (#16026)
Closes #16023 Authored by: LordMZTE
This commit is contained in:
@@ -33,7 +33,8 @@ class OpencastBaseIE(InfoExtractor):
|
|||||||
vid\.igb\.illinois\.edu|
|
vid\.igb\.illinois\.edu|
|
||||||
cursosabertos\.c3sl\.ufpr\.br|
|
cursosabertos\.c3sl\.ufpr\.br|
|
||||||
mcmedia\.missioncollege\.org|
|
mcmedia\.missioncollege\.org|
|
||||||
clases\.odon\.edu\.uy
|
clases\.odon\.edu\.uy|
|
||||||
|
oc-p\.uni-jena\.de
|
||||||
)'''
|
)'''
|
||||||
_UUID_RE = r'[\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}'
|
_UUID_RE = r'[\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}'
|
||||||
|
|
||||||
@@ -106,7 +107,7 @@ class OpencastBaseIE(InfoExtractor):
|
|||||||
|
|
||||||
class OpencastIE(OpencastBaseIE):
|
class OpencastIE(OpencastBaseIE):
|
||||||
_VALID_URL = rf'''(?x)
|
_VALID_URL = rf'''(?x)
|
||||||
https?://(?P<host>{OpencastBaseIE._INSTANCES_RE})/paella/ui/watch\.html\?
|
https?://(?P<host>{OpencastBaseIE._INSTANCES_RE})/paella[0-9]*/ui/watch\.html\?
|
||||||
(?:[^#]+&)?id=(?P<id>{OpencastBaseIE._UUID_RE})'''
|
(?:[^#]+&)?id=(?P<id>{OpencastBaseIE._UUID_RE})'''
|
||||||
|
|
||||||
_API_BASE = 'https://%s/search/episode.json?id=%s'
|
_API_BASE = 'https://%s/search/episode.json?id=%s'
|
||||||
@@ -131,8 +132,12 @@ class OpencastIE(OpencastBaseIE):
|
|||||||
|
|
||||||
def _real_extract(self, url):
|
def _real_extract(self, url):
|
||||||
host, video_id = self._match_valid_url(url).group('host', 'id')
|
host, video_id = self._match_valid_url(url).group('host', 'id')
|
||||||
return self._parse_mediapackage(
|
response = self._call_api(host, video_id)
|
||||||
self._call_api(host, video_id)['search-results']['result']['mediapackage'])
|
package = traverse_obj(response, (
|
||||||
|
('search-results', 'result'),
|
||||||
|
('result', ...), # Path needed for oc-p.uni-jena.de
|
||||||
|
'mediapackage', {dict}, any)) or {}
|
||||||
|
return self._parse_mediapackage(package)
|
||||||
|
|
||||||
|
|
||||||
class OpencastPlaylistIE(OpencastBaseIE):
|
class OpencastPlaylistIE(OpencastBaseIE):
|
||||||
|
|||||||
Reference in New Issue
Block a user