aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--yt_dlp/extractor/espn.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/yt_dlp/extractor/espn.py b/yt_dlp/extractor/espn.py
index e45025b2b..7aa454063 100644
--- a/yt_dlp/extractor/espn.py
+++ b/yt_dlp/extractor/espn.py
@@ -322,7 +322,7 @@ class WatchESPNIE(AdobePassIE):
video_id)['playbackState']
# ESPN+ subscription required, through cookies
- if video_data.get('sourceId') == 'ESPN_DTC':
+ if 'DTC' in video_data.get('sourceId'):
cookie = self._get_cookies(url).get('ESPN-ONESITE.WEB-PROD.token')
if not cookie:
self.raise_login_required(method='cookies')
@@ -366,6 +366,13 @@ class WatchESPNIE(AdobePassIE):
})
m3u8_url, headers = playback['stream']['complete'][0]['url'], {'authorization': token}
+ # No login required
+ elif video_data.get('sourceId') == 'ESPN_FREE':
+ asset = self._download_json(
+ f'https://watch.auth.api.espn.com/video/auth/media/{video_id}/asset?apikey=uiqlbgzdwuru14v627vdusswb',
+ video_id)
+ m3u8_url, headers = asset['stream'], {}
+
# TV Provider required
else:
resource = self._get_mvpd_resource('ESPN', video_data['name'], video_id, None)