[Folder Synchronization (pull from VLC)] - Substituting iTunes/Apple Music with VLC
Hi, I would like to propose a new feature: Folder synchronization for VLC on iOS
Summary
- On VLC iOS app, user can only download songs 1-by-1 from SFTP/FTP/etc. (impractical in contexts with 100+ mp3s)
- Only alternative is iTunes that allows syncing of entire folders
- iTunes is not supported on Linux
- Proposal to add synchronization feature of entire folders from SMB/SFTP/.. to VLC iOS app on iPhone
Pain Point
On VLC iOS app, there is a handy feature to connect with remote storage and download music directly to the phone. Supported are SFTP, SMB, FTP, uPNP, Dropbox, etc. The problem is that one can only download songs individually.
With song libraries of several 100s of files across multiple folders:
- Impractical: it not only is extremely tedious to click through all the files 1-by-1,
- Redownloads: the users would also have to remember which ones they have already downloaded previously to prevent a re-download
- Updates?: the users would need to manually figure out which ones they have not yet downloaded (new additions), and which ones have been downloaded from the server (and remove those manually on the iPhone, too)
Due to these limitations, currently the only real alternative to synchronize an iPhone with a music library is via the classical iTunes/Apple-Music way.
Since iTunes does not support Linux, an additional pain point for all Linux users is that they first have to sync their mp3 library to a Windows or OSX machine, before being able to sync it with iPhone.
Example: I first to sync the library to my OSX Laptop using rsync, and then in a second step from there to my iPhone.
Proposed Feature
When connecting to a remote data storage on VLC iOS, in addition to downloading songs manually, I propose having an option to set up synchronizations for chosen folders. Once a folder is tagged for synchronization, when the user hits refresh its contents would be synced to the phone (new additions on he server side be added to the phone, and deletions on the server side be mirrored on the iPhone). Thus I propose a one-way sync where the remote data storage is always the master, and a synchronization that is triggered by the user (and not scheduled).
Impact
I believe this to be a killer feature, since for instance for all Linux users who do not have a good way to sync their music to iPhone (since iTunes is not supported on Linux) this would be the best alternative.
Also for everyone on other platforms (Windows / OSX) who wants to adopt VLC on iOS, this would make it an adequate replacement for iTunes/Apple Music, since now there is a way to bring the music onto the iPhone in a more automated fashion (for which so far iTunes is the only way).
How it could work
- In VLC iOS, when user navigates through remote storage (SFTP, SMB, FTPs, Dropbox, etc), user gets a new option/button to synchronize folder (in addition to current download of individual songs)
- When clicking on that button, the respective folder is added to a new section in the network tab, which shows all the synced folders
- Once the synchronization for the folder is set, the user sees a label "Sync", to give transparency on which folders a sync is set up (from here, User should also be able to remove the sync job)
- On the network tab, when the user clicks „Refresh“, new data is pulled from the respective source, and deletes on the server are propagated to the phone. Also from here, user should be able to remove the sync job (and get presented with a choice whether to keep the already synced data or not)
- While the sync is in progress, the user should see a progress ("Updating X / Y files")
I have put together a few mockups below to help better explain the above proposal. Of course these are just for discussion, and there are many other ways how to do this better.
Mockups
The below screenshots should help visualizing how this could work.
- Mockup 1: How network tab looks when no syncs are set up set
- Mockup 2: Setting up a new synchronization
- Mockup 3: How network tab looks when syncs are set up
- Mockup 4: How synchronization in progress could look
- Mockup 5: How removal of synchronization could look
Mockup 1: How network tab looks when no syncs are set up set
Ideas:
- uPNP servers move under File Servers to make space for "Synchronizations"
Mockup 2: Setting up a new synchronization
- User can click "Sync" to add folder to the above synchronization list.
- Those already subscribed for sychronization are marked accordingly.
- From here, user could also remove the sync (also possible from network tab (see further down)).
Mockup 3: How network tab looks when syncs are set up
- User can now see the folders on which a synchronization has been added
- Clicking the individual refresh icons, or 'Refresh All' will trigger the sync
Mockup 4: How synchronization in progress could look
- User sees the percentage progress of the syncs that are ongoing
- User sees the total number of files that need to be synced (not total files, but those that require sync) and how many are already done
- User can cancel ongoing sync by clicking on "X" (opens confirmation dialog to ask if user really wants to cancel)
Mockup 5: How removal of synchronization could look
- User can remove synchorizations with a swipe
- A warning asks user to confirm to remove synchronization
- A second dialog asks user if already synced files should be kept on iPhone or also be deleted