API for sideloading, account, etc

It would be really nice to have a (preferrably simple) API for (desktop) apps to be able to get a list of a user's sideloaded content (apps, version numbers, etc), as well as the ability to upload, remove apps from the sideload list.

(Basically, I really want to make a desktop app that hooks into itch.io, and will manage a user's games, let them auto update, etc. I can do it using usb-based sideloading, in a desktop app, but having the web api for sideloading would be vastly preferred.)

1 Like

Isn't this a matter of pointing a tool at the mounted USB device and having it read the metadata from the games directory? Or do you have something else in mind?

Not quite:

  • I want it to update through the web-based sideload interface so that you don't need to plug in your device. USB-drive based updates would be supported as well of course
  • the sideload web interface changes the ids of the games loaded, so if you do both, you could end up with repeated content, lost save data, etc.
  • The goal is to have an app that you can just run on your desktop, and it will remotely/wirelessly update your Playdate.

This is a great idea. Personally I think one of the greatest barriers to itch sideloading right now is that games don't update automatically. This means as a customer I have to remember to check all my favorite games every few weeks and re-download and install all the ones that have updates. And as a developer, I feel like I have to be extra careful to not release something with excess bugs or issues because any update later will require everyone go through the manual process again (and I can't count on them doing that to begin with).

I hope Catalog will help alleviate this issue, but that won't solve the problem for the hundreds of games already on itch. I'm also afraid that the a lot of Playdate owners aren't sideloading that much, if at all, due of the extra barrier to entry (and they may be satisfied with just the free season games).

And as a developer, I feel like I have to be extra careful to not release something with excess bugs or issues because any update later will require everyone go through the manual process again (and I can't count on them doing that to begin with).

Does this mean you normally release things with excess bugs and issues? Isn't being extra careful what we're supposed to be doing all the time?

lol. Personally, I was looking at it from the user side of things. I don't want to have to manually search through my itch history/purchases, find all of the updated apps, then upload them one by one into the sideloading interface... it's just too cumbersome.

I know right now that a few of the games I have, have already issued updates due to new features or updated SDK build, (leat alone "excess bugs" :wink: )etc, but I just haven't sat down and gone through this process. I can't be the only one who feels this way, so I figured I'd make a tool to do this for me. :wink:

1 Like

I mean optimally, to have the web sideloading interface connect directly with Itch to check for updates would be preferred, or some way to associate an app with its itch url (or other source) directly would be preferred... But this is where we are right now. :slight_smile:

If the API were opened then we could have a desktop app or a web based app that just handles all of this for us. :slight_smile:

No, of course not (I guess "excess" wasn't the right wording)! But I do get paranoid that a game-breaking crash or whatnot has slipped through and I wont discover it until 100 people have already downloaded the first build. There's a nice piece-of-mind that comes with being able to update something and know that everyone is on the latest version, or at least can update easily. (Hence why SaaS and web apps are so popular!)

Theoretically, you could make a workaround, without having the API that you request.

You could use an automated testing framework like Playwright (or other Selenium framework) to your advantage!

Let the user provide his play.date or itch.io account credentials. Use the testing framework to open a chromium session (headless); and login on behalf of the user. Perform scrolling/clicking/whatever gestures to navigate through the websites, as the real user would do.

Or do screen scraping etc. without need of a framework like that, so that you wouldn't need all that extra overhead/resources