From 1f5c263617e3d4c1a2fc804521c382308d85e8d1 Mon Sep 17 00:00:00 2001 From: ramirocardelli <50251431+ramirocardelli@users.noreply.github.com> Date: Sat, 26 Apr 2025 14:50:05 -0300 Subject: [PATCH 1/2] Feature: Allow streams to open in external player by default (#801) --- src/common/CONSTANTS.js | 2 +- .../MetaDetails/StreamsList/Stream/Stream.js | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/common/CONSTANTS.js b/src/common/CONSTANTS.js index 8e4e3efdc..f041999c3 100644 --- a/src/common/CONSTANTS.js +++ b/src/common/CONSTANTS.js @@ -65,7 +65,7 @@ const EXTERNAL_PLAYERS = [ { label: 'VLC', value: 'vlc', - platforms: ['ios', 'visionos', 'android'], + platforms: ['ios', 'visionos', 'android', 'windows', 'linux', 'macos'], }, { label: 'MPV', diff --git a/src/routes/MetaDetails/StreamsList/Stream/Stream.js b/src/routes/MetaDetails/StreamsList/Stream/Stream.js index 41f81b386..0e9762061 100644 --- a/src/routes/MetaDetails/StreamsList/Stream/Stream.js +++ b/src/routes/MetaDetails/StreamsList/Stream/Stream.js @@ -51,7 +51,7 @@ const Stream = ({ className, videoId, videoReleased, addonName, name, descriptio const popupMenuOnKeyDown = React.useCallback((event) => { event.nativeEvent.buttonClickPrevented = true; }, []); - + const href = React.useMemo(() => { return deepLinks ? deepLinks.externalPlayer ? @@ -101,6 +101,10 @@ const Stream = ({ className, videoId, videoReleased, addonName, name, descriptio } }, [videoId, videoReleased]); + const streamingUrl = React.useMemo(() => { + return deepLinks?.externalPlayer?.streaming; + }, [deepLinks]); + const onClick = React.useCallback((event) => { if (profile.settings.playerType !== null) { markVideoAsWatched(); @@ -109,6 +113,19 @@ const Stream = ({ className, videoId, videoReleased, addonName, name, descriptio title: 'Stream opened in external player', timeout: 4000 }); + if (profile.settings.playerType === 'vlc' && streamingUrl) { + console.log('Opening stream in VLC', streamingUrl); + core.transport.dispatch({ + action: 'StreamingServer', + args: { + action: 'PlayOnDevice', + args: { + device: 'vlc', + source: streamingUrl, + } + } + }); + } } if (typeof props.onClick === 'function') { From fea8e63704ea9e17cfc311174214a0f627844c14 Mon Sep 17 00:00:00 2001 From: ramirocardelli <50251431+ramirocardelli@users.noreply.github.com> Date: Fri, 2 May 2025 19:27:12 -0300 Subject: [PATCH 2/2] refactor(Stream): remove unused console log and prevent button click event --- src/routes/MetaDetails/StreamsList/Stream/Stream.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/routes/MetaDetails/StreamsList/Stream/Stream.js b/src/routes/MetaDetails/StreamsList/Stream/Stream.js index 0e9762061..afb55ce5a 100644 --- a/src/routes/MetaDetails/StreamsList/Stream/Stream.js +++ b/src/routes/MetaDetails/StreamsList/Stream/Stream.js @@ -51,7 +51,6 @@ const Stream = ({ className, videoId, videoReleased, addonName, name, descriptio const popupMenuOnKeyDown = React.useCallback((event) => { event.nativeEvent.buttonClickPrevented = true; }, []); - const href = React.useMemo(() => { return deepLinks ? deepLinks.externalPlayer ? @@ -114,7 +113,6 @@ const Stream = ({ className, videoId, videoReleased, addonName, name, descriptio timeout: 4000 }); if (profile.settings.playerType === 'vlc' && streamingUrl) { - console.log('Opening stream in VLC', streamingUrl); core.transport.dispatch({ action: 'StreamingServer', args: {