214 Commits

Author SHA1 Message Date
mani
a6af9d856b Add SDH indicator to subtitle track display
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
Show "SDH" (Subtitles for Deaf and Hard of Hearing) label in subtitle
selection dialog when track has IsHearingImpaired flag set.
2026-01-06 01:20:33 +01:00
mani
a94575f83c Add audio track title to stream selection display
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
Display track title in audio stream selection dialog when available.
Format: "index - language - codec layout - title"
2026-01-06 00:58:58 +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
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
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
Andry Yosua
eecf1d3fe2 fix sdh/cc/hi subtitle for jellyfin > v10.9.0
**Conditon:**
- i have movie with these subtitle file
	- MovieName.en.srt
	- MovieName.en.sdh.srt
- i have jellyfin server 10.10.7
- i have kodi 21.2

**Expected:**
- i can choose between **english** subtitle and **english sdh/cc/hi**
subtitle

**Actual:**
- i do not have an option to choose between **english sdh/cc/hi** and
**english** subtitle
- i can only choose english subtitle

**Cause**
[jellyfin release
v10.9.0](https://github.com/jellyfin/jellyfin/releases/tag/v10.9.0) -
[Add hearing impaired subtitle stream
indicator](https://github.com/jellyfin/jellyfin/pull/7379) introduce new
update for common naming convention for external hearing-impaired /
close captioned / deaf hearing subtitles

this PR fix problem caused by those release update following [kodi
naming convention for closed
captions](https://kodi.wiki/view/Settings/Player/Subtitles#Enable_parsing_for_closed_captions)

Question:
- should i keep compatibilty for jellyfin release before v10.9.0?
2025-08-31 01:16:59 +07:00
Andreas Laufer
f151f5ae19 fix subtitle burn in, add missing SubtitleMethod parameter 2025-08-03 14:25:46 +02:00
Dave
38ff2607cf Update play_utils.py
added artist, album and track info to the shuffle feature
2025-05-02 16:52:45 -07:00
Gorgorot38
78ab2344be fix git feedback 2025-03-17 17:35:42 +01:00
Gorgorot38
3e621f8f33 Refacto code
Add logs
Add support for recap + preview + commercial
2025-03-17 17:25:55 +01:00
Gorgorot38
a70cbbcae1 Merge remote-tracking branch 'origin/master' into skip_segments 2025-03-02 16:45:46 +01:00
Gorgorot38
39d16921ad Fix bug with multiple external subtitles in the same languages 2025-02-23 10:45:24 +01:00
Gorgorot38
761dc8e1c5 Add segment skip ability 2025-02-23 10:26:37 +01:00
abysslynx
7062c7a854 Restore play next without prompt functionality 2025-02-17 21:16:22 +00:00
Hagay Goshen
8957956a51 nicer and kodi's style resume position on resume dialog
Co-authored-by: mcarlton00 <mcarlton00@gmail.com>
2024-03-25 18:30:18 +02:00
Nathan Janke
b36cb88a01 Add 'Force transcode av1' setting 2023-11-15 17:41:52 -08:00
Andry Yosua
c6d9fc1e4a fix shuffle on series item context menu
**Steps**
- Open Jellycon
- Go to shows / tvshows items, either
	- `Jellyfin Libraries` > `Shows` > `Shows - Show All`
	- `Global Lists` > `TV Shows` > `Tv Shows - Show All`
- Open `context menu` on series item, select `shuffle`

**Expected Result**
jellycon shuffle series episodes

**Actual Result**
jellycon not doing anything
2023-05-20 03:23:00 +07:00
Matt
e15a87ef7f Add ability to shuffle music genres 2023-01-21 11:28:23 -05:00
Matt
b132f63871 Include LiveStreamId in session stopped api call 2023-01-21 10:23:58 -05:00
Kian-Meng Ang
7efcb96921 Fix typos
Found via:
- `codespell -S *.po,*.xml`
- `typos --format brief`
2023-01-21 10:43:11 +08:00
Matt
886160ca0f Fix support for the upnext addon 2023-01-16 15:04:42 -05:00
mcarlton00
347ab47672 Refactor imports to be under line length limit 2023-01-12 21:02:32 -05:00
mcarlton00
d25de226d0 Reorder imports for flake8 guidelines 2023-01-12 20:50:41 -05:00
mcarlton00
bf513dee43 Fix flake8 linting complaints 2023-01-11 19:51:26 -05:00
mcarlton00
70ec2d8773 Merge pull request #255 from mcarlton00/music-shuffle-all
Add ability to shuffle entire music library
2023-01-10 22:18:28 -05:00
mrkev
7b64a7cdd3 Increase maximum stream bitrate
Use enum for setting max bitrate, same as in jellyfin-kodi. New default is 1000000.
Fixes #257
2023-01-09 22:33:13 +01:00
mcarlton00
b32043cfd9 Add ability to shuffle entire music library 2023-01-01 18:21:13 -05:00
Matt
afea58c53a Start playing multiple items faster 2022-12-31 10:10:17 -05:00
Matt
3dfde5eb04 Add instant mix and shuffle all features for music 2022-12-30 15:30:03 -05:00
Matt
251f43fb77 Remove unused variable 2022-10-02 08:12:02 -04:00
Matt
6c4077b143 Cleanup old https verify method 2022-10-02 08:10:44 -04:00
Matt
007a997f8f Fix playing livetv from tvheadend 2022-09-11 12:01:02 -04:00
Matt
34861fb9b9 Ensure a handle is valid before trying to use it to start playback 2022-07-21 21:45:33 -04:00
Matt
c330523b9e Make playback comments more accurate 2022-07-20 08:22:31 -04:00
Matt
5a5c865135 Fix sys.argv comparison 2022-07-20 08:20:24 -04:00
mcarlton00
02c44eef82 Merge pull request #184 from aiosk/fix_sdh_subtitle_not_displayed
Fix forced and sdh/cc subtitle not working
2022-07-18 15:40:03 -04:00
andry.yosua
c21d10d7f9 fix couple minor style things 2022-07-18 14:52:22 +07:00
andry.yosua
d2d14e4c19 fix couple minor style things 2022-07-18 14:47:21 +07:00
andry.yosua
1da8bca9d1 remove unique id hi to identify sdh/cc 2022-07-12 14:29:14 +07:00
andry.yosua
dffbfd8860 add no language fallback 2022-07-12 06:41:19 +07:00
andry.yosua
7247c51b10 fix cannot choose sdh/cc/hi subtitle
condition:
I have multiple subtitle
- movie_name.en.srt
- movie_name.en.sdh.srt

expected:
I can play movie with sdh subtitle, either by choosing subtitle
before play movies, or while playing movies

result:
I cannot play movie with sdh subtitle

This happen because downloaded subtitle file only has language id in
it's name. It doesn't have unique identifier such as sdh/cc/hi. This fix
add sdh/cc/hi id to the downloaded subtitle.

This fix doesn't handle transcode procedure.
2022-07-12 04:58:09 +07:00
andry.yosua
2517e30f55 fix cannot choose forced subtitle
condition:
I have multiple subtitle
- movie_name.en.srt
- movie_name.en.forced.srt
- movie_name.id.srt

expected:
I can play movie with forced subtitle, either by choosing subtitle
before play movies, or while playing movies

result:
I cannot play movie with forced subtitle

This happen because downloaded subtitle file only has language id in
it's name. It doesn't have unique identifier such as forced. This fix
add forced id to the downloaded subtitle.

This fix doesn't handle transcode procedure.
2022-07-12 04:43:18 +07:00
Matt
086e92da4b use setResolvedUrl for playing single items where possible 2022-06-23 20:14:53 -04:00