Mass-Activating itch.io Bundle Games

In June 2020 the Bundle for Racial Justice and Equality was available on itch.io bundling 1,741 games for $5 (or a custom amount choice), with all proceeds being donated to the NAACP Legal Defense and Educational Fund and Community Bail Fund.

With this size of the bundle, the game redemtion is handled differently than if you bought a “normal” bundle. Usually, buying a bundle immediately redeems the games to your account/account library. This was not the case here, presumably because of the sheer number of items which has to be handled multiplicative for every buyer. That would be a ton of load. Not flooding the account library was and is cited as another reason, although I somewhat doubt that it was a decisive reason for it.

Initially, the bundle download/redemtion page had a notice that

Now, the notice reads:

Note: Projects in this bundle are hidden in your library by default untill you first access them in order to avoid flooding your library. You can return to this page at any time to access any projects you wish to show in your library.

The bundle has a bundle download page which lists all games with 30 items per page on 59 pages. When you open the download link of an item it is being associated to your account and it appears in your library. Every download is a form and button which opens in the same browser tab. So every activation ends up as loading a webpage and then navigating back. While possible, doing it manually for all 58 pages à 30 items + 1 is very inefficient.

The pages à 30 items are a given. But with a few JavaScript snippets it is possible to adjust the form to open in new tabs, and for all of them to open at once. To activate all items it is then only a process of 59 pages, on every page:

  1. Inject the form target _blank
  2. Opening all claim pages at once
  3. Ignoring the “Currently under maintenance” results (they activated anyway)
  4. Refreshing the 405 Method Not Allowed results
  5. Closing them again (CTRL+W and Tree-style vertical tab listings are helpful for overview here)

The Snippets (Bookmarklets; drag and drop into bookmark toolbar, and then click on the bundle download page):

Bookmarklet JavaScript code
Inject document.querySelectorAll('form').forEach(x => x.setAttribute('target', '_blank'))
ClaimAll document.querySelectorAll('button[value=claim]').forEach(x => x.click())
Count console.log(document.querySelectorAll('button[value=claim]').length)

After claiming the games (the games are associated to the account, and opening the games store page will show them as owned too), the bundle download page will (after refreshing it) have normal <a href links.

The Count bookmarklet will log the count of not activated items. This is useful for verifying on every page that all of them have been claimed (after refreshing/new load).