NewPipe
NewPipe copied to clipboard
Sync between devices
Checklist
- [x] I checked, but didn't find any duplicates (open OR closed) of this issue in the repo.
- [x] I have read the contribution guidelines given at https://github.com/TeamNewPipe/NewPipe/blob/HEAD/.github/CONTRIBUTING.md.
- [x] This issue contains only one feature request. I will open one issue for every feature I want to request.
Describe the feature you want
Sync playlists and subscriptions between devices.Is your feature request related to a problem? Please describe it
I have two phones and a tablet and I have to add new subscriptions and videos manually. Import export exists but it' kind of tedious and from what I've observed a while ago not too reliable.Additional context
How will you/everyone benefit from this feature?
I believe the community would benefit tremendously because of the ease of use this feature brings. Many more people would use Newpipe thanks to the simplicity of having all of your playlist and subscriptions in one place, plus people won't lose all of their subscriptions and playlists due to a bad export.
Will defeat the whole purpose of privacy until it is aes256 encrypted or something
Probably this can be done with https://github.com/syncthing/syncthing ? Then the sync is safe regarding any privacy risks.
I, too, was going to recommend Syncthing. However, with the emergence of EteBase ( https://github.com/etesync ), I think it would be possible to create a clean, clutter-free database that all your devices could use to sync NewPipe. I would very much like to see this become a thing.
If nothing else, a DecSync ( https://github.com/39aldo39/DecSync ) like method with Syncthing would be great.
I want to add my support to what @Zakkumaru said about implementing sync with etesync. It's the way to go in my opinion.
#1163 is about (server based) sync
Would love to be able to use Syncthing. Is this currently not possible because the NewPipe data/configuration are not accessible in the phone directory (without root)?
Thanks
As freetube, the yt desktop client has no sync system yet too, but mention future plans to implement it, how cool it would be for NewPipe to collaborate on a common system! So we could sync not only across devices but across platforms!
+1 for a simple Time based (daily, hourly etc ) Option to Import and Export database automatically in the background and use Syncthing to sync all my devices from a given Path on the storage.
@Delikt I started using seedvault to backup my phone. It periodically writes app backups, including NewPipe and databases to a local folder - which Syncthing then syncs elsewhere.
Has been working well so far
Maybe some kind of integration with cloud storages, eg. Nextcloud? The database would be storied and updated there and NewPipe would check if there are changes.
Syncing state like this is not trivial and needs a custom implementation that is tailored for this purpose. Pretty much a dup of #1163 because if you can do cloud sync with multiple devices, you can do P2P sync or anything of that nature; it requires the same code.
RE general purpose syncers: These will not work because state changes need to be merged more precisely than on a file-level.
Example: You subscribed to channel foo on device A and to channel bar on device B while both couldn't talk to each other.
A file sync would mean choosing the state of the subscriptions list of either A or B (probably the older one): You'd lose one of the additions due to sync.
A custom syncer could merge these additions together because it'd know the semantics of the operations that were executed on each device. It'd arrive at a state of the subscriptions list which contains both foo and bar.
I think you don't need to merge. You can periodically export and overwrite the backup ( if any changes occurred ) in the same way Scarlet Notes FD does. At that point, other applications can sync the backup.
That's a great way to lose data. I personally prefer to keep mine consistent.
RE general purpose syncers: These will not work because state changes need to be merged more precisely than on a file-level.
This could work if the different devices exclusively wrote to different files (eg prefix filename with a unique device identifier).
There are various feedback problems that need to be designed around:
A canonical way to represent and order the contents of the file would be important to avoid 2 clients endlessly resyncing the same data.
Similarly you need to represent if data was deleted long enough to disambiguate it from data that was never there in the first place. Otherwise clients might get caught in a loop deleting and adding the same items.
Definetly support this. Would be cool if one could access the subscriptions and playlist via a browser extension
Maybe some kind of integration with cloud storages, eg. Nextcloud? The database would be storied and updated there and NewPipe would check if there are changes.
That's a great idea!
It wouldn't even be necessary to implement a new Nextcloud app: Nextcloud Bookmarks seems to fit the bill perfectly and you could even synchronize all your subscriptions and playlists with a browser. It features a public REST API which can be used to create, retrieve, modify and delete bookmarks as well as (sub-)folders.
The folder structure for subscriptions and playlists could look like this:
Subscriptions folder structure | Playlists folder structure |
---|---|
|
|
Yes, yes, yes! We need more apps to start hopping onto decentralized file-based synchronization methods. That is a crucial step in reaching feature parity with "The Cloud" and ending that poison once and for all.
Could we get an option to periodicaly/on change save the backup to a file so we could use Syncthing to backup it to the cloud?
Thank you for the great app
@iulko that's a separate feature that belongs in a separate issue.
Some input to reactivate this topic: Currently I use NewPipe as a compromise under windows (with the Windows Subysystem for Android), also because FreeTube is not running stable on my device. I (and i think many others) still miss the possibility to synchronize between devices. Import/Export function shouldn't remain as the only option - it's uncomfortable for many reasons. AntennaPod e.g. gives us with gpoddersync the possibility to synchronize between devices, and these are also just plain .xml, .rss etc. gpoddersync then can run (as a installed app: https://apps.nextcloud.com/apps/gpoddersync) on a nextcloud instance for synchronization. Maybe this could also be a way for NewPipe? FreeTube as a win-client could also follow this and implement an option for sync-function. Or is there a reason why this does not make sense?
gpoddersync repository: https://github.com/thrillfall/nextcloud-gpodder/tree/main
Some input to reactivate this topic: Currently I use NewPipe as a compromise under windows (with the Windows Subysystem for Android), also because FreeTube is not running stable on my device. I (and i think many others) still miss the possibility to synchronize between devices. Import/Export function shouldn't remain as the only option - it's uncomfortable for many reasons. AntennaPod e.g. gives us with gpoddersync the possibility to synchronize between devices, and these are also just plain .xml, .rss etc. gpoddersync then can run (as a installed app: https://apps.nextcloud.com/apps/gpoddersync) on a nextcloud instance for synchronization. Maybe this could also be a way for NewPipe? FreeTube as a win-client could also follow this and implement an option for sync-function. Or is there a reason why this does not make sense?
gpoddersync repository: https://github.com/thrillfall/nextcloud-gpodder/tree/main
Something like #9973 that is a auto export to file (on change) and than user 3rd party tool to synchonize it? Wouldnt it be faster to implement and more customizable?
Question: changing where newpipe looks for the database would be difficult?
If we could choose where to store and fetch the database, the user was able to choose whatever sync product it wants to use to have the same subscription list in several devices.
Question: changing where newpipe looks for the database would be difficult?
If we could choose where to store and fetch the database, the user was able to choose whatever sync product it wants to use to have the same subscription list in several devices.
+1 to that, 3rd party program are the way to go, newpipe should not try to do their job, so just let us choose where we save database and check if the file changed