From 0a4fb0d3fe8ff5f55e9bfd9aec47ed251fd41615 Mon Sep 17 00:00:00 2001 From: ischmidt20 Date: Sun, 19 Jun 2022 23:06:37 -0400 Subject: [PATCH] [WatchESPN] Support free videos and BAM_DTC (#4118) Authored by: ischmidt20 --- yt_dlp/extractor/espn.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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)