summaryrefslogtreecommitdiffstats
path: root/yt_dlp/extractor/nba.py
diff options
context:
space:
mode:
Diffstat (limited to 'yt_dlp/extractor/nba.py')
-rw-r--r--yt_dlp/extractor/nba.py23
1 files changed, 10 insertions, 13 deletions
diff --git a/yt_dlp/extractor/nba.py b/yt_dlp/extractor/nba.py
index ec4d636..91ae1d1 100644
--- a/yt_dlp/extractor/nba.py
+++ b/yt_dlp/extractor/nba.py
@@ -1,11 +1,8 @@
import functools
import re
+import urllib.parse
from .turner import TurnerBaseIE
-from ..compat import (
- compat_str,
- compat_urllib_parse_unquote,
-)
from ..utils import (
OnDemandPagedList,
int_or_none,
@@ -22,7 +19,7 @@ from ..utils import (
class NBACVPBaseIE(TurnerBaseIE):
def _extract_nba_cvp_info(self, path, video_id, fatal=False):
return self._extract_cvp_info(
- 'http://secure.nba.com/%s' % path, video_id, {
+ f'http://secure.nba.com/{path}', video_id, {
'default': {
'media_src': 'http://nba.cdn.turner.com/nba/big',
},
@@ -185,7 +182,7 @@ class NBAWatchCollectionIE(NBAWatchBaseIE):
page += 1
videos = self._download_json(
'https://content-api-prod.nba.com/public/1/endeavor/video-list/collection/' + collection_id,
- collection_id, 'Downloading page %d JSON metadata' % page, query={
+ collection_id, f'Downloading page {page} JSON metadata', query={
'count': self._PAGE_SIZE,
'page': page,
})['results']['videos']
@@ -260,14 +257,14 @@ class NBABaseIE(NBACVPBaseIE):
def _call_api(self, team, content_id, query, resource):
return self._download_json(
- 'https://api.nba.net/2/%s/video,imported_video,wsc/' % team,
- content_id, 'Download %s JSON metadata' % resource,
+ f'https://api.nba.net/2/{team}/video,imported_video,wsc/',
+ content_id, f'Download {resource} JSON metadata',
query=query, headers={
'accessToken': 'internal|bb88df6b4c2244e78822812cecf1ee1b',
})['response']['result']
def _extract_video(self, video, team, extract_all=True):
- video_id = compat_str(video['nid'])
+ video_id = str(video['nid'])
team = video['brand']
info = {
@@ -330,7 +327,7 @@ class NBABaseIE(NBACVPBaseIE):
def _real_extract(self, url):
team, display_id = self._match_valid_url(url).groups()
if '/play#/' in url:
- display_id = compat_urllib_parse_unquote(display_id)
+ display_id = urllib.parse.unquote(display_id)
else:
webpage = self._download_webpage(url, display_id)
display_id = self._search_regex(
@@ -362,7 +359,7 @@ class NBAEmbedIE(NBABaseIE):
class NBAIE(NBABaseIE):
IE_NAME = 'nba'
- _VALID_URL = NBABaseIE._VALID_URL_BASE + '(?!%s)video/(?P<id>(?:[^/]+/)*[^/?#&]+)' % NBABaseIE._CHANNEL_PATH_REGEX
+ _VALID_URL = NBABaseIE._VALID_URL_BASE + f'(?!{NBABaseIE._CHANNEL_PATH_REGEX})video/(?P<id>(?:[^/]+/)*[^/?#&]+)'
_TESTS = [{
'url': 'https://www.nba.com/bulls/video/teams/bulls/2020/12/04/3478774/1607105587854-20201204schedulereleasefinaldrupal-3478774',
'info_dict': {
@@ -389,7 +386,7 @@ class NBAIE(NBABaseIE):
class NBAChannelIE(NBABaseIE):
IE_NAME = 'nba:channel'
- _VALID_URL = NBABaseIE._VALID_URL_BASE + '(?:%s)/(?P<id>[^/?#&]+)' % NBABaseIE._CHANNEL_PATH_REGEX
+ _VALID_URL = NBABaseIE._VALID_URL_BASE + f'(?:{NBABaseIE._CHANNEL_PATH_REGEX})/(?P<id>[^/?#&]+)'
_TESTS = [{
'url': 'https://www.nba.com/blazers/video/channel/summer_league',
'info_dict': {
@@ -408,7 +405,7 @@ class NBAChannelIE(NBABaseIE):
'channels': channel,
'count': self._PAGE_SIZE,
'offset': page * self._PAGE_SIZE,
- }, 'page %d' % (page + 1))
+ }, f'page {page + 1}')
for video in results:
yield self._extract_video(video, team, False)