Skip to content

Instantly share code, notes, and snippets.

@reflechant
Created October 8, 2024 19:47
Show Gist options
  • Save reflechant/41ed0362299948492690612d8887b627 to your computer and use it in GitHub Desktop.
Save reflechant/41ed0362299948492690612d8887b627 to your computer and use it in GitHub Desktop.
Data analysis of FFXIV Dawntrail negative Steam reviews
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [],
"source": [
"#!/usr/bin/python3\n",
"\n",
"import urllib.parse\n",
"import requests\n",
"import datetime\n",
"import logging\n",
"import os\n",
"import json\n",
"import urllib\n",
"\n",
"def get_user_ffxiv_playtime(user_id):\n",
" \"returns FFXIV Online Steam playtime in minutes\"\n",
" ffxiv_id = 39210 # FFXIV Online, base game\n",
"\n",
" url = \"https://api.steampowered.com/IPlayerService/GetOwnedGames/v1/\"\n",
" params = {\n",
" \"key\": \"Steam WebAPI key, gets yours here: https://steamcommunity.com/dev/apikey\",\n",
" \"input_json\": json.dumps(\n",
" {\n",
" \"steamid\": user_id,\n",
" \"appids_filter\": [ffxiv_id],\n",
" }\n",
" ),\n",
" } \n",
"\n",
" try:\n",
" response = requests.get(url, params, timeout=10.0)\n",
" except Exception as e:\n",
" return None\n",
"\n",
" print(response.status_code)\n",
" if response.status_code != 200:\n",
" return None\n",
"\n",
" try:\n",
" playtime = response.json()[\"response\"][\"games\"][0][\"playtime_forever\"]\n",
" except Exception as e:\n",
" return None\n",
"\n",
" return playtime\n"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"reviewers = {}\n",
"\n",
"def process_review(review):\n",
" reviewers[review[\"author\"][\"steamid\"]] = review\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"dawntrail_id = 2649240 # FFXIV Dawntrail, expansion\n",
"\n",
"params = {\n",
" \"json\": 1,\n",
" \"filter\": \"recent\",\n",
" \"review_type\": \"negative\",\n",
" \"purchase_type\": \"steam\",\n",
" \"start_date\": datetime.datetime(2024, 7, 2).timestamp(), # July 2 (release date)\n",
" \"date_range_type\": \"include\",\n",
" \"num_per_page\": 100,\n",
" \"cursor\": \"*\", # for pagination\n",
"}\n",
"\n",
"\n",
"# Main Loop\n",
"i = 1\n",
"while True:\n",
" print(f\"page {i}\")\n",
" url = f\"https://store.steampowered.com/appreviews/{dawntrail_id}\"\n",
" response = requests.get(url, params, timeout=10.0)\n",
" data = response.json()\n",
"\n",
" # process reviews\n",
" if len(data[\"reviews\"]) == 0:\n",
" break\n",
"\n",
" for review in data[\"reviews\"]:\n",
" process_review(review)\n",
"\n",
" # pagination\n",
" try:\n",
" cursor = data[\"cursor\"]\n",
" except Exception as e:\n",
" cursor = None\n",
"\n",
" if not cursor:\n",
" print(\"done\")\n",
" break\n",
"\n",
" params[\"cursor\"] = cursor\n",
"\n",
" i += 1"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1626"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(reviewers)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"# dump negative reviews on disk (~2.3 MiB)\n",
"with open(\"dawntrail_negative_reviews.json\", 'w') as f:\n",
" json.dump(reviewers, f)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# runtime ~10-11 minutes\n",
"\n",
"playtime = []\n",
"\n",
"for i, id in enumerate(reviewers):\n",
" print(f\"{i}/{len(reviewers)} SteamID {id}\")\n",
" t = get_user_ffxiv_playtime(id)\n",
" if t is not None:\n",
" playtime.append(t)\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"# dump negative reviews on disk (~2.3 MiB)\n",
"with open(\"ffxiv_playtime.json\", 'w') as f:\n",
" json.dump(playtime, f)"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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7nTGvPHGG8blcpmPP/7YGGPMs88+a7p27er0bYwxc+bMMb1793Zu33vvvWbMmDER9eTl5Znvfe97LdRtpIsFlHHjxl10n7bSe3V1tZFktm3bZkwrP75j/Vxxfu/myxesH/7whxfdp6303rVrV/Of//mf7ep4n3Oud9OOjjdv8Ug6ffq0ysrKFAgEnHUJCQkKBAIqKSmJaW3NdejQIWVlZen6669XQUGBjh49KkkqKytTQ0NDRI99+vRRTk6O02NJSYkGDBgQ8WV5+fn5CofD2r9/vzPmb+c4N8aWv1NFRYWCwWBEjR6PR3l5eRF9pqWlaciQIc6YQCCghIQElZaWOmPuuusuJScnO2Py8/NVXl6uzz//3Blj499i69atysjIUO/evfXQQw/ps88+c7a1ld5DoZAkKT09XWrFx7cNzxXn937O6tWr1b17d/Xv31+FhYU6efKksy3eez979qzWrl2rEydOyO/3t6vjfX7v57Tl431OXPyacUv761//qrNnz17wLbZer1fvv/9+zOpqrry8PK1atUq9e/fWJ598oieeeELf+MY3tG/fPgWDQSUnJ1/wI4ter1fBYFCSFAwGm/wbnNt2qTHhcFhffPGFUlNTW7jLSztXZ1M1/m0PGRkZEdsTExOVnp4eMSY3N/eCOc5t69q160X/FufmiIWRI0fqnnvuUW5urj788EP96Ec/0qhRo1RSUqIOHTq0id4bGxs1c+ZM3Xnnnerfv79TV2s8vj///POYPlc01bsk/dM//ZN69OihrKwsvfvuu5ozZ47Ky8v1yiuvXLIvWd77e++9J7/fr1OnTqlz585at26dbrrpJu3du7fNH++L9a42fLzPR0BpQ0aNGuX8++abb1ZeXp569Oihl156KebBAa1j4sSJzr8HDBigm2++WTfccIO2bt2qESNGxLS2aJk+fbr27dunt956K9altLqL9T5t2jTn3wMGDFBmZqZGjBihDz/8UDfccEMMKo2O3r17a+/evQqFQvrf//1fTZ48Wdu2bYt1Wa3iYr3fdNNNbfZ4n4+3eCR1795dHTp0uOAT4FVVVfL5fDGr62qlpaXp61//ug4fPiyfz6fTp0+rtrY2Yszf9ujz+Zr8G5zbdqkxbrfbihB0rs5LHUufz6fq6uqI7WfOnFFNTU1U/hY2PWauv/56de/eXYcPH5baQO8zZszQhg0b9Oabb+q6665z1rfW4zuWzxUX670peXl5khRx3OOx9+TkZN14440aPHiwioqKNHDgQP3yl79sF8f7Yr03pa0c7/MRUL58IAwePFjFxcXOusbGRhUXF0e85xdv6urq9OGHHyozM1ODBw9WUlJSRI/l5eU6evSo06Pf79d7770X8QK2efNmud1u59Si3++PmOPcGFv+Trm5ufL5fBE1hsNhlZaWRvRZW1ursrIyZ8yWLVvU2Njo/Ef3+/3avn27GhoanDGbN29W79691bVrV2eMzX8LSfrLX/6izz77TJmZmVIc926M0YwZM7Ru3Tpt2bLlgregWuvxHYvniq/qvSl79+6VpIjjHo+9n6+xsVH19fVt+nhfzLnem9JWjzdX8Xxp7dq1JiUlxaxatcocOHDATJs2zaSlpUV8Ctp2jz76qNm6daupqKgwf/zjH00gEDDdu3c31dXVxnx5WV5OTo7ZsmWL2bVrl/H7/cbv9zv7n7s07e677zZ79+41mzZtMtdee22Tl6bNnj3bHDx40CxbtqzVLzM+fvy42bNnj9mzZ4+RZJ555hmzZ88e89FHHxnz5WXGaWlp5tVXXzXvvvuuGTduXJOXGQ8aNMiUlpaat956y/Tq1SviUtva2lrj9XrNpEmTzL59+8zatWvNNddcc8GltomJiebpp582Bw8eNAsWLGjxy4wv1fvx48fNv/7rv5qSkhJTUVFhfv/735tbb73V9OrVy5w6dSque3/ooYeMx+MxW7dujbi08uTJk86Y1np8t/ZzxVf1fvjwYfOTn/zE7Nq1y1RUVJhXX33VXH/99eauu+6K697nzp1rtm3bZioqKsy7775r5s6da1wul/m///s/Y9rw8f6q3tvq8W4KAeVvLF261OTk5Jjk5GQzdOhQs2PHjliX1Cz33XefyczMNMnJyeZrX/uaue+++8zhw4ed7V988YX5/ve/b7p27WquueYa8w//8A/mk08+iZjjyJEjZtSoUSY1NdV0797dPProo6ahoSFizJtvvmluueUWk5ycbK6//nqzcuXKVuvx3P1LumCZPHmyMV9eajxv3jzj9XpNSkqKGTFihCkvL4+Y47PPPjP333+/6dy5s3G73eaBBx4wx48fjxjzzjvvmGHDhpmUlBTzta99zSxcuPCCWl566SXz9a9/3SQnJ5t+/fqZjRs3xqz3kydPmrvvvttce+21JikpyfTo0cNMnTr1gieTeOy9qZ4lRTz2WvPx3ZrPFV/V+9GjR81dd91l0tPTTUpKirnxxhvN7NmzI74XIx57/+53v2t69OhhkpOTzbXXXmtGjBjhhBPTho+3+Yre2+rxborL/P//AAAAANbgMygAAMA6BBQAAGAdAgoAALAOAQUAAFiHgAIAAKxDQAEAANYhoAAAAOsQUAAAgHUIKAAAwDoEFAAAYB0CCgAAsA4BBQAAWOf/AXtvKzQWv4UrAAAAAElFTkSuQmCC",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# you may need to do `pip install matplotlib`\n",
"\n",
"import matplotlib.pyplot as plt\n",
"\n",
"fig, ax = plt.subplots()\n",
"ax.hist([t/60 for t in playtime], bins=30)\n",
"ax.ticklabel_format(useOffset=False, style=\"plain\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# filter out those with less than 500 hours in the game\n",
"\n",
"seasoned = (t for t in playtime if t > 1000*60)\n",
"\n",
"fig, ax = plt.subplots()\n",
"ax.hist([t/60 for t in seasoned], bins=30)\n",
"ax.ticklabel_format(useOffset=False, style=\"plain\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.4059040590405904 - ratio of players with open profiles\n",
"There are 534 players with 1000+ in game, 0.8090909090909091\n"
]
}
],
"source": [
"seasoned_num = len([t for t in playtime if t > 1000*60])\n",
"\n",
"print(f\"{len(playtime)/len(reviewers)} - ratio of players with open profiles\")\n",
"\n",
"print(f\"There are {seasoned_num} players with 1000+ in game, {seasoned_num/len(playtime)}\")\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.6"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment