填写个人信息与Steam代码时需保持谨慎,相关操作一般用于账户验证、绑定或交易确认,务必通过Steam官方渠道完成,个人信息和Steam代码属于敏感凭证,一旦泄露可能导致账户被盗或资产损失,切勿向他人透露或在不明网页提交,填写前应核对网址真实性,确保信息准确无误;完成后建议开启两步验证并定期检查账户动态,若发现异常,应立即修改密码并联系官方支持,保障账户与虚拟资产安全。
Steam 代码教学:从 API Key 到 Python 实战,做一个游戏库统计工具
很多人听到“Steam 代码”,第一反应可能是充值卡、CDK 或兑换码,但本文要讲的“Steam 代码”并不是这些,而是编程代码。

通过 Steam 官方提供的 Web API,我们可以用 Python 读取自己的游戏库、游戏时长、最近两周游玩记录等数据,做一个简单的个人游戏统计工具,整个过程使用官方接口,安全、合法,适合想入门编程或对 Steam 数据感兴趣的玩家。
准备工作
在开始之前,你需要准备以下内容:
- 一个 Steam 账号
- Python 3.8 或更高版本
- 安装
requests库,用来发送 HTTP 请求
安装命令:
pip install requests
还需要确保你的 Steam 游戏详情是公开的,否则接口可能返回空数据。
设置方法:
- 打开 Steam 客户端或网页版。
- 进入你的个人资料。
- 点击“隐私设置”。
- 将“游戏详情”设置为“公开”。
申请 Steam Web API Key
Steam 官方提供了 Web API,但需要先申请一个 API Key。
申请步骤:
-
打开浏览器,访问:
https://steamcommunity.com/dev/apikey -
登录你的 Steam 账号。
-
在“域名”一栏填写一个本地开发域名即可,
https://localhost -
点击注册,系统会生成一串 API Key。
注意:API Key 相当于你的访问凭证,不要泄露给别人,也不要上传到公开仓库。
获取你的 SteamID
SteamID 是一串数字,
76561198123456789
获取方法:
-
打开你的 Steam 个人资料页。
-
如果网址是:
https://steamcommunity.com/profiles/76561198123456789/那么这串数字就是你的 SteamID。
-
如果你的网址是自定义链接,
https://steamcommunity.com/id/yourname/则需要通过接口解析出 SteamID,后面的代码会处理这种情况。
完整 Python 代码
下面是一个完整的示例代码,功能包括:
- 解析自定义链接中的 SteamID
- 获取玩家昵称
- 获取游戏总数
- 统计总游戏时长
- 输出游戏时长 Top10
import requests
API_KEY = "你的_API_KEY"
STEAM_ID = "7656119XXXXXXXX" # 如果你已经知道自己的 SteamID
VANITY_URL = "" # 如果你的主页是 /id/xxx,这里填 xxx;否则留空
def resolve_vanity_url(api_key, vanity):
"""把 /id/xxx 自定义链接解析成 SteamID"""
url = "https://api.steampowered.com/ISteamUser/ResolveVanityURL/v1/"
resp = requests.get(url, params={
"key": api_key,
"vanityurl": vanity
}, timeout=10)
data = resp.json().get("response", {})
if data.get("success") == 1:
return data["steamid"]
return None
def get_player_summary(api_key, steam_id):
"""获取玩家基本信息"""
url = "https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/"
resp = requests.get(url, params={
"key": api_key,
"steamids": steam_id
}, timeout=10)
data = resp.json().get("response", {})
players = data.get("players", [])
return players[0] if players else {}
def get_owned_games(api_key, steam_id):
"""获取游戏库数据"""
url = "https://api.steampowered.com/IPlayerService/GetOwnedGames/v0001/"
params = {
"key": api_key,
"steamid": steam_id,
"include_appinfo": 1,
"include_played_free_games": 1,
"format": "json"
}
resp = requests.get(url, params=params, timeout=15)
return resp.json().get("response", {})
def main():
steam_id = STEAM_ID
# 如果有自定义链接,优先解析
if VANITY_URL:
resolved = resolve_vanity_url(API_KEY, VANITY_URL)
if resolved:
steam_id = resolved
print(f"已从自定义链接解析到 SteamID: {steam_id}")
else:
print("自定义链接解析失败,使用默认 STEAM_ID")
# 获取玩家昵称
player = get_player_summary(API_KEY, steam_id)
print("玩家昵称:", player.get("personaname", "未知"))
# 获取游戏库
data = get_owned_games(API_KEY, steam_id)
games = data.get("games", [])
game_count = data.get("game_count", len(games))
print(f"游戏总数:{game_count}")
# 统计总时长
total_playtime = sum(g.get("playtime_forever", 0) for g in games)
print(f"总游戏时长:{total_playtime / 60:.1f} 小时")
# 按总时长排序,取前 10 名
top_games = sorted(
games,
key=lambda x: x.get("playtime_forever", 0),
reverse=True
)[:10]
print("\n游戏时长 Top10:")
for i, game in enumerate(top_games, 1):
name = game.get("name", "未知游戏")
hours = game.get("playtime_forever", 0) / 60
last_two_weeks = game.get("playtime_2weeks", 0) / 60
print(f"{i}. {name} | 总时长 {hours:.1f}h | 近两周 {last_two_weeks:.1f}h")
if __name__ == "__main__":
main()
运行结果示例
运行后,你可能会看到类似输出:
玩家昵称:游戏玩家小明 游戏总数:168 总游戏时长:1234.5 小时 游戏时长 Top10: 1. Dota 2 | 总时长 800.0h | 近两周 12.0h 2. CS2 | 总时长 350.5h | 近两周 8.5h 3. Elden Ring | 总时长 120.0h | 近两周 0.0h ...
常见问题
为什么 games 是空的?
通常是因为你的 Steam 游戏详情没有设置为公开,请回到“隐私设置”,将“游戏详情”设为公开。
API Key 提示 403 或无权限?
先检查 API Key 是否复制完整,是否有空格,新申请的 Key 有时候需要等待几分钟才生效。
自定义链接解析失败?
请确认 VANITY_URL 填写正确,例如你的主页是:
https://steamcommunity.com/id/abc123/
那么在代码里应该写:
VANITY_URL = "abc123"
可以读取别人的游戏库吗?
如果对方的游戏详情是公开的,并且你拥有对方的 SteamID,理论上可以读取公开数据,但请务必遵守 Steam API 使用条款,不要批量采集他人隐私或公开数据。
进阶玩法
掌握基础后,你还可以做更多事情:
- 将数据保存到 CSV 或数据库,记录每天的游戏时长变化。
- 用 Flask 或 FastAPI 做一个网页版统计面板。
- 使用 Chart.js 等前端库把游戏时长做成图表。
- 结合 AI 工具,自动分析你的游戏偏好。
- 定时运行脚本,观察自己最近两周的游戏趋势。
安全与边界
最后提醒几句:
- 不要把你的 API Key 发到公开仓库或群里。
- 不要尝试通过代码生成 Steam 充值码、CDK 或兑换码,官方并没有开放这类接口,网上很多“Steam 代码生成器”都是骗局。
- 不要使用脚本频繁请求 Steam 接口,避免触发限流。
- 只读取自己或已公开授权数据,不要做违规采集。
掌握了这个 Steam 代码教学案例,你就有了一个很好的起点,之后无论是做个人数据分析,还是学习 Python 网络请求,都可以在这个基础上继续扩展。
