Commit Graph

1745 Commits

Author SHA1 Message Date
mani
ebd59760ae Fix context menu import causing movies not to load
Some checks failed
Build JellyCon / build (py2) (push) Has been cancelled
Build JellyCon / build (py3) (push) Has been cancelled
CodeQL Analysis / analyze (python, 3.9) (push) Has been cancelled
Release Drafter / Update release draft (push) Has been cancelled
Test JellyCon / test (3.9) (push) Has been cancelled
- Fix incorrect import: change 'from . import translation' to
  'from .utils import translate_string'
- Add try/except block to prevent context menu errors from breaking playback
- Add defensive check for item_details.id existence
- Add error logging for debugging context menu issues

This fixes the critical bug where the movie menu would not load
due to the incorrect translation import.
2026-01-06 00:46:21 +01:00
mani
3184fa6f89 Replace subtitle codec boolean with dropdown preference
Some checks failed
Build JellyCon / build (py2) (push) Has been cancelled
Build JellyCon / build (py3) (push) Has been cancelled
CodeQL Analysis / analyze (python, 3.9) (push) Has been cancelled
Release Drafter / Update release draft (push) Has been cancelled
Test JellyCon / test (3.9) (push) Has been cancelled
- Replace prefer_srt_over_pgs boolean with subtitle_codec_preference dropdown
  Options: 0=Prefer PGS (default), 1=Prefer SRT, 2=No preference

- More intuitive UI with descriptive labels:
  - PGS bevorzugt (bessere Qualität beim Brennen)
  - SRT bevorzugt (flexibel, kann gestreamt werden)
  - Keine Präferenz

- Update scoring logic to handle three states instead of two
- Clarify that only_forced filter applies only during auto-selection
  Manual selection via dialog still shows all subtitles
2026-01-06 00:36:25 +01:00
mani
32f2b12708 Change subtitle preferences to prefer forced-only and PGS
Some checks failed
Build JellyCon / build (py2) (push) Has been cancelled
Build JellyCon / build (py3) (push) Has been cancelled
CodeQL Analysis / analyze (python, 3.9) (push) Has been cancelled
Release Drafter / Update release draft (push) Has been cancelled
Test JellyCon / test (3.9) (push) Has been cancelled
- Change prefer_srt_over_pgs default from true to false
  PGS has better quality when burned in during transcoding

- Add only_forced_subtitles setting (default: true)
  When enabled, only forced subtitles are selected
  Regular subtitles are skipped even if they match the language

- Skip non-forced subtitles in auto-selection when only_forced is enabled
  Prevents selecting regular German subs when watching German content
  Only shows forced subs for foreign language parts

This is useful for native language content where only foreign
language parts need subtitles (forced), not the entire movie.
2026-01-06 00:34:19 +01:00
mani
b9a6b5056a Add language-based track selection and context menu
Context Menu Integration:
- Add 'Play with track selection' option to video context menus
- Available for movies and episodes via long-press/context menu
- Forces manual track selection dialog even when auto-selection is configured

Language Selection Improvements:
- Add dropdown selectors for preferred audio/subtitle languages
- Support German, English, French, Spanish, Italian, Japanese, Russian
- Add comprehensive language matching (e.g., 'ger' matches 'deu', 'deutsch', 'german')
- Add setting to auto-select 'No subtitles' when no matching subtitle found

Track Selection Scoring System:
- Audio tracks: Language match (+100), default flag (+50),
  channel count (+5-40), codec quality (+10-30), exclude commentary (-100)
- Subtitle tracks: Language match (+100), forced flag (+50),
  SRT preference (+30), default flag (+10)

Implementation Details:
- Add force_track_selection parameter throughout playback chain
- Preserve server/remote control track selections when not forcing manual selection
- Add extensive debug logging for track selection decisions
- Respect user preferences while allowing manual override via context menu
2026-01-06 00:32:44 +01:00
mani
238d30ab94 Improve audio track selection with scoring system
Some checks failed
Build JellyCon / build (py2) (push) Has been cancelled
Build JellyCon / build (py3) (push) Has been cancelled
CodeQL Analysis / analyze (python, 3.9) (push) Has been cancelled
Release Drafter / Update release draft (push) Has been cancelled
Test JellyCon / test (3.9) (push) Has been cancelled
- Add intelligent scoring for multiple audio tracks in same language
- Score based on: default flag (+50), channel count (+5-40),
  codec quality (+10-30), and exclude commentary (-100)
- Prevents selecting commentary or low-quality tracks when better
  options are available in the same language
- Prioritizes default track while considering quality factors
2026-01-06 00:15:46 +01:00
mani
7d26589cf6 Add automatic audio and subtitle track selection
- Add preferred audio language setting (default: ger)
- Add preferred subtitle language setting (default: ger)
- Add auto-select default audio track option
- Add prefer forced subtitles option
- Add prefer SRT over PGS/image subtitles option

Implements intelligent scoring system for subtitle selection:
- Language match: +100 points
- Forced subtitle: +50 points (if enabled)
- SRT codec: +30 points (if enabled)
- Default track: +10 points

Auto-selection only happens when no track is pre-selected.
Falls back to manual dialog selection if no match is found.
2026-01-06 00:13:17 +01:00
mani
10857e39b1 Fix incomplete transcode target codec implementation
Some checks failed
Build JellyCon / build (py2) (push) Has been cancelled
Build JellyCon / build (py3) (push) Has been cancelled
CodeQL Analysis / analyze (python, 3.9) (push) Has been cancelled
Release Drafter / Update release draft (push) Has been cancelled
Test JellyCon / test (3.9) (push) Has been cancelled
- Add transcode target codec logic to get_play_url function
- Add debug logging to track codec selection
- Remove redundant enable="true" attributes in settings.xml

The get_play_url function was still using hardcoded h264, which caused
the transcode target codec setting to not take effect for direct
transcode URLs.
2026-01-05 23:41:16 +01:00
mani
30a07327bc Add option to disable disk caching (RAM only mode)
Some checks failed
Build JellyCon / build (py2) (push) Has been cancelled
Build JellyCon / build (py3) (push) Has been cancelled
CodeQL Analysis / analyze (python, 3.9) (push) Has been cancelled
Release Drafter / Update release draft (push) Has been cancelled
Test JellyCon / test (3.9) (push) Has been cancelled
Adds new advanced setting to disable disk-based caching, keeping data only in RAM. When enabled, prevents writing .pickle cache files and disables artwork preloading. Significantly reduces SD card wear on devices like Raspberry Pi while maintaining performance through RAM caching.
2026-01-05 18:50:26 +01:00
mani
50f2f1ac3c Add configurable transcode target video codec support
Adds new playback options to select transcode target codec (H.264, H.265/HEVC, AV1) and force H.264 transcoding. This enables optimal codec selection for client hardware, especially useful for devices with H.265 hardware decoding like Raspberry Pi 5. Target codec and source codec filtering now work independently for maximum flexibility.
2026-01-05 18:47:29 +01:00
mani
8041a0b9d8 Improve subtitle track display with codec information
Subtitle tracks now display both language and codec type (e.g., 'English (SRT)', 'German (PGS)'). Adds friendly names for common subtitle codecs like SRT, PGS, VobSub, and ASS. Improves user experience when selecting subtitle tracks.
2026-01-05 18:47:04 +01:00
mani
d5920a381e Fix WebSocket session flapping with ForceKeepAlive protocol
Implements Jellyfin's ForceKeepAlive/KeepAlive mechanism to prevent constant reconnects every 2 minutes. WebSocketApp is now recreated for each connection attempt to avoid memory leaks. Removed problematic ping_timeout and reconnect parameters that caused instability.
2026-01-05 18:46:25 +01:00
mcarlton00
c963176bba Merge pull request #398 from jellyfin/prepare-0.9.0
Some checks failed
CodeQL Analysis / analyze (python, 3.9) (push) Has been cancelled
Release Drafter / Update release draft (push) Has been cancelled
Test JellyCon / test (3.9) (push) Has been cancelled
Build JellyCon / build (py2) (push) Has been cancelled
Build JellyCon / build (py3) (push) Has been cancelled
Prepare for release v0.9.0
v0.9.0
2026-01-02 10:54:04 -05:00
jellyfin-bot
06ffff3031 bump version to 0.9.0 2026-01-02 15:14:54 +00:00
ittelicra
2021f76dfd Translated using Weblate (Italian)
Currently translated at 100.0% (302 of 302 strings)

Translation: Jellycon/Jellycon
Translate-URL: https://translate.jellyfin.org/projects/jellycon/jellycon/it/
2026-01-02 12:03:37 +00:00
Stelios Karakapzoudis
112e244fbc Translated using Weblate (Greek)
Currently translated at 94.3% (285 of 302 strings)

Translation: Jellycon/Jellycon
Translate-URL: https://translate.jellyfin.org/projects/jellycon/jellycon/el/
2025-12-31 00:05:53 +00:00
mcarlton00
a655d49ce3 Merge pull request #396 from manuelschneider/websocket-renderer-issue
Fix websocket reconnects
2025-12-29 12:23:00 -05:00
mcarlton00
ddb47065bb Merge pull request #395 from mcarlton00/prioritize-filtered-limits
Ensure the filtered limit takes precedence over page limit
2025-12-29 11:45:37 -05:00
Spillutvikler
e94873c011 Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (302 of 302 strings)

Translation: Jellycon/Jellycon
Translate-URL: https://translate.jellyfin.org/projects/jellycon/jellycon/nb_NO/
2025-12-29 13:05:53 +00:00
ilker
8f07d44a4d Translated using Weblate (Turkish)
Currently translated at 100.0% (302 of 302 strings)

Translation: Jellycon/Jellycon
Translate-URL: https://translate.jellyfin.org/projects/jellycon/jellycon/tr/
2025-12-29 13:05:52 +00:00
Gargotaire
d63b4321c2 Translated using Weblate (Catalan)
Currently translated at 100.0% (302 of 302 strings)

Translation: Jellycon/Jellycon
Translate-URL: https://translate.jellyfin.org/projects/jellycon/jellycon/ca/
2025-12-23 08:05:53 +00:00
rimasx
b1c9f3877b Translated using Weblate (Estonian)
Currently translated at 96.0% (290 of 302 strings)

Translation: Jellycon/Jellycon
Translate-URL: https://translate.jellyfin.org/projects/jellycon/jellycon/et/
2025-12-23 08:05:52 +00:00
Gallyam Biktashev
d49eac5666 Translated using Weblate (Russian)
Currently translated at 100.0% (302 of 302 strings)

Translation: Jellycon/Jellycon
Translate-URL: https://translate.jellyfin.org/projects/jellycon/jellycon/ru/
2025-12-23 08:05:52 +00:00
Manuel Schneider
a24f921804 use libs reconnect functionality 2025-12-20 17:15:29 +01:00
Stefano Mazzoleni
f1d86743f3 Translated using Weblate (Italian)
Currently translated at 98.6% (298 of 302 strings)

Translation: Jellycon/Jellycon
Translate-URL: https://translate.jellyfin.org/projects/jellycon/jellycon/it/
2025-12-20 09:55:08 +00:00
pol busquets
0b6c14b540 Translated using Weblate (Catalan)
Currently translated at 100.0% (302 of 302 strings)

Translation: Jellycon/Jellycon
Translate-URL: https://translate.jellyfin.org/projects/jellycon/jellycon/ca/
2025-12-18 13:55:10 +00:00
Antti Pikkuaho
10c6b116da Translated using Weblate (Finnish)
Currently translated at 100.0% (302 of 302 strings)

Translation: Jellycon/Jellycon
Translate-URL: https://translate.jellyfin.org/projects/jellycon/jellycon/fi/
2025-12-18 13:55:09 +00:00
pol busquets
17c3ed2625 Translated using Weblate (Spanish)
Currently translated at 100.0% (302 of 302 strings)

Translation: Jellycon/Jellycon
Translate-URL: https://translate.jellyfin.org/projects/jellycon/jellycon/es/
2025-12-18 13:55:09 +00:00
Fjuro
296acefb09 Translated using Weblate (Czech)
Currently translated at 100.0% (302 of 302 strings)

Translation: Jellycon/Jellycon
Translate-URL: https://translate.jellyfin.org/projects/jellycon/jellycon/cs/
2025-12-15 22:55:10 +00:00
Kityn
2bb737bfd9 Translated using Weblate (Polish)
Currently translated at 100.0% (302 of 302 strings)

Translation: Jellycon/Jellycon
Translate-URL: https://translate.jellyfin.org/projects/jellycon/jellycon/pl/
2025-12-15 22:55:09 +00:00
kscop-n1
053eb71967 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (302 of 302 strings)

Translation: Jellycon/Jellycon
Translate-URL: https://translate.jellyfin.org/projects/jellycon/jellycon/uk/
2025-12-15 22:55:09 +00:00
tct123
ed2190c03d Translated using Weblate (German)
Currently translated at 100.0% (302 of 302 strings)

Translation: Jellycon/Jellycon
Translate-URL: https://translate.jellyfin.org/projects/jellycon/jellycon/de/
2025-12-15 22:55:08 +00:00
Translation expert
cd210900f8 Translated using Weblate (Arabic)
Currently translated at 100.0% (302 of 302 strings)

Translation: Jellycon/Jellycon
Translate-URL: https://translate.jellyfin.org/projects/jellycon/jellycon/ar/
2025-12-15 22:55:08 +00:00
無情天
b2d09191f3 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (302 of 302 strings)

Translation: Jellycon/Jellycon
Translate-URL: https://translate.jellyfin.org/projects/jellycon/jellycon/zh_Hans/
2025-12-15 22:55:08 +00:00
Kityn
19e71f8e6e Translated using Weblate (Polish)
Currently translated at 100.0% (301 of 301 strings)

Translation: Jellycon/Jellycon
Translate-URL: https://translate.jellyfin.org/projects/jellycon/jellycon/pl/
2025-12-14 21:55:09 +00:00
Translation expert
45ab93c527 Translated using Weblate (Arabic)
Currently translated at 100.0% (301 of 301 strings)

Translation: Jellycon/Jellycon
Translate-URL: https://translate.jellyfin.org/projects/jellycon/jellycon/ar/
2025-12-14 21:55:09 +00:00
Jesus Oziel Duran Gonzalez
4c58546fd6 Translated using Weblate (Spanish)
Currently translated at 100.0% (301 of 301 strings)

Translation: Jellycon/Jellycon
Translate-URL: https://translate.jellyfin.org/projects/jellycon/jellycon/es/
2025-12-14 21:55:09 +00:00
mcarlton00
854d72fe15 Ensure the filtered limit takes precedence over page limit 2025-12-13 11:20:08 -05:00
mcarlton00
786f01cd7e Merge pull request #393 from mcarlton00/show_page_limit
Add a page limit setting for tv shows
2025-12-13 08:52:31 -05:00
A Boci
69a95f04d7 Translated using Weblate (Albanian)
Currently translated at 4.0% (12 of 297 strings)

Translation: Jellycon/Jellycon
Translate-URL: https://translate.jellyfin.org/projects/jellycon/jellycon/sq/
2025-12-13 11:55:08 +00:00
mcarlton00
7ef4d0c7bd Add a page limit setting for tv shows 2025-12-06 12:11:47 -05:00
mcarlton00
9c1d34d148 Merge pull request #381 from Aydanill/master
Add New Widgets
2025-12-06 09:08:09 -05:00
mcarlton00
3d3bab2fec Merge pull request #384 from loztcf/fix-subtitle-burn-in
fix subtitle burn in
2025-12-06 08:37:28 -05:00
mcarlton00
5bac2f8e87 Merge pull request #385 from AndryYosua/fix/subtitle_sdh_jellyfin_v10.9.0
fix sdh/cc/hi subtitle for jellyfin > v10.9.0
2025-12-06 08:36:38 -05:00
kscop-n1
d54e40306b Translated using Weblate (Ukrainian)
Currently translated at 100.0% (297 of 297 strings)

Translation: Jellycon/Jellycon
Translate-URL: https://translate.jellyfin.org/projects/jellycon/jellycon/uk/
2025-12-01 22:27:43 +00:00
Eray
7699a2820d Translated using Weblate (Turkish)
Currently translated at 100.0% (297 of 297 strings)

Translation: Jellycon/Jellycon
Translate-URL: https://translate.jellyfin.org/projects/jellycon/jellycon/tr/
2025-11-17 08:43:31 +00:00
Bastinator-school
2b9be31e6e Translated using Weblate (Danish)
Currently translated at 100.0% (297 of 297 strings)

Translation: Jellycon/Jellycon
Translate-URL: https://translate.jellyfin.org/projects/jellycon/jellycon/da/
2025-11-03 16:51:54 +00:00
Translation expert
b67b9c0e9d Translated using Weblate (Arabic)
Currently translated at 100.0% (297 of 297 strings)

Translation: Jellycon/Jellycon
Translate-URL: https://translate.jellyfin.org/projects/jellycon/jellycon/ar/
2025-11-03 16:51:53 +00:00
Battseren Badral
4ecba55765 Translated using Weblate (Mongolian)
Currently translated at 0.3% (1 of 297 strings)

Translation: Jellycon/Jellycon
Translate-URL: https://translate.jellyfin.org/projects/jellycon/jellycon/mn/
2025-10-26 00:17:02 +00:00
rimasx
58c8c90099 Translated using Weblate (Estonian)
Currently translated at 95.2% (283 of 297 strings)

Translation: Jellycon/Jellycon
Translate-URL: https://translate.jellyfin.org/projects/jellycon/jellycon/et/
2025-10-09 12:51:25 +00:00
rimasx
1d378cc52d Translated using Weblate (Estonian)
Currently translated at 94.2% (280 of 297 strings)

Translation: Jellycon/Jellycon
Translate-URL: https://translate.jellyfin.org/projects/jellycon/jellycon/et/
2025-10-08 11:47:38 +00:00