summaryrefslogtreecommitdiffstats
path: root/yt_dlp/extractor/mlb.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-08-05 09:07:50 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-08-05 09:07:50 +0000
commit179f851ddd9155f39350c98ef37697a130f52701 (patch)
tree4b37a97e6087839d9dbe1d68028e5c70b1c731df /yt_dlp/extractor/mlb.py
parentAdding debian version 2024.07.25-1. (diff)
downloadyt-dlp-179f851ddd9155f39350c98ef37697a130f52701.tar.xz
yt-dlp-179f851ddd9155f39350c98ef37697a130f52701.zip
Merging upstream version 2024.08.01.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'yt_dlp/extractor/mlb.py')
-rw-r--r--yt_dlp/extractor/mlb.py20
1 files changed, 16 insertions, 4 deletions
diff --git a/yt_dlp/extractor/mlb.py b/yt_dlp/extractor/mlb.py
index 230c218..935bf85 100644
--- a/yt_dlp/extractor/mlb.py
+++ b/yt_dlp/extractor/mlb.py
@@ -290,9 +290,18 @@ class MLBTVIE(InfoExtractor):
'release_date': '20220702',
'release_timestamp': 1656792300,
},
- 'params': {
- 'skip_download': True,
+ 'params': {'skip_download': 'm3u8'},
+ }, {
+ # makeup game: has multiple dates, need to avoid games with 'rescheduleDate'
+ 'url': 'https://www.mlb.com/tv/g747039/vd22541c4-5a29-45f7-822b-635ec041cf5e',
+ 'info_dict': {
+ 'id': '747039',
+ 'ext': 'mp4',
+ 'title': '2024-07-29 - Toronto Blue Jays @ Baltimore Orioles',
+ 'release_date': '20240729',
+ 'release_timestamp': 1722280200,
},
+ 'params': {'skip_download': 'm3u8'},
}]
_GRAPHQL_INIT_QUERY = '''\
mutation initSession($device: InitSessionInput!, $clientType: ClientType!, $experience: ExperienceTypeInput) {
@@ -463,11 +472,14 @@ mutation initPlaybackSession(
def _real_extract(self, url):
video_id = self._match_id(url)
- metadata = traverse_obj(self._download_json(
+ data = self._download_json(
'https://statsapi.mlb.com/api/v1/schedule', video_id, query={
'gamePk': video_id,
'hydrate': 'broadcasts(all),statusFlags',
- }), ('dates', ..., 'games', lambda _, v: str(v['gamePk']) == video_id and v['broadcasts'], any))
+ })
+ metadata = traverse_obj(data, (
+ 'dates', ..., 'games',
+ lambda _, v: str(v['gamePk']) == video_id and not v.get('rescheduleDate'), any))
broadcasts = traverse_obj(metadata, (
'broadcasts', lambda _, v: v['mediaId'] and v['mediaState']['mediaStateCode'] != 'MEDIA_OFF'))