填写你的个人信息与Steam代码

susu
填写个人信息与Steam代码时需保持谨慎,相关操作一般用于账户验证、绑定或交易确认,务必通过Steam官方渠道完成,个人信息和Steam代码属于敏感凭证,一旦泄露可能导致账户被盗或资产损失,切勿向他人透露或在不明网页提交,填写前应核对网址真实性,确保信息准确无误;完成后建议开启两步验证并定期检查账户动态,若发现异常,应立即修改密码并联系官方支持,保障账户与虚拟资产安全。

Steam 代码教学:从 API Key 到 Python 实战,做一个游戏库统计工具

很多人听到“Steam 代码”,第一反应可能是充值卡、CDK 或兑换码,但本文要讲的“Steam 代码”并不是这些,而是编程代码

填写你的个人信息与Steam代码

通过 Steam 官方提供的 Web API,我们可以用 Python 读取自己的游戏库、游戏时长、最近两周游玩记录等数据,做一个简单的个人游戏统计工具,整个过程使用官方接口,安全、合法,适合想入门编程或对 Steam 数据感兴趣的玩家。


准备工作

在开始之前,你需要准备以下内容:

  • 一个 Steam 账号
  • Python 3.8 或更高版本
  • 安装 requests 库,用来发送 HTTP 请求

安装命令:

pip install requests

还需要确保你的 Steam 游戏详情是公开的,否则接口可能返回空数据。

设置方法:

  1. 打开 Steam 客户端或网页版。
  2. 进入你的个人资料。
  3. 点击“隐私设置”。
  4. 将“游戏详情”设置为“公开”。

申请 Steam Web API Key

Steam 官方提供了 Web API,但需要先申请一个 API Key。

申请步骤:

  1. 打开浏览器,访问:

    https://steamcommunity.com/dev/apikey

  2. 登录你的 Steam 账号。

  3. 在“域名”一栏填写一个本地开发域名即可,

    https://localhost

  4. 点击注册,系统会生成一串 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 网络请求,都可以在这个基础上继续扩展。

文章版权声明:除非注明,否则均为麻团原创文章,转载或复制请以超链接形式并注明出处。

目录[+]