Gauvain
14ea18e0d2
fix(subtitles): resolve duplicate-language and burned-in tracks by identity
...
Group-ordinal within the same-identity set (a preceding different-language
track no longer makes the first duplicate unreachable), exclude server-burned
(Encode) streams from the embedded ordinal and signal them as burnedIn, match
languages across ISO 639-1/639-2 B-T/IETF variants, and sort the menu by the
raw IsExternal flag so the order stays stable between direct play and transcode.
Adds getExternalSubtitleUrl as the single source of truth for the external-sub
URL, and short-circuits disable/burnedIn before enumerating the track list.
2026-07-06 23:48:01 +02:00
Gauvain
90ea934548
fix(subtitles): address CodeRabbit review
...
- Unify external detection: isExternalSubtitle drops the bare-DeliveryUrl case
(an Hls-delivered sub has a DeliveryUrl but isn't sub-add-ed) so sorting,
loading and resolution agree; compareTracksForMenu now uses it.
- applyMpvSubtitleSelection wraps player calls in try/catch — fire-and-forget
call sites no longer risk unhandled rejections.
- VideoContext offline-transcoded branch: treat missing IsTextSubtitleStream as
text (use !isImageBasedSubtitle), matching the shared helper.
- ItemContent.tv refreshSubtitleTracks: apply compareTracksForMenu like the
initial list.
- Tests: use the @/ alias; rework the embedded cases to actually exercise
identity (reversed player order) and the ordinal fallback (same-language,
no title).
2026-06-30 01:08:50 +02:00
Gauvain
ceeacda7f9
feat(subtitles): identity-based track resolver + jellyfin-web menu order
...
resolveSubtitleTrack matches a Jellyfin subtitle against the player's real
track list (external by external-filename, embedded by language/title) instead
of positional counting, which mis-selects when externals/embedded are reordered
or the server hides embedded subs. applyMpvSubtitleSelection is the shared entry
point (reusable for the cast backend). compareTracksForMenu mirrors web's
itemHelper.sortTracks. Drops dead getMpvSubtitleId/isSubtitleInMpv. 14 unit tests.
2026-06-30 00:11:12 +02:00
Gauvain
b7ec841118
refactor: remove dead code ( #1625 )
🏗️ Build Apps / 🤖 Build Android APK (Phone) (push) Has been cancelled
🏗️ Build Apps / 🤖 Build Android APK (TV) (push) Has been cancelled
🏗️ Build Apps / 🍎 Build iOS IPA (Phone) (push) Has been cancelled
🏗️ Build Apps / 🍎 Build iOS IPA (Phone - Unsigned) (push) Has been cancelled
🏗️ Build Apps / 🍎 Build tvOS IPA (push) Has been cancelled
🏗️ Build Apps / 🍎 Build tvOS IPA (Unsigned) (push) Has been cancelled
🔒 Lockfile Consistency Check / 🔍 Check bun.lock and package.json consistency (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (actions) (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (javascript-typescript) (push) Has been cancelled
🏷️🔀Merge Conflict Labeler / 🏷️ Labeling Merge Conflicts (push) Has been cancelled
🚦 Security & Quality Gate / 📝 Validate PR Title (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Vulnerable Dependencies (push) Has been cancelled
🚦 Security & Quality Gate / 🚑 Expo Doctor Check (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (check) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (format) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (i18n:check) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (lint) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (typecheck) (push) Has been cancelled
🛡️ Trivy Security Scan / 🔎 Filesystem scan (push) Has been cancelled
🌐 Translation Sync / sync-translations (push) Has been cancelled
2026-06-14 18:30:50 +02:00
boolemancer
1685571406
fix(downloads): Use mediaSource.Id instead of item.Id in direct download URL ( #1666 )
...
🏗️ Build Apps / 🤖 Build Android APK (Phone) (push) Has been cancelled
🏗️ Build Apps / 🤖 Build Android APK (TV) (push) Has been cancelled
🏗️ Build Apps / 🍎 Build iOS IPA (Phone) (push) Has been cancelled
🏗️ Build Apps / 🍎 Build iOS IPA (Phone - Unsigned) (push) Has been cancelled
🏗️ Build Apps / 🍎 Build tvOS IPA (push) Has been cancelled
🏗️ Build Apps / 🍎 Build tvOS IPA (Unsigned) (push) Has been cancelled
🔒 Lockfile Consistency Check / 🔍 Check bun.lock and package.json consistency (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (actions) (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (javascript-typescript) (push) Has been cancelled
🏷️🔀Merge Conflict Labeler / 🏷️ Labeling Merge Conflicts (push) Has been cancelled
🌐 Translation Sync / sync-translations (push) Has been cancelled
🚦 Security & Quality Gate / 📝 Validate PR Title (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Vulnerable Dependencies (push) Has been cancelled
🚦 Security & Quality Gate / 🚑 Expo Doctor Check (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (check) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (format) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (lint) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (typecheck) (push) Has been cancelled
🛡️ Trivy Security Scan / 🔎 Filesystem scan (push) Has been cancelled
Co-authored-by: lance chant <13349722+lancechant@users.noreply.github.com >
Co-authored-by: Gauvain <contact@uruk.dev >
2026-06-08 14:59:29 +02:00
Fredrik Burmester
6876ce046f
fix(player): retain subtitle language and mode across episodes
...
Carry the live subtitle/audio selection to the next episode on all TV
navigation paths (next/prev buttons, autoplay) and feed TV subtitle modal
selections back into player state via onSubtitleIndexChange so the chosen
track is what gets carried.
Rank subtitles by language plus forced/hearing-impaired mode, with a
no-language fallback (mode + codec + position), and use an explicit match
flag so a deliberate "off" selection is retained too.
2026-05-30 20:15:24 +02:00
Fredrik Burmester
81cf672eb7
fix: convert native.js to native.ts and fix imports for EAS builds
...
- Convert utils/profiles/native.js to TypeScript
- Add barrel export index.ts for profiles
- Update all imports to use explicit file paths instead of barrel export
- Fix .gitignore to only ignore root-level profiles/ directory
2026-01-31 18:54:23 +01:00
Fredrik Burmester
1ec887c29e
feat(tv): new login design
2026-01-31 11:49:15 +01:00
Fredrik Burmester
9763c26046
fix(player): handle remote streams and live tv containers correctly
2026-01-28 19:40:18 +01:00
Fredrik Burmester
7fe24369c0
feat(tv): add language-based audio and subtitle track selection
2026-01-26 19:32:06 +01:00
Fredrik Burmester
56ffec3173
fix(player): add null guards for item in play settings
2026-01-16 21:26:56 +01:00
Fredrik Burmester
28b67f3ad6
fix(mpv): handle audio track selection for transcoded streams on iOS
2026-01-15 07:53:15 +01:00
Fredrik Burmester
f1575ca48b
feat: MPV player for both Android and iOS with added HW decoding PiP (with subtitles) ( #1332 )
...
Co-authored-by: Alex Kim <alexkim@Alexs-MacBook-Pro.local >
Co-authored-by: Alex <111128610+Alexk2309@users.noreply.github.com >
Co-authored-by: Simon-Eklundh <simon.eklundh@proton.me >
2026-01-10 19:35:27 +01:00
Fredrik Burmester
e1dd410f73
feat: airplay and chromecast for music
2026-01-06 19:10:19 +01:00
Fredrik Burmester
ab3465aec5
feat: cache and download music
2026-01-04 12:50:41 +01:00
Fredrik Burmester
74d86b5d12
feat: KSPlayer as an option for iOS + other improvements ( #1266 )
2026-01-03 13:05:50 +01:00
Alex
3b53d76a18
Hotfix/offline playback remaining bugs ( #937 )
...
🤖 Android APK Build (Phone + TV) / 🏗️ Build Android APK (phone) (push) Has been cancelled
🤖 Android APK Build (Phone + TV) / 🏗️ Build Android APK (tv) (push) Has been cancelled
🤖 iOS IPA Build (Phone + TV) / 🏗️ Build iOS IPA (phone) (push) Has been cancelled
🤖 iOS IPA Build (Phone + TV) / 🏗️ Build iOS IPA (tv) (push) Has been cancelled
🔒 Lockfile Consistency Check / 🔍 Check bun.lock and package.json consistency (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (javascript-typescript) (push) Has been cancelled
🏷️🔀Merge Conflict Labeler / 🏷️ Labeling Merge Conflicts (push) Has been cancelled
🚦 Security & Quality Gate / 🚑 Expo Doctor Check (push) Has been cancelled
🚦 Security & Quality Gate / 📝 Validate PR Title (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Vulnerable Dependencies (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (check) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (format) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (lint) (push) Has been cancelled
🕒 Handle Stale Issues / 🗑️ Cleanup Stale Issues (push) Has been cancelled
Co-authored-by: Alex Kim <alexkim@Alexs-MacBook-Pro.local >
2025-08-16 18:11:55 +10:00
Alex
ca92f61900
refactor: Feature/offline mode rework ( #859 )
...
Co-authored-by: lostb1t <coding-mosses0z@icloud.com >
Co-authored-by: Fredrik Burmester <fredrik.burmester@gmail.com >
Co-authored-by: Gauvain <68083474+Gauvino@users.noreply.github.com >
Co-authored-by: Gauvino <uruknarb20@gmail.com >
Co-authored-by: storm1er <le.storm1er@gmail.com >
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Chris <182387676+whoopsi-daisy@users.noreply.github.com >
Co-authored-by: arch-fan <55891793+arch-fan@users.noreply.github.com >
Co-authored-by: Alex Kim <alexkim@Alexs-MacBook-Pro.local >
2025-08-15 21:34:22 +02:00
lance chant
89b34eddc1
fix: tv playback ( #820 )
...
Signed-off-by: Lance Chant <13349722+lancechant@users.noreply.github.com >
Signed-off-by: lancechant <13349722+lancechant@users.noreply.github.com >
Co-authored-by: Fredrik Burmester <fredrik.burmester@gmail.com >
Co-authored-by: Uruk <contact@uruk.dev >
Co-authored-by: Gauvain <68083474+Gauvino@users.noreply.github.com >
2025-08-07 10:12:40 +02:00
Gauvain
5f39622ad6
fix: bump biome and fix error ( #864 )
🤖 Android APK Build / 🏗️ Build Android APK (push) Has been cancelled
🤖 iOS IPA Build / 🏗️ Build iOS IPA (push) Has been cancelled
🔒 Lockfile Consistency Check / 🔍 Check bun.lock and package.json consistency (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (javascript-typescript) (push) Has been cancelled
🏷️🔀Merge Conflict Labeler / 🏷️ Labeling Merge Conflicts (push) Has been cancelled
🕒 Handle Stale Issues / 🗑️ Cleanup Stale Issues (push) Has been cancelled
2025-07-21 09:44:24 +02:00
sarendsen
36b1c48fdd
fix: use ts for downloads
2025-05-04 12:50:21 +02:00
lostb1t
1c1345a3b7
feat: move to custom download handler with background download support ( #675 )
2025-05-04 11:46:34 +02:00
sarendsen
f4750e781d
refactor: getstreamurl
2025-05-02 19:02:35 +02:00
lance chant
0b574cc047
fix: dolby vision on supported devices, specifically profile 5 ( #660 )
2025-05-01 12:11:29 +02:00
Ahmed Sbai
b9bb109f4a
chore: linting fixes && github actions for linting ( #612 )
2025-03-31 07:44:10 +02:00
Fredrik Burmester
5757b1c010
fix: lint
2025-03-16 18:08:55 +01:00
lostb1t
92513e234f
chore: Apply linting rules and add git hok ( #611 )
...
Co-authored-by: Fredrik Burmester <fredrik.burmester@gmail.com >
2025-03-16 18:01:12 +01:00
Ahmed Sbai
10bfa95060
fix: update textContentType for username input to oneTimeCode ( #587 )
2025-03-15 09:21:24 +01:00
Fredrik Burmester
ebcb414b89
fix: use sdk util
2025-03-03 16:10:47 +01:00
Fredrik Burmester
77dba04289
fix
2025-03-03 16:06:48 +01:00
lostb1t
12ceef02cd
fix: mark as played
2025-03-03 16:01:27 +01:00
Fredrik Burmester
8e0e35afe3
fix: chromecast
2025-02-23 14:35:00 +01:00
Fredrik Burmester
1ac6b7e3df
fix: chromecast not working
2025-02-18 17:56:10 +01:00
Fredrik Burmester
4c14c08b35
fix: move from react-native-video -> VLC for transcoded streams ( #529 )
...
Co-authored-by: Alex Kim <alexkim5682@gmail.com >
2025-02-16 07:10:36 +11:00
Théo FORTIN
e71d5cc176
feat: Add default quality setting ( #509 )
2025-02-12 08:32:26 +01:00
Alex Kim
35fcb5ca0c
Completed subtitle feature
2024-12-12 04:23:09 +11:00
Alex Kim
3fb20a8ca2
Revamped transcoding subtitles
2024-12-12 02:41:30 +11:00
Alex Kim
84fd0edc49
WIP
2024-12-11 04:01:30 +11:00
herrrta
2d5a27c015
# Add Button to download whole series/Season
...
- Refactored DownloadItem.tsx to be compatible with multiple items
- Updated queueActions.enqueue signature to be compatible with array of jobs
- Added download button beside season dropdown to download entire season
- Added download button to series page to download entire series
2024-12-01 14:23:38 -05:00
Fredrik Burmester
acd14279f4
fix: make sure always max bitrate is selected
2024-11-28 10:21:30 +01:00
Alex Kim
0e720aa8cf
In progress of handling subtitles for transcoded streams
2024-11-23 06:17:38 +11:00
Fredrik Burmester
5c44db183a
chore
2024-11-18 08:55:34 +01:00
Fredrik Burmester
865fbdf834
wip
2024-11-10 22:36:03 +01:00
Fredrik Burmester
8ed81fbe23
wip
2024-11-10 17:03:15 +01:00
Fredrik Burmester
817e2b3d85
wip
2024-11-10 15:21:30 +01:00
Fredrik Burmester
229670e829
fix(android): buffer state and video not loading
2024-11-01 16:54:20 +01:00
Fredrik Burmester
68d32bd0de
wip
2024-10-21 16:05:36 +02:00
Fredrik Burmester
f5b05bf32d
wip
2024-10-19 13:20:38 +02:00
Fredrik Burmester
39c49d4cdb
wip
2024-10-18 22:27:26 +02:00
Fredrik Burmester
ac9bcbcb9f
fix: always use native device profile
2024-10-15 13:08:03 +02:00