icidasset / diffuse

A music player that connects to your cloud/distributed storage.
https://diffuse.sh
Other
813 stars 68 forks source link

Netherquark's bug reports/feature requests megathread #272

Open Netherquark opened 3 years ago

Netherquark commented 3 years ago

I am creating a GitHub issue with all the bug reports & feature requests instead of sending them to @icidasset 's Twitter so it's more easily trackable and he won't need to check social media while working lol I'll edit this issue and add other things as I find them or think of them

Bold ➑️ Easy to solve

EDIT by @icidasset: πŸ‘€ Will investigate βœ… Done πŸ₯Ά Not possible 🚫 Not going to do

Feature requests:

  1. Caching progress
  2. Granular cache management
  3. Pie chart of which songs / albums / playlists are taking up how much space when cached
  4. Caching queue list

Bugs:

Chrome

Chrome on Android 10/11

Chrome on Ubuntu 20.04/20.10/21.04

Firefox

Firefox on Windows 10/11

Firefox on Manjaro/Fedora

Firefox on Android 11

Miscellaneous (Universal/Chrome on Windows)

  1. You cannot manage a playlist by caching it or renaming it etc while you're listening to it because of the βœ…
  2. If you play a song from your entire library, say, and then navigate to a playlist, then click on the song playing, the song isn't highlighted as it usually is. This is also applicable when you play a non-cached track and turn on the cached tracks only filter. This is a UI wide decision to make, whether to navigate and show the song, therefore exiting the playlist view, or to not do anything. Another solution that isn't as minimalistic is to make playlists, cache filters, queues, etc independent of the viewfinder, much like most of the available music streaming services, or even local players.
  3. The only way to view the album name of a song is to turn on autorotate [Chrome on Android]
  4. There is no way to go back or forward during the login process. For example, if I accidentally click Dropbox instead of Fission, I have to start all over by reloading, instead of being able to press a back button, returning to the Personal Data storage page.

Solved

Failed to load β€˜https://www.googleapis.com/drive/v3/files/1oN43m0Oo8GO_vIDi2VJSp9iYMhjPNd2i?alt=media&access_token=ya29.a0ARrdaM8eEVB_0RoiIaViXznvUt7Hgudh8tK6FV2nx1CQ2kDPqlzMOTAbne7tmkS2scOU1tWEZn-wB_ZdXy-KpfNDiUUOlmELNCr-1uWlza9_-z-3DZsF-ka0YLeuFxEtDZwLO9TUF19ECDMPszzJbvZH5wE_8ws’. A ServiceWorker passed a promise to FetchEvent.respondWith() that rejected with β€˜TypeError: NetworkError when attempting to fetch resource.’.


- [x] Diffuse doesn't scale well on a 2400x1080p display [you can see the bottom area empty in the screenshot linked] [[Screenshot](https://photos.app.goo.gl/X34FuWEnsyEBsNY96))]   (#270)
- [x] Media control not supported now. Works on Chromium on Linux, but not on Chrome. Chrome doesn't expose media controls API. Bug seems similar to Firefox on Android.
Chrome:
![image](https://user-images.githubusercontent.com/65618735/149661651-cc1f1656-1a43-4bc4-9aae-58145c506693.png)
Chromium:
![image](https://user-images.githubusercontent.com/65618735/149661707-43653cd7-575f-437c-b6e2-70aa2a3d52e3.png)
- [x] βœ… ~~I noticed last.fm wasn't tracking my scrobbles in Diffuse, so I logged out and logged in. Diffuse gave the following errors/warnings in console:
Site cannot be installed: Page does not work offline. Starting in Chrome 93, the installability criteria is changing, and this site will not be installable. See https://goo.gle/improved-pwa-offline-detection for more information.
?action=authenticate/lastfm&token=QoM3pByZdhfls8jRTKtGSvffkrsnzY_6:1 The resource https://nightly.diffuse.sh/images/diffuse__icon-dark.svg was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.
ws.audioscrobbler.com/2.0?api_key=4f0fe85b67baef8bb7d008a8754a95e5&api_sig=eee7d6dcf513b358b62acf5a9ea68e3a&format=json&method=auth.getSession&token=QoM3pByZdhfls8jRTKtGSvffkrsnzY_6:1 Failed to load resource: net::ERR_BLOCKED_BY_CLIENT~~ 
UBlock Origin was too aggressive. 
- [x] βœ… When right-clicking/long-pressing on a UI element such as a song or a playlist to select an option such as download as a zip file, the element behind it is also clicked. [Screenshot](https://photos.app.goo.gl/hdQyHJiW2cETgHga9). [For example, in the screenshot linked, if I click download as a zip, it'll open Sleep or a struggle for bliss along with starting the download]
- [x] βœ… Occasionally Diffuse gives a 502 Bad Gateway due to miscellaneous hosting issues and because of the offline no tracks bug, this renders the app unusable till the hosting issues are fixed
- [x] βœ… (EDIT: Need to play halfway, required by last.fm) The last.fm integration shows songs being played but doesn't register them in the last.fm history unless they're played from start to end, without any skipping, etc.
- [x] βœ… [Question] Will Diffuse still work on Chrome once the third party cookie support is removed? Cause I've noticed that user layer login credentials are stored in cookies [not sure though]
- [x] Diffuse media playing with image metadata (album art) from another window [ie. Chrome on Windows supports image metadata][[Screenshot](https://photos.app.goo.gl/UzavnbMv5Bv2nnkE8)]
- [x] ~~last.fm scrobbling doesn't work on latest Chrome on Ubuntu 20.10~~ UBlock Origin again
- [x] Diffuse load times very slow (>+30 seconds on a competent computer) when a game download is active in Steam
- [x] πŸ₯Ά **Windows taskbar (in hide automatically mode) interferes perfectly and overlaps the diffuse media controls**
- [x] πŸ₯Ά On Chrome on Android, the cached tracks don't show up under the app storage, they show up under the Chrome storage. [[Screenshots](https://photos.app.goo.gl/qqvrHoyR13Zq4Hn57)]. However, this isn't the case on Chrome on Windows.
- [x] 🚫 **Syncing tags of multiple tracks at once isn't possible (by selecting using the shift click method)**
- [x] 🚫 Some parts of the UI are basic text elements so they can be selected as visible in the screenshot attached. This isn't very visually appealing or immersive, especially when other extensions such as the GTranslate extension are also in use
![image](https://user-images.githubusercontent.com/65618735/110247038-218f7500-7f90-11eb-856a-f293d79f5254.png)
- [x] πŸ₯Ά If a USB keyboard is connected with Diffuse open in Chrome on Android, Diffuse reloads arbitrarily
- [x]  ~~In case some tracks do not have album metadata, my music source groups them together as [non-album tracks]. Diffuse groups them together as an album and applies album art of one of those tracks. [[Screenshot](https://photos.app.goo.gl/yLDafKwqzFP7VLc58)]~~ No logical fix, other than me, the user editing metadata manually.
icidasset commented 3 years ago

Thanks for all the feedback! ☺️ I couldn't keep up anymore with the Twitter messages, so thanks for making a summary πŸ™

Few things:

  1. The last.fm scrobble only comes through if the track is played for 50%, unless your track is only 2 min long, or something like that. This is required by last.fm
  2. [Question] Will Diffuse still work on Chrome once the third party cookie support is removed? Cause I've noticed that user layer login credentials are stored in cookies [not sure though]

    I'm not using cookies in any way, so it should work just fine. What gave you the impression cookies are used? πŸ€”

Netherquark commented 3 years ago

Thanks for all the feedback! ☺️

My pleasure!

Few things:

  1. The last.fm scrobble only comes through if the track is played for 50%, unless your track is only 2 min long, or something like that. This is required by last.fm

Ah okay

  1. [Question] Will Diffuse still work on Chrome once the third party cookie support is removed? Cause I've noticed that user layer login credentials are stored in cookies [not sure though]

    I'm not using cookies in any way, so it should work just fine. What gave you the impression cookies are used? πŸ€”

Clearing cookies & clearing storage is what I do usually if I want to reset diffuse (eg if I type in the wrong credentials). Also diffuse uses Google and dropbox cookies during login? It's always a good thing if diffuse doesn't need cookies tho

icidasset commented 3 years ago

If I have a song file, say "Alien Ant Farm - Smooth Criminal.mp3", and I delete that file from the drive, and replace it with "Alien Ant Farm - Smooth Criminal.mp3", but at a higher bitrate, as a part of upgrading my library bitrate. What happens is, diffuse directs the old processed entry to this new file, while also processing the new file, resulting in duplicate entries. The only possible way to fix this is to export diffuse.json, edit it to remove all mentions of the duplicate file in question, import it into diffuse, and process the sources, where it just creates one valid entry.

That's quite a special use case πŸ€” I can't really think of a great solution. But for now you can do one of the following:

The tags (audio metadata) are different but same filename, right?

icidasset commented 3 years ago

After a certain point of time, Diffuse gives the "Can't play this track" error on every song that isn't cached till it is reopened. [Screenshot attached.] This happens even on a 250mb/s LAN connection, so it can't be related to internet issues. The same thing occurs on a very low-speed internet connection (1.5mbit/s)

Huh interesting, I guess there's a rate limit on Google Drive. I don't think there's much I can do about that, seeing that it's a limitation of Google Drive. I could show a message to the user however.

Netherquark commented 3 years ago

That's quite a special use case πŸ€” I can't really think of a great solution. But for now, you can do one of the following:

  • Delete the files on your source/drive, click process, wait until finished, upload new files, process again.
  • Upload new files, alt + right-click on each changed track, and choose "sync tags"

The tags (audio metadata) are different but the same filename, right?

yep same file name different metadata (eg the higher-res version has album art, album metadata, genre, etc) i think the best solution to this would be to give the user a scan button, which would automatically look through for inconsistencies (eg multiple listings as per the Smooth Criminal example, tracks that show up as cached but aren't actually cached) because the best way I found of fixing the above issue on a per-song basis was to ctrl f the diffuse JSON with the song name, and remove all entries, so it was reprocessed.

Glandos commented 1 year ago

Subsonic API is already consumed in Jamstash, but I don't know if the logic can be extracted easily.