[nrk] Improve series metadata extraction
authorSergey M․ <dstftw@gmail.com>
Sun, 3 Jan 2021 00:30:45 +0000 (07:30 +0700)
committerSergey M․ <dstftw@gmail.com>
Sun, 3 Jan 2021 00:30:45 +0000 (07:30 +0700)
youtube_dl/extractor/nrk.py

index bd96d9d149832fe2ea73a9439cb8b8198fee5b41..20a5d767338492d8bd8a33e0dd58d8ce6da17b0d 100644 (file)
@@ -223,7 +223,9 @@ class NRKIE(NRKBaseIE):
         age_limit = int_or_none(try_get(
             data, lambda x: x['legalAge']['body']['rating']['code']))
 
-        return {
+        is_series = try_get(data, lambda x: x['_links']['series']['name']) == 'series'
+
+        info = {
             'id': video_id,
             'title': title,
             'alt_title': alt_title,
@@ -235,6 +237,27 @@ class NRKIE(NRKBaseIE):
             'subtitles': subtitles,
         }
 
+        if is_series:
+            series = title
+            if alt_title:
+                title += ' - %s' % alt_title
+            season_number = int_or_none(self._search_regex(
+                r'Sesong\s+(\d+)', description or '', 'season number',
+                default=None))
+            episode = alt_title if is_series else None
+            episode_number = int_or_none(self._search_regex(
+                r'(\d+)\.\s+episode', episode or '', 'episode number',
+                default=None))
+            info.update({
+                'title': title,
+                'series': series,
+                'season_number': season_number,
+                'episode': episode,
+                'episode_number': episode_number,
+            })
+
+        return info
+
 
 class NRKTVIE(InfoExtractor):
     IE_DESC = 'NRK TV and NRK Radio'