Filter videos by audio stream language #295

Closed
opened 2025-12-21 16:30:57 +01:00 by backuprepo · 5 comments
Owner

Originally created by @taconaut on GitHub (Jan 18, 2019).

Describe the feature you'd like
Add the ability to filter by available audio stream language for videos

Additional context
I'd like to be able to filter video streams (movies, series) by available audio language

I will work on this to get a hands on with the Jellyfin code. I'm checking the filtering by Genre implementation, which has to be very similar.

TODO:

  • Support Backend filtering:
    • Add string property BaseItemsRequest.AudioLanguages
    • Implement SQLite filtering based on BaseItemsRequest.AudioLanguages
    • Expose available AudioLanguages in API (all languages available for any video file)
  • Support Frontend filter selection
    • Get the available AudioLanguages
    • Display available AudioLanguages in filter pane
      • Map language code to (localized?) language name (e.g. eng -> English; fre -> French)
    • Pass the AudioLanguages select in filter to API for filtering
Originally created by @taconaut on GitHub (Jan 18, 2019). **Describe the feature you'd like** Add the ability to filter by available audio stream language for videos **Additional context** I'd like to be able to filter video streams (movies, series) by available audio language I will work on this to get a hands on with the Jellyfin code. I'm checking the filtering by Genre implementation, which has to be very similar. TODO: - [x] Support Backend filtering: - [x] Add string property BaseItemsRequest.AudioLanguages - [x] Implement SQLite filtering based on BaseItemsRequest.AudioLanguages - [x] Expose available AudioLanguages in API (all languages available for any video file) - [ ] Support Frontend filter selection - [x] Get the available AudioLanguages - [x] Display available AudioLanguages in filter pane - [ ] Map language code to (localized?) language name (e.g. eng -> English; fre -> French) - [x] Pass the AudioLanguages select in filter to API for filtering
backuprepo 2025-12-21 16:30:57 +01:00
  • closed this issue
  • added the
    feature
    label
Author
Owner

@dkanada commented on GitHub (Jan 24, 2019):

See here for an API call to get localization labels for languages.

@dkanada commented on GitHub (Jan 24, 2019): See [here](https://github.com/dkanada/jellyfin-web/blob/master/src/dashboard/dashboardgeneral.js#L42) for an API call to get localization labels for languages.
Author
Owner

@taconaut commented on GitHub (Jan 24, 2019):

Thanks @daknin, I've got most of the implementation, but as js in not my speciality, I've still got some issues. I should have it ready by the weekend.
As I couldn't find any json containing key=code, value=language, I've written a little scraper outputting the wanted json here https://github.com/taconaut/ISO639ToJson. See bottom of README for the two possible outputs; I intend to use the native one.

[edit] actually I've planned to add the json to the frontend strings. Do you think it should be exposed by the backend?

@taconaut commented on GitHub (Jan 24, 2019): Thanks @daknin, I've got most of the implementation, but as js in not my speciality, I've still got some issues. I should have it ready by the weekend. As I couldn't find any json containing key=code, value=language, I've written a little scraper outputting the wanted json here https://github.com/taconaut/ISO639ToJson. See bottom of README for the two possible outputs; I intend to use the native one. [edit] actually I've planned to add the json to the frontend strings. Do you think it should be exposed by the backend?
Author
Owner

@JustAMan commented on GitHub (Jan 24, 2019):

I think it should be enough for now to stuff in frontend, but I might be wrong here.

@JustAMan commented on GitHub (Jan 24, 2019): I think it should be enough for now to stuff in frontend, but I might be wrong here.
Author
Owner

@taconaut commented on GitHub (Jan 24, 2019):

Both can be right.
My reasoning to put it in the frontend was that the backend only needs the codes to do what it has to do and the language names are only there for the end user.
A counter argument would be that there are many clients (web, smart TVs, mobile apps...) which will all have to have their own implementation and might not be coherent. This can be a benefit as well, if one wants to fully localize the names for each language, the other wants to show native names and the third one English.

If adding it to the backend I wouldn't have exposed resources, but included the language names directly as key/values in the get filters query.

@taconaut commented on GitHub (Jan 24, 2019): Both can be right. My reasoning to put it in the frontend was that the backend only needs the codes to do what it has to do and the language names are only there for the end user. A counter argument would be that there are many clients (web, smart TVs, mobile apps...) which will all have to have their own implementation and might not be coherent. This can be a benefit as well, if one wants to fully localize the names for each language, the other wants to show native names and the third one English. If adding it to the backend I wouldn't have exposed resources, but included the language names directly as key/values in the get filters query.
Author
Owner

@jellyfin-bot commented on GitHub (Jul 29, 2019):

We are moving all feature and enhancement requests to our new Fider platform here. This new platform lets people vote on and better manage such requests.
This request now lives here.

@jellyfin-bot commented on GitHub (Jul 29, 2019): We are moving all feature and enhancement requests to our new Fider platform [here](https://features.jellyfin.org/). This new platform lets people vote on and better manage such requests. This request now lives [here](https://features.jellyfin.org/posts/39/filter-videos-by-audio-stream-language).
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: starred/jellyfin#295
No description provided.