Play
Play copied to clipboard
Add support for nfs, smb or http(s) as song folder
Issue type: Feature request
Actual behaviour
Can only copy limited number of songs on device in case of large video/audio files.
Expected behaviour
Should be possible to load files from a NAS drive, for large music collections.
Which OS are you using?
Shared network folders In the future, network folders should work on Windows, probably also on Linux and macOS. But on Android this will be out of scope. As workaround, one could try to mount the network folder to a local folder that can then be accessed by UltraStar Play.
http UltraStar Play already supports http for image, audio, and video files. For an example, see https://github.com/UltraStar-Deluxe/songs-stream
However, HTTP is not supported for song folders because web servers typically do not deliver folder content information (see serverfault.com)
Example:
- GitHub does return the file on GET request https://raw.githubusercontent.com/UltraStar-Deluxe/songs-stream/main/Creative%20Commons/Jonathan%20Coulton%20-%20Code%20Monkey/song.txt
- But GitHub returns 404 on GET request of the folder https://raw.githubusercontent.com/UltraStar-Deluxe/songs-stream/main/Creative%20Commons/Jonathan%20Coulton%20-%20Code%20Monkey
smb on Android Won't fix because out of scope. It's not impossible though. There are C# libs for SMB protocol (e.g. SMBLibrary) but this is not a prio at the moment.
Okay. In my opinion it would be very useful. You wrote the this app is for Android, Apple TV, Smart TV's and so on. All this devices have a small - limited flash/hard drive space. So for my test I uploaded the app on my firetv stick. There is no possibility to add a thumbdrive, harddrive or to mount a network drive as local folder. The app runs quite good, but with the possibility to put only a few songs on it ... what a pity! For me, I can test the workaround, with mounting the drive on android, but for non root users, this will be not possible, also on a apple device. Maybe you think about it later.
True. In the future, some solution needs to be found for this.
Regarding http(s) streaming support - if such a file was to be submitted to e.g. usdb, the colon will interfere with the parsing of the regular tags and everything from the colon on will be lost, resulting in e.g. #MP3:https
. Maybe the protocol can be implicit, e.g. #MP3:raw.githubusercontent.com/UltraStar-Deluxe/songs/master/Creative%20Commons/Dead%20Smiling%20Pirates%20-%20I/audio.ogg
and https://
will automatically be prepended?
I guess it's not defined whether the first or last colon ends the tag name? I expected the tag name to end after the first colon. And I suggest everyone implements it this way.
Maybe the protocol can be implicit
I am against this. Then we have to guess if a URI or file system path is intended.
Instead, I suggest to escape the colon with %3A
, which is the URI escape of a colon.
It would be weird, but we could make it work with manual string replacement.
Anyway, this will get unintuitive. I'd prefer others to end the tag name after the first colon
Regarding http(s) streaming support - if such a file was to be submitted to e.g. usdb, the colon will interfere with the parsing of the regular tags and everything from the colon on will be lost, resulting in e.g.
#MP3:https
.
Thats a "bug" / missing feature in usdb, and it probably should be handled there.
Maybe the protocol can be implicit
Please no, that would be bad practice. Anyway, I wonder if or how the UltraStar Play support for .zip or .tar files could be integrated into websites like usdb and similar. Might be nice to have a sample "songs repository" website, which could be a starting point for companies / communities who want to provide easy to use and ready to use song packages.
Maybe without too much effort rclone could be used to provide remote storage from many systems https://rclone.org/ https://forum.rclone.org/t/official-support-for-the-android-platform/25024
Question: Is it possible to use Google Drive or Dropbox folders somehow?
Here is a tutorial how to browse files on a network share using libVLC
Network shares work already on Windows because this OS handles the file system.