It’s no secret our team is working on multiple projects under the Shoko umbrella. Some of them we’ve talked about publicly, either on this website, on Discord, and on other platforms, and some we’ve only discussed internall amongst the team. So with it being a new year, we thought it would be best to outline the current status on all of our projects, as well as talk about some new ones in development.
Shoko Desktop 2
Shoko Desktop 2 was first envisioned back in late 2016 and at the time was nothing more than a handful of ideas for improving the current Shoko Desktop. Over the years, these ideas turned into a foundation for creating a better program to replace the original Shoko Desktop, which pre-dates every client we currently support. We switched codebases many times until finally settling on a web-based platform using a framework called Electron to create a desktop application.
However, as we’ve continued to develop Shoko, our original intention to maintain and support two big projects and three separate codebases was something we no longer wanted to do. It’s a lot of work for people contributing to a project in their free time. One of the major downfalls of the original Shoko Desktop was the fact that it was a huge and complex codebase that no one wanted to maintain.
After multiple discussions with the team, we’ve decided to stop development on Shoko Desktop 2. However, this doesn’t mean we’re scrapping the project or keeping the current Shoko Desktop, either, as it has been put into maintenance mode and eventually will no longer be supported. In addition to be being difficult to work on, it is full of basic design flaws and security vulnerabilities.
Instead, we’ve decided to incorporate the majority of Shoko Desktop functionality into the Shoko Server Web UI and create a single place to manage and view your collection. One of the things we will not be adding is file playback. This is a technical issue rather than a decision for ideals or workload. Browsers are a strictly controlled environment with limited playback support, and with nearly all our users using a media player program, it not something we want to support lightly. We’ve done our share of research on the matter, but if you happen to be an expert, feel free to join us on Discord to chat.
There has been discussions on creating a separate playback program but at this time its nothing more than that.
My Anime 3
Back in 2018 we put My Anime 3 into maintenance mode due to lack of developer support and focus on other areas. This hasn’t changed, but it’s important to note that with the eventual removal of APIv1, My Anime 3 will stop working. Only Shoko Desktop and My Anime 3 use this old API, and with the consolidation of Shoko Desktop’s functionality into the Web UI, we’re not going to support an outdated API for a single project that has a dwindling userbase.
We are currently evaluating updating My Anime 3 to use the new API but have not made any decisions yet. For current My Anime 3 users who want to continue using it, we’ll be sure to let you know the last version of Shoko that supports My Anime 3.
MediaPortal 2 Plugin
Creating a successor to My Anime 3 for MediaPortal 2 is something we’ve looked into, but is something we will not commit to at this time. We like what we’ve seen but MediaPortal’s overall popularity leads us to question how needed an anime plugin is on this platform. We have made minimal progress on what could be called a plugin, but this is more so to see how easy development and maintenance would be.
If we decide to make a plugin, then users can expect it to be a fairly light experience similar to Nakamori (Kodi plugin). It will not have the purpose of being a fully featured client like My Anime 3 aimed for.
Late last year, TheTVDB staff announced TheTVDB would no longer be free and instead require a subscription to use its API. We attempted to reach out to find out just how much a commercial license would cost and to see if there was any kind of open-source discount or program, they never responded.
According to one of the Jellyfin devs, TheTVDB quoted them a price that is completely unreasonable for a project like ours, which has no intention taking donations, screening ads, selling or even collecting user info, or any other intent other than providing a service that we enjoy working on.
Like many other programs that relied on TheTVDB, we’ll be replacing them with The Movie Database which we actually already support, in part. This does mean we will be completely removing TVDB support regardless if you decide to pay for it yourself. Our plans include a plugin system that will allow any dev who wants to add it back and update it to do so at their own responsibility and leisure.
We’re still deciding on how to handle existing TvDB data, as Shoko current has a fixed set of data providers. It is likely that we’ll decide to remove it all and have Shoko download the data from TMDb.
We will release more info on this after discussing it more at a later date.
The State of Nakamori
We’ve been asked when Nakamori will get updated to work with the latest version of Kodi as of Kodi 19, all plugins must be written in Python 3. Unfortunately, Kodi is a community plugin made by BigRetroMike and while we’d love to see it updated, its out of our hands. However, da3dsoul who has put a lot of work into Nakamori wanted to explain why he is no longer working on it.
This section is written by da3dsoul from his perspective and how it pertains to him. “I” refers to me, da3dsoul, in this part.
Nakamori has always held an interesting status, as it was developed by someone who hadn’t officially joined the team or worked on the backend of Shoko. Back in 2015, I joined the team and got to work improving Shoko and Nakamori in many ways. I quickly became a lead dev for both projects and Nakamori saw consistent improvement and maintenance for the better part of the past 5 years. After much work, several years, and many fictional tears, I have decided to step away from Nakamori. This was a big and difficult decision, as I haven’t ever completely dropped a project I committed to with the clear intent of never touching it again, that is until now. My reasoning for doing so is partially due to having communication failures with the aforementioned person who started the Nakamori project, and it was causing me consistent, undue stress for something that I work on for free and have devoted literally more time than the average American tenure to.
The other, and probably more important reason, as far as you, the users, would care about is regarding Kodi itself. Making plugins for Kodi is annoying, to put it in words safe for TV-Y7. For the past 5 years, I have spent more time looking through Kodi’s forums and code and chatting with other devs than actually writing any code for Nakamori. It displays lists of Media in a folder-like structure, provides a context menu for those items, and it plays the media files from those “folders” from a streaming URL with a resume system. There are other endeavors that have been attempted, but most of them were either buggy and unreliable or just didn’t work. I could fit basically the entire functionality of Nakamori into one sentence, but despite that, it doesn’t seem to just work flawlessly.
The reason for this is due to Kodi and Team Kodi’s priorities. Kodi is an open source project by volunteers that occasionally take donations. That means that they do what they want, and they don’t really have any obligations to users or any other devs. We are the same, except that we don’t take donations, so I’m not saying that to be rude. It’s merely a statement of context. Unfortunately, that means that things like the plugin system tend to get comparatively little attention from the developers, and any disagreement about decisions made by Team Kodi are suggestions for the amicable devs, at best. Their decisions and attitude toward plugin developers have made developing a plugin for Kodi unfeasible to deliver an experience for users that I would want to put my name on, even if it is a cringy edgelord name from when I was 10 years old.
Nakamori currently works with this current version (4.x) of Shoko and, at the least, Kodi 17.6. I don’t know if it works for later versions, and I will not check myself. I’ll still answer questions if I am able, as I did still write well over 90% of Nakamori’s current codebase, but the longer I go without looking at it, the less useful my advice will be. That’s what it means for me to drop a project.
Like us, our friends at Animeshon have multiple projects in the works, and Ashen has taken a backseat for now. This is because
da3dsoul is lazy and plays too many video games their dev team is working hard on other projects like their Encyclopedia at the moment, and they want Ashen and Detabesu (the terrible fantastic name of the Encyclopedia section) to be able to handle the volume of users that Shoko will bring.
We’ll properly introduce Shokofin later, but we’ve been working on a plugin for Jellyfin that is currently in beta and waiting on some changes in Jellyfin before we can move forward. Once these changes have been made and/or an updated version comes out. We can move forward with Shokofin.
As usual, we’re always looking for devs to join our team. If interested, join our Discord and let us know! We always have plans, big and small, for improvements to the infrastructure of managing our anime collections.