I cannot stress enough… Use this if you don’t mind changes to your simkl. I have not tested everything. It works for me currently. It’s a syncing addon which may not work as expected, because of what I need in the “Help” Section.
Allows for a One-Way Sync from Stremio to Simkl. Plan is to have a Two-Way Sync
If you want to help, I have two things I need to figure out:
I only want to sync necessary stuff, so a mapping would be nice like:
if (symkl.last_watched_at > stremio.state.lastWatched) {
return false
}
I want to map the info as correctly as possible, so a mapping would look like:
if (stremio.state.flaggedAsWatched) {
symkl.to = "completed"
}
Some Syncing may not work as expected. I really tried to manage it as well as possible. The addon works for me, but I really can’t take any responsibility.
There are some checks in place for backfilling:
- List Update: Ignored if Simkl already marked as complete
- Watch History Update (Movie): Ignored if Simkl already marked as complete
- Watch History Update (Show): Ignored if Simkl lastWatched is greater than Stremio
I plan on adding more checks to limit and only process necessary items:
- If you have any more checks to recommend feel free to open an issue.
- [X] Only sync actual diffs
- [ ] Sync Lists from Simkl to Stremio
- [ ] Sync History from Simkl to Stremio
- [X] Sync Lists from Stremio to Simkl
- [X] Sync History from Stremio to Simkl
- [ ] Stremio listen to stream events and update Simkl live
- GoTo: https://simkl.com/settings/developer/new/
- Create an app
- Redirect URI: https://simkl.com/
npm install
npm run build
Start the program. Then go to http://localhost:7000/configure
npm run start
The syncing will start the moment you finish your first watched episode. You can check the console for successfull syncs. In case at some point syncing stops due to an invalid authKey restart stremio and watch another episode for now. If it still fails open an issue with some details so I can check it out.
Following Options are also available (check the source code):
SIMKL_BACKFILL_LISTSHOWS=true # Option if it should sync shows to simkl list on boot
SIMKL_BACKFILL_LISTMOVIES=true # Option if it should sync movies to simkl list on boot
SIMKL_BACKFILL_WATCHHISTORYSHOWS=true # Option if it should sync shows to simkl history on boot
SIMKL_BACKFILL_WATCHHISTORYMOVIES=true # Option if it should sync movies to simkl history on boot
# If this is enabled it will add shows and movies to the list, but also move them around on simkl using stremio as the leader.
SIMKL_BACKFILL_MODIFYLIST=false
# If this is enabled it will disregard specific watched episodes for shows, but instead mark all previous shows before the current as watched.
# Use this if you more often than not forget to mark episodes as watched.
SIMKL_BACKFILL_LASTEPISODEFILL=false
The code is honestly a mess, but I believe that it would be worse of me to showcase a video of it working and then saying I need to clean up the code before pushing it to GitHub. At least in the meantime someone may make use of this.
It’s currently a proof of concept. Depending on how much interest there is, I’ll clean it up and not just have it workable.
Any pull requests are of course welcome.