From 746e5ba0d85ddcde0fd93519b8f34a91e91860c7 Mon Sep 17 00:00:00 2001 From: Lachezar Lechev Date: Tue, 15 Jul 2025 21:56:47 +0300 Subject: [PATCH 01/11] feat: Player - use player.stream field chore: bump core-web to feature branch Signed-off-by: Lachezar Lechev --- package-lock.json | 43 ++++++++++++++++--------------------- package.json | 2 +- src/routes/Player/Player.js | 4 ++-- 3 files changed, 21 insertions(+), 28 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7d5ed4487..793c492c3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "@babel/runtime": "7.26.0", "@sentry/browser": "8.42.0", "@stremio/stremio-colors": "5.2.0", - "@stremio/stremio-core-web": "0.49.4", + "@stremio/stremio-core-web": "file:../core/stremio-core-web", "@stremio/stremio-icons": "5.7.1", "@stremio/stremio-video": "0.0.61", "a-color-picker": "1.2.1", @@ -81,6 +81,21 @@ "workbox-webpack-plugin": "^7.3.0" } }, + "../core/stremio-core-web": { + "name": "@stremio/stremio-core-web", + "version": "0.49.4", + "license": "MIT", + "dependencies": { + "@babel/runtime": "7.24.1" + }, + "devDependencies": { + "@babel/cli": "7.24.1", + "@babel/core": "7.24.3", + "@babel/plugin-transform-runtime": "7.24.3", + "@babel/preset-env": "7.24.3", + "babel-plugin-bundled-import-meta": "0.3.2" + } + }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", @@ -3374,30 +3389,8 @@ "integrity": "sha512-dYlPgu9W/H7c9s1zmW5tiDnRenaUa4Hg1QCyOg1lhOcgSfM/bVTi5nnqX+IfvGTTUNA0zgzh8hI3o3miwnZxTg==" }, "node_modules/@stremio/stremio-core-web": { - "version": "0.49.4", - "resolved": "https://registry.npmjs.org/@stremio/stremio-core-web/-/stremio-core-web-0.49.4.tgz", - "integrity": "sha512-K9LJGKXs8juV3pZOHH6thWTwOShAhjFt9bLL6K1VlORAe6AiieZ2uRp9wdOwFmPX+UgzWLIOd0r2aFXJ4OsJCw==", - "dependencies": { - "@babel/runtime": "7.24.1" - } - }, - "node_modules/@stremio/stremio-core-web/node_modules/@babel/runtime": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.1.tgz", - "integrity": "sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@stremio/stremio-core-web/node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "license": "MIT" + "resolved": "../core/stremio-core-web", + "link": true }, "node_modules/@stremio/stremio-icons": { "version": "5.7.1", diff --git a/package.json b/package.json index ffcaef6b2..eddd3c805 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@babel/runtime": "7.26.0", "@sentry/browser": "8.42.0", "@stremio/stremio-colors": "5.2.0", - "@stremio/stremio-core-web": "0.49.4", + "@stremio/stremio-core-web": "https://stremio.github.io/stremio-core/stremio-core-web/feat/stream-rar-and-zip-stream-creation/dev/stremio-stremio-core-web-0.49.4.tgz", "@stremio/stremio-icons": "5.7.1", "@stremio/stremio-video": "0.0.61", "a-color-picker": "1.2.1", diff --git a/src/routes/Player/Player.js b/src/routes/Player/Player.js index 436f1a781..613429610 100644 --- a/src/routes/Player/Player.js +++ b/src/routes/Player/Player.js @@ -322,10 +322,10 @@ const Player = ({ urlParams, queryParams }) => { setError(null); video.unload(); - if (player.selected && streamingServer.settings?.type !== 'Loading') { + if (player.stream?.type === 'Ready' && streamingServer.settings?.type !== 'Loading') { video.load({ stream: { - ...player.selected.stream, + ...player.stream.content, subtitles: Array.isArray(player.selected.stream.subtitles) ? player.selected.stream.subtitles.map((subtitles) => ({ ...subtitles, From 0bec58b158c3662f197d9a408f342b387e2a563b Mon Sep 17 00:00:00 2001 From: Lachezar Lechev Date: Fri, 18 Jul 2025 12:08:21 +0300 Subject: [PATCH 02/11] fix: package-lock Signed-off-by: Lachezar Lechev --- package-lock.json | 44 ++++++++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/package-lock.json b/package-lock.json index 793c492c3..bf2e30a35 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "@babel/runtime": "7.26.0", "@sentry/browser": "8.42.0", "@stremio/stremio-colors": "5.2.0", - "@stremio/stremio-core-web": "file:../core/stremio-core-web", + "@stremio/stremio-core-web": "https://stremio.github.io/stremio-core/stremio-core-web/feat/stream-rar-and-zip-stream-creation/dev/stremio-stremio-core-web-0.49.4.tgz", "@stremio/stremio-icons": "5.7.1", "@stremio/stremio-video": "0.0.61", "a-color-picker": "1.2.1", @@ -81,21 +81,6 @@ "workbox-webpack-plugin": "^7.3.0" } }, - "../core/stremio-core-web": { - "name": "@stremio/stremio-core-web", - "version": "0.49.4", - "license": "MIT", - "dependencies": { - "@babel/runtime": "7.24.1" - }, - "devDependencies": { - "@babel/cli": "7.24.1", - "@babel/core": "7.24.3", - "@babel/plugin-transform-runtime": "7.24.3", - "@babel/preset-env": "7.24.3", - "babel-plugin-bundled-import-meta": "0.3.2" - } - }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", @@ -3389,8 +3374,31 @@ "integrity": "sha512-dYlPgu9W/H7c9s1zmW5tiDnRenaUa4Hg1QCyOg1lhOcgSfM/bVTi5nnqX+IfvGTTUNA0zgzh8hI3o3miwnZxTg==" }, "node_modules/@stremio/stremio-core-web": { - "resolved": "../core/stremio-core-web", - "link": true + "version": "0.49.4", + "resolved": "https://stremio.github.io/stremio-core/stremio-core-web/feat/stream-rar-and-zip-stream-creation/dev/stremio-stremio-core-web-0.49.4.tgz", + "integrity": "sha512-GZ+Uzan2/toIUFLNdLMTevjpuD3+YzjrGJi2nH6ujwN70CkxynQICvaNMe7fHi029Trx+mUs6Hv/fhGE2DqQPA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "7.24.1" + } + }, + "node_modules/@stremio/stremio-core-web/node_modules/@babel/runtime": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.1.tgz", + "integrity": "sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@stremio/stremio-core-web/node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" }, "node_modules/@stremio/stremio-icons": { "version": "5.7.1", From 3c2f8cb89b390792f6c211b8abda33fb25a69587 Mon Sep 17 00:00:00 2001 From: Lachezar Lechev Date: Fri, 18 Jul 2025 12:08:48 +0300 Subject: [PATCH 03/11] fix: Player - selected check before video.load Signed-off-by: Lachezar Lechev --- src/routes/Player/Player.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/routes/Player/Player.js b/src/routes/Player/Player.js index 613429610..64528037d 100644 --- a/src/routes/Player/Player.js +++ b/src/routes/Player/Player.js @@ -322,7 +322,8 @@ const Player = ({ urlParams, queryParams }) => { setError(null); video.unload(); - if (player.stream?.type === 'Ready' && streamingServer.settings?.type !== 'Loading') { + // if (player.stream?.type === 'Ready' && streamingServer.settings?.type !== 'Loading') { + if (player.selected && player.stream?.type === 'Ready' && streamingServer.settings?.type !== 'Loading') { video.load({ stream: { ...player.stream.content, @@ -358,7 +359,7 @@ const Player = ({ urlParams, queryParams }) => { shellTransport: services.shell.active ? services.shell.transport : null, }); } - }, [streamingServer.baseUrl, player.selected, forceTranscoding, casting]); + }, [streamingServer.baseUrl, player.selected, player.selected, forceTranscoding, casting]); React.useEffect(() => { if (video.state.stream !== null) { const tracks = player.subtitles.map((subtitles) => ({ From 88ed54641420b20ad85d9403933726a16a11cbbc Mon Sep 17 00:00:00 2001 From: Lachezar Lechev Date: Wed, 3 Sep 2025 12:07:30 +0300 Subject: [PATCH 04/11] chore: change PullUserFromAPI action and include args Signed-off-by: Lachezar Lechev --- src/App/App.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/App/App.js b/src/App/App.js index 3e816be9f..8bb22c679 100644 --- a/src/App/App.js +++ b/src/App/App.js @@ -159,7 +159,8 @@ const App = () => { services.core.transport.dispatch({ action: 'Ctx', args: { - action: 'PullUserFromAPI' + action: 'PullUserFromAPI', + args: {} } }); services.core.transport.dispatch({ From 4001ea3accc65d5ee34cf51c1a8ad76dea489432 Mon Sep 17 00:00:00 2001 From: Lachezar Lechev Date: Wed, 10 Sep 2025 21:35:57 +0300 Subject: [PATCH 05/11] chore: update stremio-core-web dep --- package-lock.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index bf2e30a35..322fc99fc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3376,7 +3376,7 @@ "node_modules/@stremio/stremio-core-web": { "version": "0.49.4", "resolved": "https://stremio.github.io/stremio-core/stremio-core-web/feat/stream-rar-and-zip-stream-creation/dev/stremio-stremio-core-web-0.49.4.tgz", - "integrity": "sha512-GZ+Uzan2/toIUFLNdLMTevjpuD3+YzjrGJi2nH6ujwN70CkxynQICvaNMe7fHi029Trx+mUs6Hv/fhGE2DqQPA==", + "integrity": "sha512-X380pRip1zm8hcWCTC9gFiqN+Pb+Na3mKZqUGk9Rps3tZFncuqG4xvQ6v12zLU0rqxoYIr1vfKhUJoA03+lAeQ==", "license": "MIT", "dependencies": { "@babel/runtime": "7.24.1" From ec34a84154037e9360ccc26f5184713cdd0de3c5 Mon Sep 17 00:00:00 2001 From: Lachezar Lechev Date: Thu, 2 Oct 2025 09:21:41 +0300 Subject: [PATCH 06/11] chore: bump core-web revision Signed-off-by: Lachezar Lechev --- package-lock.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 513b7786f..5a725269a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3376,7 +3376,7 @@ "node_modules/@stremio/stremio-core-web": { "version": "0.49.4", "resolved": "https://stremio.github.io/stremio-core/stremio-core-web/feat/stream-rar-and-zip-stream-creation/dev/stremio-stremio-core-web-0.49.4.tgz", - "integrity": "sha512-X380pRip1zm8hcWCTC9gFiqN+Pb+Na3mKZqUGk9Rps3tZFncuqG4xvQ6v12zLU0rqxoYIr1vfKhUJoA03+lAeQ==", + "integrity": "sha512-zb1Xn/X3F8kqjqnyChw3gX+RamqGlPhXd2ioWC8J0AEzvTKEsM42FvzWTnxLrhj+NMpCSomAn6k9ccfA/W5Htg==", "license": "MIT", "dependencies": { "@babel/runtime": "7.24.1" From f39944373b36c4cf844e19159c3a8b7b0cd16743 Mon Sep 17 00:00:00 2001 From: Lachezar Lechev Date: Fri, 3 Oct 2025 15:01:17 +0300 Subject: [PATCH 07/11] chore: bump core-web revision Signed-off-by: Lachezar Lechev --- package-lock.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 5a725269a..6e5f32c65 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3376,7 +3376,7 @@ "node_modules/@stremio/stremio-core-web": { "version": "0.49.4", "resolved": "https://stremio.github.io/stremio-core/stremio-core-web/feat/stream-rar-and-zip-stream-creation/dev/stremio-stremio-core-web-0.49.4.tgz", - "integrity": "sha512-zb1Xn/X3F8kqjqnyChw3gX+RamqGlPhXd2ioWC8J0AEzvTKEsM42FvzWTnxLrhj+NMpCSomAn6k9ccfA/W5Htg==", + "integrity": "sha512-oAba/z82BipXuNXzrT9BgiX4IBFZSU3rbP8kqbdQU4cdui1CLOZdOzzkw8Le6hbo1PhUdVsI1qHh6gOkW6yiOQ==", "license": "MIT", "dependencies": { "@babel/runtime": "7.24.1" From 5f1841bfb8b27b71db107d6c1535b8e318412e6c Mon Sep 17 00:00:00 2001 From: Lachezar Lechev Date: Wed, 26 Nov 2025 21:10:23 +0200 Subject: [PATCH 08/11] fix: player and useStatistics - use player.stream Signed-off-by: Lachezar Lechev --- src/routes/Player/Player.js | 3 +-- src/routes/Player/useStatistics.js | 11 ++++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/routes/Player/Player.js b/src/routes/Player/Player.js index 1ff2b1e38..2ff0d64e4 100644 --- a/src/routes/Player/Player.js +++ b/src/routes/Player/Player.js @@ -323,8 +323,7 @@ const Player = ({ urlParams, queryParams }) => { setError(null); video.unload(); - // if (player.stream?.type === 'Ready' && streamingServer.settings?.type !== 'Loading') { - if (player.selected && player.stream?.type === 'Ready' && streamingServer.settings?.type !== 'Loading') { + if (player.stream?.type === 'Ready' && streamingServer.settings?.type !== 'Loading') { video.load({ stream: { ...player.stream.content, diff --git a/src/routes/Player/useStatistics.js b/src/routes/Player/useStatistics.js index d13411327..d8b241a8c 100644 --- a/src/routes/Player/useStatistics.js +++ b/src/routes/Player/useStatistics.js @@ -7,11 +7,12 @@ const useStatistics = (player, streamingServer) => { const { core } = useServices(); const stream = React.useMemo(() => { - return player.selected?.stream ? - player.selected.stream - : - null; - }, [player.selected]); + if (player.stream?.type === 'Ready') { + return player.stream.content; + } else { + return null; + } + }, [player.stream]); const infoHash = React.useMemo(() => { return stream?.infoHash ? From 4c407392dd34f3b768a24d3a5d8a70241a01fc19 Mon Sep 17 00:00:00 2001 From: Lachezar Lechev Date: Thu, 27 Nov 2025 12:14:02 +0200 Subject: [PATCH 09/11] fix(player): options video - download video should prefer downloadUrl instead of streamingUrl Signed-off-by: Lachezar Lechev --- src/routes/Player/OptionsMenu/OptionsMenu.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/routes/Player/OptionsMenu/OptionsMenu.js b/src/routes/Player/OptionsMenu/OptionsMenu.js index 968de5341..da826ba41 100644 --- a/src/routes/Player/OptionsMenu/OptionsMenu.js +++ b/src/routes/Player/OptionsMenu/OptionsMenu.js @@ -54,8 +54,8 @@ const OptionsMenu = ({ className, stream, playbackDevices, extraSubtitlesTracks, } }, [streamingUrl, downloadUrl]); const onDownloadVideoButtonClick = React.useCallback(() => { - if (streamingUrl || downloadUrl) { - platform.openExternal(streamingUrl || downloadUrl); + if (downloadUrl || streamingUrl ) { + platform.openExternal(downloadUrl || streamingUrl); } }, [streamingUrl, downloadUrl]); From 924cd715d22fc892cc49b6a0619a885331305572 Mon Sep 17 00:00:00 2001 From: Lachezar Lechev Date: Thu, 27 Nov 2025 12:52:40 +0200 Subject: [PATCH 10/11] chore: bump stremio-core-web to 0.51.0 Signed-off-by: Lachezar Lechev --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 5adafcf04..51333515b 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@babel/runtime": "7.26.0", "@sentry/browser": "8.42.0", "@stremio/stremio-colors": "5.2.0", - "@stremio/stremio-core-web": "0.50.0", + "@stremio/stremio-core-web": "0.51.0", "@stremio/stremio-icons": "5.8.0", "@stremio/stremio-video": "0.0.64", "a-color-picker": "1.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7ce641739..571443aac 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18,8 +18,8 @@ importers: specifier: 5.2.0 version: 5.2.0 '@stremio/stremio-core-web': - specifier: 0.50.0 - version: 0.50.0 + specifier: 0.51.0 + version: 0.51.0 '@stremio/stremio-icons': specifier: 5.8.0 version: 5.8.0 @@ -1302,8 +1302,8 @@ packages: '@stremio/stremio-colors@5.2.0': resolution: {integrity: sha512-dYlPgu9W/H7c9s1zmW5tiDnRenaUa4Hg1QCyOg1lhOcgSfM/bVTi5nnqX+IfvGTTUNA0zgzh8hI3o3miwnZxTg==} - '@stremio/stremio-core-web@0.50.0': - resolution: {integrity: sha512-SRE9nStgYNbhjJAw7mXfmM0wdnSLS4GMSJsSMTXvoGxnUgd+yisJUkN/9Sughe4t2IU7Uct8QWpdx9zFdlil+g==} + '@stremio/stremio-core-web@0.51.0': + resolution: {integrity: sha512-rCgUrnG31wINZxf35LMvT3Cm/h+hEaJTagne99I9W7Wz8cGdMotVUxFzV8bkJLZh7q19+HkIr4WnEizkXuUZpg==} '@stremio/stremio-icons@5.8.0': resolution: {integrity: sha512-IVUvQbIWfA4YEHCTed7v/sdQJCJ+OOCf84LTWpkE2W6GLQ+15WHcMEJrVkE1X3ekYJnGg3GjT0KLO6tKSU0P4w==} @@ -6561,7 +6561,7 @@ snapshots: '@stremio/stremio-colors@5.2.0': {} - '@stremio/stremio-core-web@0.50.0': + '@stremio/stremio-core-web@0.51.0': dependencies: '@babel/runtime': 7.24.1 From 3c8d62f3b6da2f4c031a02f055aed4a81f3ae319 Mon Sep 17 00:00:00 2001 From: Lachezar Lechev Date: Thu, 27 Nov 2025 13:03:29 +0200 Subject: [PATCH 11/11] fix: Player - video.load hook needs player.stream Signed-off-by: Lachezar Lechev --- src/routes/Player/Player.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/routes/Player/Player.js b/src/routes/Player/Player.js index 2ff0d64e4..5f9856e31 100644 --- a/src/routes/Player/Player.js +++ b/src/routes/Player/Player.js @@ -323,7 +323,7 @@ const Player = ({ urlParams, queryParams }) => { setError(null); video.unload(); - if (player.stream?.type === 'Ready' && streamingServer.settings?.type !== 'Loading') { + if (player.selected && player.stream?.type === 'Ready' && streamingServer.settings?.type !== 'Loading') { video.load({ stream: { ...player.stream.content, @@ -361,7 +361,7 @@ const Player = ({ urlParams, queryParams }) => { shellTransport: services.shell.active ? services.shell.transport : null, }); } - }, [streamingServer.baseUrl, player.selected, player.selected, forceTranscoding, casting]); + }, [streamingServer.baseUrl, player.selected, player.stream, forceTranscoding, casting]); React.useEffect(() => { if (video.state.stream !== null) { const tracks = player.subtitles.map((subtitles) => ({