Making the "Woke Content Detector" Woke

Posted on Apr 5, 2025

What is the “Woke Content Detector”?

The “Woke1 Content Detector” is a database of game reviews recommending and especially not recommending games based on how “woke” they are. Behind this database is the Steam Community of the same name with over 3000 members discussing and labeling games as “Woke”, based on the discussions in the group recommendations are created and put on the list and published via their own Steam Curator. It is important to note that these people attempt to reframe “woke” as a negative attribute, considering diversity, equity and inclusion in games and reality a bad thing. To no ones suprise these people are racist, queerphobe, misogynistic and a bunch of other things. At this moment over 1500 games were reviewed by this group and of those over 800 are not recommended because of woke content. Intersting here is that it seems like that the “Woke Content Detector” community is very sensitive and even considers stuff like “game contains female frontline soldiers” woke, making a lot of games like Call of Duty also woke on their list.

An important part of this database is that they do Indeed provide reasons for why things are woke by describing parts of the content in a very formal way, which in a lot of cases makes the review text itself surprisingly non offensive. There are defintly reviews that contain slurs, offensive wording and obviously all of them kind of contain a bad intent behind their words, but this could be used.

Steam Curators can publish reviews for games and when a Steam user follows the curator the reviews are displayed on the Storage Page of the reviewd game. Everyone can create a Steam Curator.

Turning it upside down

Simple Idea: Let’s turn it around, let’s take all of their spend manpower and simply invert their reviews to get a big list of recommendations for games. We will take all the “Not Recommended” Title, copy the review text and republish them as “Recommended”. Thus creating a big database of recommendations and content descritpions.

Super crazy complex idea

  1. Retrieve the list of “Recommendations” by the “Woke Content Detector”
  2. Upload inverted Recommendations to my own Steam Curator

1. Retrieve the review catalouge

First I have to retrieve the “recommendations” by the “Woke Content Detector”. My initial plan was to retrieve the recommendation by parsing the infamous google docs sheet with all of the reviewd games, recommendation and reason listed, but that was in a weird read only mode that did not even allow me to download it, so instead of bothering with that I looked at the Steam curator page and it’s network calls and noticed a simple pagination request.

{
    "success": 1,
    "pagesize": "10",
    "total_count": 828,
    "start": "10",
    "results_html": "<div>...</div>",
    // ommited irrelevent entries
}

This response contains a results_html which seems to be server rendered html that just gets appended to the list on the Steam Curator Webpage.

<div>
    <div data-panel="{&quot;clickOnActivate&quot;:&quot;firstChild&quot;}" class="recommendation">
        <div> <a data-ds-appid="1448440" data-ds-itemkey="App_1448440"
                data-ds-tagids="[19,29482,1224026,4231,4604,3987]" data-ds-descids="[2,5]" data-ds-crtrids="[33016879]"
                onmouseover="GameHover( thi,s, event, 'global_hover', {&quot;type&quot;:&quot;app&quot;,&quot;id&quot;:1448440,&quot;public&quot;:1,&quot;v6&quot;:1} );"
                onmouseout="HideGameHover( this, event, 'global_hover' )" class="store_capsule price_inline"
                data-ds-appid="1448440"
                href="https://store.steampowered.com/app/1448440/Wo_Long_Fallen_Dynasty/?snr=1_1056_ajaxgetfilteredrecommendations_1056_curator-tabs&curator_clanid=45539421">
                <div class="capsule smallcapsule"><img
                        src="https://shared.cloudflare.steamstatic.com/store_item_assets/steam/apps/1448440/header_292x136.jpg?t=1729051397"
                        alt="Wo Long: Fallen Dynasty"></div>
                <div class="discount_block discount_block_inline" data-price-final="3249" data-bundlediscount="0"
                    data-discount="35" role="link" aria-label="35% off. 49,99€ normally, discounted to 32,49€">
                    <div class="discount_pct">-35%</div>
                    <div class="discount_prices">
                        <div class="discount_original_price">49,99€</div>
                        <div class="discount_final_price">32,49€</div>
                    </div>
                </div>
            </a> </div> <a
            href="https://store.steampowered.com/app/1448440/Wo_Long_Fallen_Dynasty/?snr=1_1056_ajaxgetfilteredrecommendations_1056_curator-tabs&curator_clanid=45539421"
            class="recommendation_link">
            <div class="recommendation_midcol">
                <div class="recommendation_stats">
                    <div class="recommendation_type_ctn"> <img
                            src='https://store.cloudflare.steamstatic.com/public/images/v6/ico/ico_curator_up.png'>
                        <span class='color_recommended'>Recommended</span> <span class="curator_review_date">14
                            March</span> <span style="float:right"><span class="platform_img win"></span></span> </div>
                </div>
                <div class="recommendation_desc"> Contains overtly pro-LGBTQ+ messaging. Uses body type in place of
                    biological sex during character creation. </div>
            </div>
        </a>
    </div>
    ...
</div>

While not the most accessible format for my usecase it does contain all relevant information I need to download the reviews, namely:

  • data-ds-appid="1448440" -> Steam appid (Unique identifier for games/products on steam)
  • <div class="recommendation_desc"> -> The “Woke Content Detector” review text
  • <span class='color_recommended'>Recommended</span> -> The Recommendation Status (Recommended/Not Recommended/Informational)

2. Upload Recommendations

Now we have to go in the other direction, uploading all of the “Not Recommended” Reviews as “Recommended” to my own Steam Curator “Woke Game Recommender”. Sadly Steam does not seem to provide an Api for this, only a html form:

While the form provides some additional stuff, I only want to post Recommended reviews for games, witch a describtion. So we have 3 steps.

  1. Select Game
  2. Insert review content
  3. Submit
<form id="listform">

    <h4>Select a product to review</h4>
    <blockquote>
        <p>Search for a product by name or pick one of your recently played titles, which will appear below. 
            <a class="tooltip" data-tooltip-text="...">(?)</a>
        </p>
        <input type="text" name="appname" id="app_suggest" placeholder="Enter product title" autocomplete="off">
        <input type="hidden" id="app_suggest_id" name="appid">
        ...
    </blockquote>
    ...
</form>

The “Select Game” in the form is done with a search field to look for the game, but if we look at the html we can see that there is indeed a hidden input vield called “appid”, so just based on a good guess I assume it’s enough to set the value for this field to the appid we retrieved in the first part.

<form id="listform">
    ...

    <h4>Write your review</h4>
    <blockquote>
        <textarea name="blurb" maxlength="200" onkeyup="UpdateCharacterLimitLabel(this, 'review_len',200);"></textarea>
        <p id="review_len" class="length_note">200 characters remaining</p>
    </blockquote>

    ...
</form>

After that we have to insert the review content, this is represented by a textbox where we can simply insert the string as the value.

<form id="listform">
    ...
    <div class="post_review_ctn">
        <a class="btn_green_white_innerfade btn_medium" href="#"
            onclick="CreateReviewFromForm( this.parentNode.parentNode, function(){ g_PageController.Navigate ( 'reviews_manage/' ); } ); return false;"><span>Post
                review</span></a>
    </div>
</form>

And finally we submit the request, but submitting the form actually did not work, instead the button needed to be clicked.

And then magic happens:

Future Plans

  • Turning this run once script(-like think) into a regulary running job the keep my curator “Woke Game Recommender” updated with the catalogue of the “Woke Content Detector”. (Fun fact: Steam makes only minimal data available to curators, I cannot see who follows me, only how many people and how often my reviews are shown!)
  • Making the repo public (it needs a much needed code cleanup before I can do that)

  1. Woke is an adjective derived from African-American English used since the 1930s or earlier to refer to awareness of racial prejudice and discrimination, often in the construction stay woke. (Wikipedia Article↩︎