diff --git a/externs/shaka/player.js b/externs/shaka/player.js
index bdaf20b6f9..bd038dd7a8 100644
--- a/externs/shaka/player.js
+++ b/externs/shaka/player.js
@@ -1800,10 +1800,12 @@ shaka.extern.LiveSyncConfiguration;
*
* Defaults to 0.5
.
* @property {boolean} infiniteLiveStreamDuration
- * If true
, the media source live duration
- * set as aInfinity
+ * If true
, the media source duration of livestreams will be set
+ * to Infinity
. Otherwise, it will be set to a high but
+ * non-infinite number (2^32).
*
- * Defaults to false
.
+ * Defaults to false
except on Safari 17 or above whose default
+ * value is true
.
* @property {number} preloadNextUrlWindow
* The window of time at the end of the presentation to begin preloading the
* next URL, such as one specified by a urn:mpeg:dash:chaining:2016 element
diff --git a/lib/util/player_configuration.js b/lib/util/player_configuration.js
index c30998c8fd..3c92534559 100644
--- a/lib/util/player_configuration.js
+++ b/lib/util/player_configuration.js
@@ -276,6 +276,11 @@ shaka.util.PlayerConfiguration = class {
shaka.util.Platform.isTizen(),
};
+ const safariVersion = shaka.util.Platform.safariVersion();
+ if (safariVersion && safariVersion >= 17) {
+ streaming.infiniteLiveStreamDuration = true;
+ }
+
// WebOS, Tizen, Chromecast and Hisense have long hardware pipelines
// that respond slowly to seeking.
// Therefore we should not seek when we detect a stall