Currently the addon synchronizes with following services:
- Anilist
- Simkl
I plan on adding the following in the near future:
- MyAnimelist
- Kitsu
- Trakt
I want to implement a two way sync over multiple services with Stremio acting as the Sender and the watchlists acting as the Receivers.
If you want to help, the next step is adding mappings between the services to a generalized format.
The idea is that everything is the same everywhere. So a mapping to check what should be synced would look like:
let lastWatched;
if (symkl.last_watched_at > stremio.state.lastWatched) {
lastWatched = symkl.last_watched_at;
} else if (anilist.mediaEntry.last_watched) {
lastWatched = anilist.mediaEntry.last_watched;
}
Information should be mapped as much as possible. After deciding the leader of the sync, we get all possible values and fill up the rest:
// If Symkl has lastWatched
if (symkl.state === "completed") {
stremio.state.flaggedAsWatched = true
anilist.state = "COMPLETED"
}
// If Anilist has lastWatched
if (symkl.state === "COMPLETED") {
stremio.state.flaggedAsWatched = true
symcl.state = "completed"
}
I have tested this as good as possible. Everything published here is currently good to go and shouldn’t mess up your library. That said if anything does happen… I can’t guarantee anything. Open up an Issue and I may be able to help out.
Dynamic Sync is when an item in the Senders is updated, that it get’s reflected on the Receivers.
- [X] Dynamic Sync from Stremio to Anilist
- [ ] Dynamic Sync from Stremio to Kitsu
- [ ] Dynamic Sync from Stremio to MyAnimelist
- [X] Dynamic Sync from Stremio to Simkl
- [-] Dynamic Sync from Stremio to Trakt (Already native Support use that)
Import Sync is theoretically a one-time action where the whole library get’s synchronised from the Senders to the Receivers and vice-versa. But the plan is, that this can be run multiple times without wierd issues.
- [ ] Import Sync from Stremio to Anilist
- [ ] Import Sync from Stremio to Kitsu
- [ ] Import Sync from Stremio to MyAnimelist
- [-] Import Sync from Stremio to Simkl (Alternative until tested: simkl-stremio)
- [-] Import Sync from Stremio to Trakt (Alternative until tested: trakt-stremio-import)
Advanced Sync is when the theoretical Receivers share their data between each other, validating and keeping each other in sync.
- [ ] Sync between all Receivers
Of course I’m going for the two-way sync. However this is harder than it actually seems at the moment. Due to not knowing what the prefered sync order is.
Stremio Catalog Support, self explanatory if you are using stremio.
- [X] Anilist
- [ ] Kitsu
- [ ] MyAnimelist
- [X] Simkl
- [ ] Trakt
npm install
npm run build
Start the program. Then open the browser at the url mentioned, if this doesn’t already happen automatically.
npm run start
Instead of Start. Use the following. This will allow you to see the changes live.
npm run start:dev
- Authtokens are not updated if they expire. I’m working on that.
I chose the name SyncriBullet, because I want to blend all of the tracking websites together in a synchronised mix. There’s not much more to it.
Feel free to open pull requests if you think there can be improvements made. I will add an eslint check asap.
A star would be kind, but honestly I use GitHub stars more as bookmarks. So instead bookmark it.
If you like what I do consider buying me a coffee ;)