Stremio - Freedom to Stream
Find a file
Omri Hefez d25484be46 Player: retry audio-track restore until player acknowledges selection
Fix #2564 — audio language not applied on stream re-open (LG webOS).

On stream re-open the auto-selection effect calls video.setAudioTrack(id)
exactly once when the audioTracks list first becomes available, then sets
defaultAudioTrackSelected.current = true and never retries. On platforms
where the underlying player hasn't fully initialized at that moment (e.g.
LG webOS Smart TV), the call is silently ignored — the UI state
(selectedAudioTrackId in core) reflects the desired track, but actual
playback uses the player's default track. The user observes that the
correct language is highlighted in the menu, yet re-clicking it is what
actually switches the audio.

Patch:
- Don't mark the selection as 'done' on the first setAudioTrack call.
  Wait until video.state.selectedAudioTrackId === desired id. Once it
  matches, we know the player has actually applied the selection.
- Include video.state.selectedAudioTrackId in the effect deps so the
  effect re-runs when the player updates its state, giving us a chance
  to retry if the first call didn't take.

setAudioTrack is idempotent on the core side, so re-issuing the same id
on subsequent renders is safe.
2026-05-18 23:28:39 +03:00
.github Merge pull request #1193 from Stremio/dependabot/github_actions/pnpm/action-setup-6 2026-04-14 11:59:19 +03:00
.well-known fix: use wildcard for app site association 2025-04-17 01:15:10 +04:00
assets feat(ui): add font fallback for country flags on Windows 2026-04-01 18:52:22 -03:00
src Player: retry audio-track restore until player acknowledges selection 2026-05-18 23:28:39 +03:00
tests feat: make translation test fail if hardcoded strings are found 2025-05-28 17:16:08 +03:00
.gitignore fix: move scan translations test to test folder 2025-05-28 12:25:55 +03:00
.nvmrc chore: consistent node version 2024-08-29 22:44:11 +02:00
CODE_OF_CONDUCT.md Merge branch 'development' into chore/typos 2025-10-11 15:02:32 +03:00
Dockerfile build: fix Dockerfile 2025-10-27 16:21:50 +01:00
eslint.config.mjs deps: update stylistic eslint to v5 & stylistic eslint react to v4; change eslint rule name to match actual 2025-09-29 13:59:23 +03:00
http_server.js Increase cache times 2023-06-08 13:01:10 +03:00
LICENSE.md Downgrade to GPL-V2 License 2020-04-07 23:01:27 +03:00
manifest.json chore: remove deprecated webpack-pwa-manifest 2026-01-14 04:15:41 +01:00
package.json chore: update core 2026-05-15 14:25:07 +02:00
pnpm-lock.yaml chore: update core 2026-05-15 14:25:07 +02:00
README.md Update README.md image paths 2026-01-14 22:12:05 +08:00
tsconfig.json Merge branch 'development' of https://github.com/Stremio/stremio-web into refactor/core-logic 2026-05-05 05:09:48 +02:00
webpack.config.js feat(ui): add font fallback for country flags on Windows 2026-04-01 18:52:22 -03:00

Stremio - Freedom to Stream

Build Github Page

Stremio is a modern media center that's a one-stop solution for your video entertainment. You discover, watch and organize video content from easy to install addons.

Build

Prerequisites

  • Node.js 12 or higher
  • pnpm 10 or higher

Install dependencies

pnpm install

Start development server

pnpm start

Production build

pnpm run build

Run with Docker

docker build -t stremio-web .
docker run -p 8080:8080 stremio-web

Screenshots

Board

Board

Discover

Discover

Meta Details

Meta Details

License

Stremio is copyright 2017-2023 Smart code and available under GPLv2 license. See the LICENSE file in the project for more information.