jellyfin / jellyfin-android

Android Client for Jellyfin
https://jellyfin.org
GNU General Public License v2.0
1.46k stars 240 forks source link

Jellyfin only shows the first 100 results in Android Auto #284

Open wasatchbell opened 3 years ago

nielsvanvelzen commented 3 years ago

Currently all screens in Android Auto are limited to 100 items. So large libraries might not show everything.

arniom commented 3 years ago

I have the same problem, but the limit is not just the A but for the 100 first artist. After that, there's also just 100 albums of these 100 first artist... In the "Recently played" i found the good songs even if they're not part of these 100 first artist.

Through the app "Yatse" i can browse my whole collection. I didn't counted all the artist but it's (far) more than 150, so i'm not sure this limit is real (or maybe Yatse use a trick that i don't know of)

MiddleditchT1 commented 3 years ago

I'm not sure if this might be a quick fix at least for those using DHU.

I'm running AA 6.3.611324-release. Currently debugging through my phone forwarded to a DHU emulator. I pulled the master branch of jellyfin-android and noticed that most of the searches in "media/car/LibraryBrowser" had "limit = 100" applied.

I removed these and recompiled in debug and now the output is displaying my entire library. I've attached a video showing current Jellyfin Android apk result and recompiled debug one where I removed limits.

https://user-images.githubusercontent.com/83911149/117573978-e108c080-b0d2-11eb-84eb-2f8b6521a7b1.mp4

nielsvanvelzen commented 3 years ago

FYI: increasing or removing that limit is not something can do for the Play Store version right now because of their restrictions.

Maxr1998 commented 3 years ago

To add some more details for other users looking at this: The 100 items limit was deliberately set to increase driver safety. The Android Auto development guidelines explicitly state that, one could even argue that 100 items is already too much, actually..

Note: Android Auto and Android Automotive OS have strict limits on how many media items they can display in each level of the menu. These limits minimize distractions for drivers and help them operate your app with voice commands.

And as Niels said, Google's review system would probably even flag our app if we removed the limit. Additionally, the limit is set for performance reasons, as there are people using the app with thousands to tens of thousands of songs, which could cause extremely long load times or even crashes, something you definitely do not want in the car.

Right now, most results are therefore sorted by last play date (server-side) and then limited. Unfortunately, the server-side sorting doesn't always work as expected. That needs some fixing eventually.

JoLander commented 3 years ago

But this limitation makes the app useless for Android Auto. If I want to play for example the album 'The Endless River' from Pink Floyd, I can only select Artists from A to C and only Albums within this artists range due to the size of my music library. Therefore, I will be unable to play any album from any artist starting with letter D and upwards.

MiddleditchT1 commented 3 years ago

That's fair enough. Do you know what the official limits are? On further reading through developer.android it only states that their is a limit to the "root children" of default 4. But there is no defined limit for displayable media items. The development and quality guidelines only state that the app must load and display content within 10 seconds. Understandably this could be an issue with users with massive audio libraries.

It may be that the query is limited to a 10 second cut-off? Rather than a limit of content?

Maxr1998 commented 3 years ago

But this limitation makes the app useless for Android Auto. If I want to play for example the album 'The Endless River' from Pink Floyd, I can only select Artists from A to C and only Albums within this artists range due to the size of my music library. Therefore, I will be unable to play any album from any artist starting with letter D and upwards.

For browsing, it cannot be expected with this implementation that all albums/songs/artists will always be visible. You can, however, use voice commands to play specific songs/albums. At least if the Google Assistant understands your query correctly, which might be a problem at times. There's nothing we can do about that unfortunately.

That's fair enough. Do you know what the official limits are? On further reading through developer.android it only states that their is a limit to the "root children" of default 4. But there is no defined limit for displayable media items. The development and quality guidelines only state that the app must load and display content within 10 seconds. Understandably this could be an issue with users with massive audio libraries.

It may be that the query is limited to a 10 second cut-off? Rather than a limit of content?

I haven't found an official limit when browsing the guidelines when looking earlier, and back then when first implementing it I just thought 100 items was reasonable. The 10 second limit is definitely meant as timeout for query results and not as a limit for the content. I suppose the biggest influence for it is network latency and speed, you probably need to load a lot of data to break that 10 second timeout.

JoLander commented 3 years ago

But why not showing all letters from A to Z when hitting the search button and then load the (limited to 100) Artists or Albums starting with this letter? I'm sure, most users do not have more than 100 artists with the same starting letter and even not more than 100 albums from this selected artist. Right now, the decision on which letters are shown in the search is already made when the list of the first 100 results are shown.

Maxr1998 commented 3 years ago

But why not showing all letters from A to Z when hitting the search button and then load the (limited to 100) Artists or Albums starting with this letter? I'm sure, most users do not have more than 100 artists with the same starting letter and even not more than 100 albums from this selected artist. Right now, the decision on which letters are shown in the search is already made when the list of the first 100 results are shown.

Oh, with search I meant the actual voice search with Google Assistant. The "search by letter" in Android Auto is actually not a search but just a simple filter over the existing results and thus quite useless, yes..

JoLander commented 3 years ago

Yes, I see. Unfortunately, I hate voice search. I do not use Google Assistant at all. You'll never know, what Google is listening to. Therefore I removed the access right to the microphone for Google Assistant. That is the main reason why I like to host as much data as possible on my home servers.

JoLander commented 3 years ago

I compared this behavior with the official emby app. I'm quite sure that emby has to follow the same rules as jellifin in terms of the maximum results shown on the car display. Nevertheless, the emby app shows the full alphabet when I hit the search button and for every character I select, I see the full set of artist/album/song starting with that character (depending on the selection list). I would expect the same from jellyfin as such a behavior will not work against the rules.

deddc23efb commented 2 years ago

It sounds like Emby is doing the right thing. Take a look at Spotify - they clearly have bazillions of songs - their search shows only a few, but at the least the search works. The current Jellyfin system of A-Z being a filter on top of the actual search results is a dead end. Is there a way to query a slice of albums/songs/artists etc from Jellyfin?

matthewabell commented 2 years ago

...and now Emby is charging users to use their app with Android Auto. I'll admit, their implementation has been nice - no issue with not displaying all artists and they have a nice shuffle feature. If Jellyfin had a better implementation of Android Auto soon it might be a good chance to poach some disaffected Emby users.

DuvelCorp commented 2 years ago

Appart the 100 litem list limitation, I also have a few other issues, like :

  1. not being able to see the Artists. I only see the artists from the root music folder (say /media/music), but anything that would be like /media/music/anyfolder/artist/album don't show at all in the artist list, while I have no issue at all in the web app or android app. Its just in Android Auto. Its like it is only using a folder structure arrangement instead of the internal jellyfin DB , I don't understand this behavior...

  2. I also find the lack of a search function very disappointing. Google voice assistant is not an option for me for the exact same reason as @JoLander wrote above. If we do invest in our own server hosting tools, this is precisely to not give our data to evil GAFAs... So this is not an acceptable solution. And having a real search feature is a necessity if you have a large music library, especially with the limited car listing and browsing interfaces.

  3. My vehicle starts playing automatically the very first song in the list of Jellyfin as soon as I startup. Always the same song. Extremely annoying. He should retain the last song/album played (in Android auto OR other support), but not play always the same first song of the library. At least give us the choice to disable that behavior. I would rather prefer no auto-play at all then always that same song. It goes a little bit over my nerves as soon as I start the car...

All this make the use of Jellyfin in Android auto, a pain :)

jellyfin-bot commented 2 years ago

This issue has gone 120 days without comment. To avoid abandoned issues, it will be closed in 21 days if there are no new comments.

If you're the original submitter of this issue, please comment confirming if this issue still affects you in the latest release or master branch, or close the issue if it has been fixed. If you're another user also affected by this bug, please comment confirming so. Either action will remove the stale label.

This bot exists to prevent issues from becoming stale and forgotten. Jellyfin is always moving forward, and bugs are often fixed as side effects of other changes. We therefore ask that bug report authors remain vigilant about their issues to ensure they are closed if fixed, or re-confirmed - perhaps with fresh logs or reproduction examples - regularly. If you have any questions you can reach us on Matrix or Social Media.

deddc23efb commented 2 years ago

Jellyfin music with a library of any significant size is still broken.

kaysond commented 2 years ago

I feel like at the moment there's a huge void of useful self-hosted media players that work well (or at all, really) with android auto. Jellyfin is pretty close except for this huge issue.

B16WLL commented 2 years ago

Also wanted to say that this is a major usability issue. I've been using DSub with Airsonic Advanced until recently. Whilst Jellyfin Web app is great, the Android Auto implementation is awful. Playlists can't be shuffled?

As for Artist or Album searches, these are my results from a library of approx 55,000 tracks. Great, so long as I only want artists beginning with A, B, C, I, P or S! 20220513_151913 20220513_151825

FazeThree71 commented 1 year ago

Chiming in to keep this from expiring.

I see 123 and A-G.

Files are in a Docker on my NAS under /media/music/A-C, D-F, etc /[artist]/[album]

Server is 10.8.8. AA is 8.6.124844-release.daily (AA Beta) JF Android app is 2.4.4

Edited to add: 123 and A-G is a total of 49 playlists for me. Looking locally via web browser, 123 and A halfway through S would be 100 items (119 playlists in total)

B16WLL commented 1 year ago

I have to say I've ditched the Jellyfin app because of this issue. Yatse does almost* everything very well, and works correctly with Android Auto, no library display size limits.

*for some reason it only supports its own internal playlists, not the system-wide Jellyfin ones.