diff --git a/THIRD_PARTY.txt b/THIRD_PARTY.txt
index 7e653128..c138529e 100644
--- a/THIRD_PARTY.txt
+++ b/THIRD_PARTY.txt
@@ -1892,8 +1892,8 @@ https://cdn.jsdelivr.net/npm/videojs-seek-buttons@2.2.1/dist/videojs-seek-button
https://cdn.jsdelivr.net/npm/videojs-seek-buttons@2.2.1/dist/videojs-seek-buttons.min.js
https://cdn.jsdelivr.net/npm/videojs-seek-buttons@3.0.1/dist/videojs-seek-buttons.css
https://cdn.jsdelivr.net/npm/videojs-seek-buttons@3.0.1/dist/videojs-seek-buttons.min.js
-https://cdn.jsdelivr.net/npm/videojs-seek-buttons@4.0.2/dist/videojs-seek-buttons.css
-https://cdn.jsdelivr.net/npm/videojs-seek-buttons@4.0.2/dist/videojs-seek-buttons.min.js
+https://cdn.jsdelivr.net/npm/videojs-seek-buttons@4.0.3/dist/videojs-seek-buttons.css
+https://cdn.jsdelivr.net/npm/videojs-seek-buttons@4.0.3/dist/videojs-seek-buttons.min.js
https://cdn.jsdelivr.net/npm/vue@1.0.28/dist/vue.min.js
https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.min.js
https://cdn.jsdelivr.net/npm/vue-match-media@1.0.3/dist/index.min.js
diff --git a/modules/internal/targets.js b/modules/internal/targets.js
index 551ad1b5..0a530c3b 100644
--- a/modules/internal/targets.js
+++ b/modules/internal/targets.js
@@ -477,7 +477,7 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/videojs-seek-buttons/1.')) return '1.6.0';
if (type.startsWith('/videojs-seek-buttons/2.')) return '2.2.1';
if (type.startsWith('/videojs-seek-buttons/3.')) return '3.0.1';
- if (type.startsWith('/videojs-seek-buttons/4.')) return '4.0.2';
+ if (type.startsWith('/videojs-seek-buttons/4.')) return '4.0.3';
if (type.startsWith('/video.js/')) {
if (helpers.compareVersion('5.20.5', version)) return '5.20.5'; // <= 5.20.5
if (helpers.compareVersion('6.13.0', version)) return '6.13.0'; // > 5.20.5 to <= 6.13.0
diff --git a/pages/updates/updates.html b/pages/updates/updates.html
index a13ee954..f36f6c7e 100644
--- a/pages/updates/updates.html
+++ b/pages/updates/updates.html
@@ -40,6 +40,7 @@
hls.js v1.4.0 -> v1.4.3 (#1432)
instantsearch.js v4.55.0 -> v4.56.0 (#1433)
libphonenumber-js v1.10.28 -> v1.10.30 (#1434)
+ videojs-seek-buttons v4.0.2 -> v4.0.3 (#1435)
Mapping
diff --git a/resources/videojs-seek-buttons/4.0.2/videojs-seek-buttons.min.css b/resources/videojs-seek-buttons/4.0.2/videojs-seek-buttons.min.css
deleted file mode 100644
index 26b4dd16..00000000
--- a/resources/videojs-seek-buttons/4.0.2/videojs-seek-buttons.min.css
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! @name videojs-seek-buttons @version 4.0.2 @license Apache-2.0 */
-.video-js .vjs-seek-button{font-family:'VideoJS';cursor:pointer;font-weight:400;font-style:normal}.video-js .vjs-seek-button.skip-back .vjs-icon-placeholder::before{transform:rotate(-45deg);-ms-transform:rotate(-45deg);-webkit-transform:rotate(-45deg);content:'\f116'}.video-js .vjs-seek-button.skip-forward .vjs-icon-placeholder::before{transform:scale(-1,1) rotate(-45deg);-ms-transform:scale(-1,1) rotate(-45deg);-webkit-transform:scale(-1,1) rotate(-45deg);content:'\f116'}
\ No newline at end of file
diff --git a/resources/videojs-seek-buttons/4.0.2/videojs-seek-buttons.min.jsm b/resources/videojs-seek-buttons/4.0.2/videojs-seek-buttons.min.jsm
deleted file mode 100644
index 52ca8ab4..00000000
--- a/resources/videojs-seek-buttons/4.0.2/videojs-seek-buttons.min.jsm
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! @name videojs-seek-buttons @version 4.0.2 @license Apache-2.0 */
-!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("video.js")):"function"==typeof define&&define.amd?define(["video.js"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).videojsSeekButtons=t(e.videojs)}(this,(function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=t(e);const s=o.default.getComponent("Button"),i={forwardIndex:1,backIndex:1},n=function(e){this.ready((()=>{((e,t)=>{e.addClass("vjs-seek-buttons"),t.forward&&t.forward>0&&(e.controlBar.seekForward=e.controlBar.addChild("seekButton",{direction:"forward",seconds:t.forward},t.forwardIndex)),t.back&&t.back>0&&(e.controlBar.seekBack=e.controlBar.addChild("seekButton",{direction:"back",seconds:t.back},t.backIndex))})(this,o.default.obj.merge(i,e))}))};n.VERSION="4.0.2";return o.default.registerComponent("SeekButton",class extends s{constructor(e,t){super(e,t),"forward"===this.options_.direction?this.controlText(this.localize("Seek forward {{seconds}} seconds").replace("{{seconds}}",this.options_.seconds)):"back"===this.options_.direction&&this.controlText(this.localize("Seek back {{seconds}} seconds").replace("{{seconds}}",this.options_.seconds))}buildCSSClass(){return`vjs-seek-button skip-${this.options_.direction} skip-${this.options_.seconds} ${super.buildCSSClass()}`}handleClick(){const e=this.player_.currentTime();if("forward"===this.options_.direction){let t=this.player_.duration();this.player_.liveTracker&&this.player_.liveTracker.isLive()&&(t=this.player_.liveTracker.seekableEnd()),this.player_.currentTime(Math.min(e+this.options_.seconds,t))}else"back"===this.options_.direction&&this.player_.currentTime(Math.max(0,e-this.options_.seconds))}}),o.default.registerPlugin("seekButtons",n),n}));
diff --git a/resources/videojs-seek-buttons/4.0.3/videojs-seek-buttons.min.css b/resources/videojs-seek-buttons/4.0.3/videojs-seek-buttons.min.css
new file mode 100644
index 00000000..06f35fe7
--- /dev/null
+++ b/resources/videojs-seek-buttons/4.0.3/videojs-seek-buttons.min.css
@@ -0,0 +1,2 @@
+/*! @name videojs-seek-buttons @version 4.0.3 @license Apache-2.0 */
+.video-js .vjs-seek-button{cursor:pointer}.video-js .vjs-seek-button.skip-back .vjs-icon-placeholder::before{transform:rotate(-45deg)}.video-js .vjs-seek-button.skip-forward .vjs-icon-placeholder::before{transform:scale(-1,1) rotate(-45deg)}
\ No newline at end of file
diff --git a/resources/videojs-seek-buttons/4.0.3/videojs-seek-buttons.min.jsm b/resources/videojs-seek-buttons/4.0.3/videojs-seek-buttons.min.jsm
new file mode 100644
index 00000000..83764e5e
--- /dev/null
+++ b/resources/videojs-seek-buttons/4.0.3/videojs-seek-buttons.min.jsm
@@ -0,0 +1,2 @@
+/*! @name videojs-seek-buttons @version 4.0.3 @license Apache-2.0 */
+!function(e,s){"object"==typeof exports&&"undefined"!=typeof module?module.exports=s(require("video.js")):"function"==typeof define&&define.amd?define(["video.js"],s):(e="undefined"!=typeof globalThis?globalThis:e||self).videojsSeekButtons=s(e.videojs)}(this,(function(e){"use strict";function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=s(e);const o=t.default.getComponent("Button"),i={forwardIndex:1,backIndex:1},n=function(e){this.ready((()=>{((e,s)=>{e.addClass("vjs-seek-buttons"),s.forward&&s.forward>0&&(e.controlBar.seekForward=e.controlBar.addChild("seekButton",{direction:"forward",seconds:s.forward},s.forwardIndex)),s.back&&s.back>0&&(e.controlBar.seekBack=e.controlBar.addChild("seekButton",{direction:"back",seconds:s.back},s.backIndex))})(this,t.default.obj.merge(i,e))}))};n.VERSION="4.0.3";return t.default.registerComponent("SeekButton",class extends o{constructor(e,s){super(e,s),this.$(".vjs-icon-placeholder").classList.add("vjs-icon-replay"),"forward"===this.options_.direction?this.controlText(this.localize("Seek forward {{seconds}} seconds").replace("{{seconds}}",this.options_.seconds)):"back"===this.options_.direction&&this.controlText(this.localize("Seek back {{seconds}} seconds").replace("{{seconds}}",this.options_.seconds))}buildCSSClass(){return`vjs-seek-button skip-${this.options_.direction} skip-${this.options_.seconds} ${super.buildCSSClass()}`}handleClick(){const e=this.player_.currentTime();if("forward"===this.options_.direction){let s=this.player_.duration();this.player_.liveTracker&&this.player_.liveTracker.isLive()&&(s=this.player_.liveTracker.seekableEnd()),this.player_.currentTime(Math.min(e+this.options_.seconds,s))}else"back"===this.options_.direction&&this.player_.currentTime(Math.max(0,e-this.options_.seconds))}}),t.default.registerPlugin("seekButtons",n),n}));