Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Easily Download a few games from 700+ game bundle?

A topic by bozoq created Jun 06, 2020 Views: 9,043 Replies: 31
Viewing posts 1 to 13
(4 edits) (+17)

Problem Solved. There is now a search function in your bundle.  Yay!

Original message below

=======================================================

Have just purchased Bundle for Racial Justice and Equality w 700+ games. Would like to download a few specific ones to start. How best to do?

 - Going to the game page, which can be easily searched for,  offers me the option to pay for the game again if I want to download. But I just bought it.

- Going to my download bundle page offers me 25 pages to wade through, in no discernible order, to find a game. Does have a [Download] button, so no need to pay again.

There must be a way to locate a specific game that interests me, that I have just bought,  and download it.  I agree that putting all 700 in my library would be a bit much and happy to only see the ones I've downloaded, but going through 700 games in random order doesn't seem to be optimal.

Help?

Thanks.

(+5)

yeah they could at the very least be alphabatized or something

manually scrolling through 25 pages of games is incredibly tedious

(+3)

I'm in the same boat. I spent quite a while scrolling through the bundle page before purchasing. I'd hoped that once I had purchased it'd be easier to filter/sort the games. Super disappointing to see the reality! To be fair, I imagine this is a problem they've never had to solve before. I doubt bundles with 740 games come around very often. Following this thread in hopes of a solution.

(+6)

+1 . The bundle page needs to be searchable, or the store page needs to reflect the fact the game is already linked to your account.

(+4)

Please itch.io either alphabetise or add a search function to just find the particular game we want. At least if all the games were on one page you could ctrl-F but can't even do that! 

+1!

(+10)

See https://docs.google.com/spreadsheets/d/1cbOqO6rq0YYWPKmci8Pgv4YGWcl4NQUX9EAj221Ze30/edit#gid=782418878

Thank you . Editing the ?page=X  knowing the correct page (from your col A)  was a lifesaver. Or at least a sanity saver. 

You are the realest. Thank you so much!

Set smallest font size/zoom in your browser and search (CTRL+F) for your title.


Thanks for the suggestion, but I'm still searching 25+ pages looking for a random game. Smaller font size doesn't put more games on a page or give direct access to page 23 or put them in a rational order. CTRL-F works the same with  normal font sizes (and is easier to read ;-) ). 

(2 edits) (+4)

I made this *** to help claim all the games and put all of them in my library, hope it helps.

purchase token is in the url they sent you after you buy and sesssion_token is in your cookies, use the inspector on your browser to find it

EDIT: I decided to remove the gist because I read a post of a request for people not to use scripts to do that, more info https://itch.io/post/1500360

I really appreciate the time you put into making this! 

After installing Python (3.8.3), the requests module, and the bs4 module, I get a FileNotFoundError for 'vars.json'. 

Do I need to manually create this file?

(1 edit) (+1)

yes, or insert the variables directly into the code and delete the part where it opens the vars.json file... I think the easiest way is to create a json file format with the tokens I discribed... sorry if this is too hard for noncoders

EDIT: I will put comments on the gist with instructions

(+1)

You will now find instructions inside the gist file on github

(+2)

Thanks a lot for very useful script. For those who is confused with the session token, you can open inspect in browser -> select Application tab -> choose Cookies in the left tree -> itch.io -> look the panel on the right, copy the value of the line name itchio (NOT itchio_token)

Paste on the script and run

I am also having trouble finding the purchase token again. Thoughts?

it´s in the url

(+1)

Is there a way to get the purchase token again? I closed that page, and can’t find it anywhere.

probably on you e-mail

(1 edit)

I did a quick grabber to claim them all using JS, but you need to run it from the console on each page of the bundle. I tried to make it get them all but it's throwing too many errors and I cba to fix it, this is quicker than doing it for them all individually anyway! Note that it will throw errors because of CORs but the games will appear in your library, once it stops throwing errors move to the next page!

baseURL = window.location.protocol + "//" + window.location.host + location.pathname

var games = document.getElementsByClassName("form");

for(var x = 0; x < games.length; x++)
{
var csrf_token = games[x].getElementsByTagName("input")[0].value;
    var game_id = games[x].getElementsByTagName("input")[1].value;
var xhr = new XMLHttpRequest();
xhr.open("POST", baseURL, true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send("csrf_token=" + csrf_token + "&game_id=" + game_id + "&action=claim");
}


(2 edits) (+2)

I have a slight modification since the search bar that was added messes up the var games = document.getElementsByClassName("form"); array.

it uses jQuery to find and iterate since it's available.

I made some tweaks so that it will log the name of the game just added and will do all of them in order so it's easy to tell when it's done. NOTE: this does make it so you can't click anything on the page while it runs.


baseURL = window.location.protocol + "//" + window.location.host + location.pathname
$('.game_list').find('form[method=POST]').each(function(index,form){
    var csrf_token = $(form).find('input[name=csrf_token]').val()
    var game_id = $(form).find('input[name=game_id]').val()
    try{
        var xhr = new XMLHttpRequest();
        xhr.open("POST", baseURL, false);
        xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        xhr.send("csrf_token=" + csrf_token + "&game_id=" + game_id + "&action=claim");
    } catch(error){
        //console.log(error);
    }
    var game_title = $(form).parents('.game_row_data').find('.game_title').text()
    console.log("added number",index+1, game_title)
})


Does anyone happen to know if newly added games are always added to the last page? If they aren't it might be tricky to find and add those among the ones you've already claimed.

God bless you. Thank you!!!!!.

I double checked the last download page and there was this note at the top:

"Note: We will be updating this page soon, we know it's difficult to navigate so many games. We know you want a button to add show everything in your library. No need to reach out. Any new games added to the bundle will automatically show up here. Thanks!"

so you might not need to bother with the scripts soon.

Hi,
when I run your script in the console, every addition is printed, but it does not appear in my collection.
Any thoughts?

I always forget about cross-browser compatibility.  I just tried it in Edge and Firefox and it unfortunately didn't work. I don't really have the time to debug it, I'm sorry.

It should run if you use Google Chrome though.

Thank you for this!

(+4)

Maybe this is old news for y'all, but I emailed support and today they told me this:

"We've just added a search feature, and you can now search your bundle by title. We will be looking to make further improvements over time. Please let us know if there is anything else you need."

It's something!

Thanks for sharing - didn't know it had been solved. Search works!  Edited initial message to reflect that.

Hey guys, I purchased the Bundle as well (thx a lot by the way!) and I'd like to download all of them at once, is that possible?

(+1)

They said they´re going to make a button to add all to the library, but no ETA yet

Hey guys, just wanted to ask, if something came up during the last 3 weeks? thanks a lot!

This topic has been auto-archived and can no longer be posted in because there haven't been any posts in a while.