Upgrade yt_dlp and download script

This commit is contained in:
2025-05-02 16:11:08 -05:00
parent 3a2e8eeb08
commit d68d9ce4f9
1194 changed files with 60099 additions and 44436 deletions

View File

@@ -1,23 +1,23 @@
from .common import InfoExtractor
from ..utils import (
ExtractorError,
determine_ext,
parse_duration,
urlencode_postdata,
ExtractorError,
)
class WimTVIE(InfoExtractor):
_player = None
_UUID_RE = r'[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}'
_VALID_URL = r'''(?x:
https?://platform.wim.tv/
_VALID_URL = rf'''(?x:
https?://platform\.wim\.tv/
(?:
(?:embed/)?\?
|\#/webtv/.+?/
)
(?P<type>vod|live|cast)[=/]
(?P<id>%s).*?)''' % _UUID_RE
(?P<id>{_UUID_RE}).*?)'''
_EMBED_REGEX = [rf'<iframe[^>]+src=["\'](?P<url>{_VALID_URL})']
_TESTS = [{
# vod stream
@@ -28,7 +28,7 @@ class WimTVIE(InfoExtractor):
'ext': 'mp4',
'title': 'AMA SUPERCROSS 2020 - R2 ST. LOUIS',
'duration': 6481,
'thumbnail': r're:https?://.+?/thumbnail/.+?/720$'
'thumbnail': r're:https?://.+?/thumbnail/.+?/720$',
},
'params': {
'skip_download': True,
@@ -66,7 +66,7 @@ class WimTVIE(InfoExtractor):
'vars': [{
'regex': r'appAuth = "(.+?)"',
'variable': 'app_auth',
}]
}],
}, {
'url': 'https://platform.wim.tv/common/config/endpointconfig.js',
'vars': [{
@@ -75,7 +75,7 @@ class WimTVIE(InfoExtractor):
}, {
'regex': r'PRODUCTION_HOSTNAME_THUMB\s*\+\s*"(.+?)"',
'variable': 'thumb_server_path',
}]
}],
}]
for data in datas:
@@ -83,13 +83,13 @@ class WimTVIE(InfoExtractor):
for var in data['vars']:
val = self._search_regex(var['regex'], temp, msg_id)
if not val:
raise ExtractorError('%s not found' % var['variable'])
raise ExtractorError('{} not found'.format(var['variable']))
self._player[var['variable']] = val
def _generate_token(self):
json = self._download_json(
'https://platform.wim.tv/wimtv-server/oauth/token', 'Token generation',
headers={'Authorization': 'Basic %s' % self._player['app_auth']},
headers={'Authorization': 'Basic {}'.format(self._player['app_auth'])},
data=urlencode_postdata({'grant_type': 'client_credentials'}))
token = json.get('access_token')
if not token:
@@ -101,7 +101,7 @@ class WimTVIE(InfoExtractor):
return None
if not self._player.get('thumb_server_path'):
self._player['thumb_server_path'] = ''
return '%s%s/asset/thumbnail/%s/%s' % (
return '{}{}/asset/thumbnail/{}/{}'.format(
self._player['thumb_server'],
self._player['thumb_server_path'],
thumb_id, width)
@@ -118,11 +118,11 @@ class WimTVIE(InfoExtractor):
is_live = False
token = self._generate_token()
json = self._download_json(
'https://platform.wim.tv/wimtv-server/api/public/%s/%s/play' % (
stream_type, video_id), video_id,
headers={'Authorization': 'Bearer %s' % token,
'Content-Type': 'application/json'},
data=bytes('{}', 'utf-8'))
f'https://platform.wim.tv/wimtv-server/api/public/{stream_type}/{video_id}/play',
video_id, headers={
'Authorization': f'Bearer {token}',
'Content-Type': 'application/json',
}, data=b'{}')
formats = []
for src in json.get('srcs') or []: