SteamのAppIDは、ストアURLの「/app/」の直後にある数字です。1本のゲームを調べるなら、まず対象ゲームのストアページを開いてURLを確認してください。複数タイトルのIDをまとめて取得したい場合は、このページの公式API・Pythonの手順へ進めます。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)}")名前で検索する
API取得時と同じ作業フォルダーで、次のコードだけを新しいPython実行から動かせます。通信は行わず outputs/steam_app_list.csv を読みます。
import csv
from pathlib import Path
csv_path = Path("outputs/steam_app_list.csv")
with csv_path.open(encoding="utf-8-sig", newline="") as f:
reader = csv.DictReader(f)
if not {"appid", "name"}.issubset(reader.fieldnames or []):
raise ValueError("CSVに appid / name 列が必要です")
apps = list(reader)
keyword = "MONSTER HUNTER"
matches = [app for app in apps if keyword.casefold() in (app["name"] or "").casefold()]
for app in matches[:20]:
print(app["appid"], app["name"])
print("一致件数:", len(matches))Steam上では、同じシリーズの本編、DLC、体験版、サウンドトラックが近い名前で並ぶことがあります。検索結果だけで決めず、ストアURLやタイトルを確認してから使います。
AppIDを使う後続記事
- Steam appdetailsの使い方|価格・発売日・対応OS・ジャンルをPythonで取得
- Steam appreviewsの使い方|レビュー本文・評価サマリーをPythonで取得
- Steam同時接続数を定期取得して可視化する方法|CCU推移をPythonで保存する
- SteamSpy APIの使い方|推定オーナー数・タグ・CCU指標をPythonで取得
まとめ
SteamのAppIDは、ストアURLの /app/ 直後にある数字を見るのが最も簡単です。複数タイトルをまとめて探す場合は、公式APIのアプリ一覧をCSVに保存して検索すると扱いやすくなります。