この記事では、Steamのゲームやアプリを識別する AppID を確認する方法をまとめます。Steamの価格、レビュー、同時接続数、ニュース、SteamSpy指標などを取得する場合、まずAppIDが必要です。
この記事でできること
- SteamストアURLからAppIDを確認する
- 現行のSteam公式APIのアプリ一覧からAppIDを探す
- Pythonでアプリ一覧をCSV保存する
- AppID、Package、DLCを混同しないための見方を整理する
AppIDとは
AppIDは、Steam上のアプリケーションを識別する数値IDです。ゲーム本編、DLC、ツール、デモなどに付与されます。たとえばストアURLが https://store.steampowered.com/app/730/CounterStrike_2/ の場合、AppIDは 730 です。
方法1:ストアURLから確認する
最も簡単なのは、SteamストアページのURLを見る方法です。
https://store.steampowered.com/app/2246340/Monster_Hunter_Wilds/この例では、/app/ の直後にある 2246340 がAppIDです。個別ゲームの分析では、この確認方法で十分なことが多いです。
方法2:公式APIのアプリ一覧から探す
アプリ名からまとめて探したい場合は、現行のSteam Web API IStoreService/GetAppList/v1 を使います。旧 ISteamApps/GetAppList/v2 はSteamworks公式資料で非推奨とされており、現行方式ではWeb APIキーが必要です。
Steamworks公式:IStoreService/GetAppList / Steam Web APIキーの取得と保管方法
import json
import os
import requests
from dotenv import load_dotenv
load_dotenv()
api_key = os.getenv("STEAM_API_KEY")
if not api_key:
raise RuntimeError("STEAM_API_KEY が設定されていません")
url = "https://partner.steam-api.com/IStoreService/GetAppList/v1/"
request_data = {
"include_games": True,
"last_appid": 0,
"max_results": 3,
}
params = {
"key": api_key,
"input_json": json.dumps(request_data),
}
response = requests.get(url, params=params, timeout=30)
response.raise_for_status()
apps = response.json()["response"]["apps"]
print(apps)IStoreService はService interfaceのため、取得条件を input_json へ渡します。結果はAppID順で、各項目には appid、name、last_modified、price_change_number が含まれます。1回の取得上限は5万件なので、全件取得では前回最後の appid を次回の last_appid に渡します。
アプリ一覧は件数が多いため、毎回APIを呼ぶより、一度CSVとして保存してから検索するほうが扱いやすいです。次の例は既定どおりゲームを対象にし、最後のAppIDを使って全ページを順に取得します。
Pythonでアプリ一覧をCSV保存する
import csv
import json
import os
from pathlib import Path
import requests
from dotenv import load_dotenv
load_dotenv()
api_key = os.getenv("STEAM_API_KEY")
if not api_key:
raise RuntimeError("STEAM_API_KEY が設定されていません")
url = "https://partner.steam-api.com/IStoreService/GetAppList/v1/"
max_results = 50_000
last_appid = 0
apps = []
while True:
request_data = {
"include_games": True,
"last_appid": last_appid,
"max_results": max_results,
}
params = {
"key": api_key,
"input_json": json.dumps(request_data),
}
response = requests.get(url, params=params, timeout=30)
response.raise_for_status()
page = response.json()["response"].get("apps", [])
if not page:
break
apps.extend(page)
next_last_appid = page[-1]["appid"]
if next_last_appid <= last_appid:
raise RuntimeError("last_appid が進まないため取得を中止しました")
last_appid = next_last_appid
csv_path = Path("outputs/steam_app_list.csv")
csv_path.parent.mkdir(parents=True, exist_ok=True)
with csv_path.open("w", encoding="utf-8-sig", newline="") as f:
writer = csv.DictWriter(f, fieldnames=["appid", "name"])
writer.writeheader()
writer.writerows(
{"appid": app["appid"], "name": app["name"]}
for app in apps
)
print(f"saved: {csv_path}")
print(f"rows: {len(apps)}")名前で検索する
keyword = "MONSTER HUNTER"
matches = [
app for app in apps
if keyword.lower() in app["name"].lower()
]
for app in matches[:20]:
print(app["appid"], app["name"])Steam上では、同じシリーズの本編、DLC、体験版、サウンドトラックが近い名前で並ぶことがあります。検索結果だけで決めず、ストアURLやタイトルを確認してから使います。
AppIDを使う後続記事
- Steam appdetailsの使い方|価格・発売日・対応OS・ジャンルをPythonで取得
- Steam appreviewsの使い方|レビュー本文・評価サマリーをPythonで取得
- Steam同時接続数を自前収集して可視化する方法|CCUをPythonで定期取得
- SteamSpyの使い方|推定オーナー数・タグ・CCU指標をPythonで取得
まとめ
SteamのAppIDは、ストアURLの /app/ 直後にある数字を見るのが最も簡単です。複数タイトルをまとめて探す場合は、公式APIのアプリ一覧をCSVに保存して検索すると扱いやすくなります。