mlbserver 2026.4.16 → 2026.4.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/index.js +10 -1
  2. package/package.json +1 -1
  3. package/session.js +1 -1
package/index.js CHANGED
@@ -540,6 +540,10 @@ function getMasterPlaylist(streamURL, req, res, options = {}) {
540
540
  }
541
541
 
542
542
  let resolution = options.resolution || VALID_RESOLUTIONS[0]
543
+ // assume 1080p60 resolution is best, to enable fallback to 720p60 when necessary
544
+ if ( resolution == VALID_RESOLUTIONS[1] ) {
545
+ resolution = 'best'
546
+ }
543
547
  let audio_track = options.audio_track || VALID_AUDIO_TRACKS[0]
544
548
  // if specific audio track is requested, check if master playlist contains it
545
549
  if ( (audio_track != VALID_AUDIO_TRACKS[0]) && (audio_track != VALID_AUDIO_TRACKS[6]) ) {
@@ -2531,7 +2535,10 @@ app.get('/', async function(req, res) {
2531
2535
  }
2532
2536
 
2533
2537
  if ( mediaType == VALID_MEDIA_TYPES[0] ) {
2534
- body += '<p><span class="tooltip">Video<span class="tooltiptext">For video streams only: you can manually specifiy a video track (resolution) to use. Adaptive will let your client choose. 1080p60 or 720p60 is the best quality. 540p is default for multiview (see below).<br/><br/>None will allow to remove the video tracks, if you just want to listen to the audio while using the "start at inning" or "skip breaks" options enabled.</span></span>: '
2538
+ body += '<p><span class="tooltip">Video<span class="tooltiptext">For video streams only: you can manually specifiy a video track (resolution) to use. Adaptive will let your client choose. Best will select either 1080p60 (MLB) or 720p60 (MiLB). 504p is default for multiview (see below).<br/><br/>None will allow to remove the video tracks, if you just want to listen to the audio while using the "start at inning" or "skip breaks" options enabled.</span></span>: '
2539
+ body += '<button '
2540
+ if ( resolution == 'best' ) body += 'class="default" '
2541
+ body += 'onclick="resolution=\'best\';reload()">best</button> '
2535
2542
  for (var i = 0; i < VALID_RESOLUTIONS.length; i++) {
2536
2543
  body += '<button '
2537
2544
  if ( resolution == VALID_RESOLUTIONS[i] ) body += 'class="default" '
@@ -2742,6 +2749,8 @@ app.get('/', async function(req, res) {
2742
2749
  }
2743
2750
 
2744
2751
  body += '<p><span class="tooltip">Comskip link examples<span class="tooltiptext">You can generate a <a href="https://github.com/erikkaashoek/Comskip">Comskip</a>-style file to automatically skip sections (breaks, idle time, or non-action pitches) of games you record using DVR software when watched in compatible players. For example, if you record a game from your local OTA channel using Tvheadend, you can then fetch one of these Comskip files, put it in the same directory with the same name as your recorded video file, and Kodi will automatically skip those sections while you watch the video.<br><br>Specifying the team and broadcast_start_timestamp in the URL is required! For the timestamp, use the time your DVR software began the recording. This should be your local time in YYYY-MM-DDTHH:MM:SS format.<br><br>Specifying a skip_adjust value in the URL is recommended, to adjust for broadcast delays. This will vary across different channels and different video sources.<br><br>For the txt file format, specifying the video frame rate (fps) in the URL is also required. This will commonly be either 30, 59.94, or 60, depending on your video source.<br><br>Optionally, setting pad to "on" will generate random extra skips at the end, to help avoid timeline spoilers.</span></span>: <a href="' + http_root + '/comskip.edl?team=CHC&date=2025-10-01&pad=on&skip=pitches&skip_adjust=11&broadcast_start_timestamp=2025-10-01T14:00:00' + content_protect_a + '">comskip.edl</a> or <a href="' + http_root + '/comskip.txt?team=CHC&date=2025-10-01&pad=on&skip=pitches&skip_adjust=11&broadcast_start_timestamp=2025-10-01T14:00:00&fps=59.94' + content_protect_a + '">comskip.txt</a></p>' + "\n"
2752
+
2753
+ body += '<p><span class="tooltip">MPEG-TS examples<span class="tooltiptext">Experimental feature: a MPEGTS output format where you can adjust the audio sync with a URL parameter. Useful if the radio track is a consistent number of seconds ahead or behind the video track. Use positive sync values if radio is early, or negative values if radio is late.</span></span>: <a href="' + http_root + '/stream.ts?team=' + example_team + content_protect_a + '">Stream</a> or <a href="' + http_root + '/stream.ts?team=' + example_team + '&audio_track=radio&sync=2.3' + content_protect_a + '">Stream w/ radio sync</a></p>' + "\n"
2745
2754
 
2746
2755
  body += '</p></td></tr></table><br/>' + "\n"
2747
2756
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mlbserver",
3
- "version": "2026.4.16",
3
+ "version": "2026.4.23",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",
package/session.js CHANGED
@@ -3556,7 +3556,7 @@ class sessionClass {
3556
3556
 
3557
3557
  let currentDate = new Date()
3558
3558
  if ( !this.cache || !this.cache.bigInningScheduleCacheExpiry || (currentDate > new Date(this.cache.bigInningScheduleCacheExpiry)) ) {
3559
- if ( !this.cache.bigInningSchedule ) this.cache.bigInningSchedule = {}
3559
+ this.cache.bigInningSchedule = {}
3560
3560
  let reqObj = {
3561
3561
  url: 'https://watch.product.api.espn.com/api/product/v3/watchespn/web/catalog/ae4eb028-0af3-42e7-8965-9304c5817969?lang=en&features=continueWatching%2Csfb-all%2Cpbov7%2Chigh-volume-row%2Csc4u%2Cguide-menu-header%2Ccutl%2Cheader-quickserve%2Cautoplay%2Cwatch-web-redesign%2CimageRatio58x13%2CpromoTiles%2CopenAuthz%2Cvideo-header%2Cexplore-row%2Cbutton-service%2Cinline-header%2Cflagship&deviceBrand=web&streamMenu=true&headerBgImageWidth=1280&countryCode=US&entitlements=no&tz=UTC-0400&userab=espn_watch_for_you_web-392*watch-fy-a-1642',
3562
3562
  headers: {