]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/nba.py
[extractor/rokfin] Re-construct manifest url (#6507)
[yt-dlp.git] / yt_dlp / extractor / nba.py
index 366e5d645b7d24b13d7658f306480a121c2eb5ce..d8fc82488d36a08e81d6c71e65fc335ee644ab7b 100644 (file)
@@ -1,14 +1,10 @@
-from __future__ import unicode_literals
-
 import functools
 import re
 
 from .turner import TurnerBaseIE
 from ..compat import (
-    compat_parse_qs,
     compat_str,
     compat_urllib_parse_unquote,
-    compat_urllib_parse_urlparse,
 )
 from ..utils import (
     int_or_none,
@@ -16,6 +12,7 @@
     OnDemandPagedList,
     parse_duration,
     parse_iso8601,
+    parse_qs,
     try_get,
     update_url_query,
     urljoin,
@@ -95,7 +92,6 @@ def _extract_video(self, filter_key, filter_value):
                 formats.extend(cvp_info['formats'])
                 info = merge_dicts(info, cvp_info)
 
-        self._sort_formats(formats)
         info['formats'] = formats
         return info
 
@@ -165,15 +161,11 @@ class NBAWatchIE(NBAWatchBaseIE):
 
     def _real_extract(self, url):
         display_id = self._match_id(url)
-        collection_id = compat_parse_qs(compat_urllib_parse_urlparse(url).query).get('collection', [None])[0]
-        if collection_id:
-            if self.get_param('noplaylist'):
-                self.to_screen('Downloading just video %s because of --no-playlist' % display_id)
-            else:
-                self.to_screen('Downloading playlist %s - add --no-playlist to just download video' % collection_id)
-                return self.url_result(
-                    'https://www.nba.com/watch/list/collection/' + collection_id,
-                    NBAWatchCollectionIE.ie_key(), collection_id)
+        collection_id = parse_qs(url).get('collection', [None])[0]
+        if self._yes_playlist(collection_id, display_id):
+            return self.url_result(
+                'https://www.nba.com/watch/list/collection/' + collection_id,
+                NBAWatchCollectionIE.ie_key(), collection_id)
         return self._extract_video('seoName', display_id)
 
 
@@ -325,7 +317,6 @@ def _extract_video(self, video, team, extract_all=True):
                     subtitles = self._merge_subtitles(subtitles, cvp_info['subtitles'])
                     info = merge_dicts(info, cvp_info)
 
-            self._sort_formats(formats)
         else:
             info.update(self._embed_url_result(team, video['videoId']))
 
@@ -337,7 +328,7 @@ def _extract_video(self, video, team, extract_all=True):
         return info
 
     def _real_extract(self, url):
-        team, display_id = re.match(self._VALID_URL, url).groups()
+        team, display_id = self._match_valid_url(url).groups()
         if '/play#/' in url:
             display_id = compat_urllib_parse_unquote(display_id)
         else:
@@ -359,7 +350,7 @@ class NBAEmbedIE(NBABaseIE):
     }]
 
     def _real_extract(self, url):
-        qs = compat_parse_qs(compat_urllib_parse_urlparse(url).query)
+        qs = parse_qs(url)
         content_id = qs['contentId'][0]
         team = qs.get('team', [None])[0]
         if not team: