+ course_id, hostname, year, term, slug = self._match_valid_url(url).group('id', 'hostname', 'year', 'term', 'slug')
+ meta = self._download_json(
+ f'https://{hostname}/api/courses/{slug}/', course_id, fatal=False,
+ query={'year': year, 'term': term}) or {}
+ lecture_series_title = meta.get('Name')
+ lectures = [self.url_result(f'https://{hostname}/w/{slug}/{stream_id}', RbgTumIE)
+ for stream_id in traverse_obj(meta, ('Streams', ..., 'ID'))]
+
+ if not lectures:
+ webpage = self._download_webpage(url, course_id)
+ lecture_series_title = remove_start(self._html_extract_title(webpage), 'TUM-Live | ')
+ lectures = [self.url_result(f'https://{hostname}{lecture_path}', RbgTumIE)
+ for lecture_path in re.findall(r'href="(/w/[^/"]+/[^/"]+)"', webpage)]
+
+ return self.playlist_result(lectures, course_id, lecture_series_title)