Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Steam Game List Exporter

一个用于导出 Steam 游戏库和愿望单信息的小工具。

本项目通过 Steam Web API 获取用户的游戏列表和愿望单列表,并可进一步从 Steam 商店页面补全游戏名称、类型、发售日期、价格、折扣、商店链接等信息。导出结果为 CSV 文件,方便后续查看、整理个人游戏档案,或者作为结构化数据交给 AI 分析。

功能

  • 获取 Steam 用户拥有的游戏列表
  • 获取 Steam 愿望单列表
  • 导出为 CSV 文件
  • 获取游戏游玩时长:
    • 总游玩时间
    • 最近两周游玩时间
    • 最后游玩时间
  • 获取游戏成就完成情况:
    • 已解锁成就数
    • 总成就数
    • 成就完成率
  • 可补全 Steam 商店页信息:
    • 游戏名称
    • 类型
    • 发售日期
    • 是否免费
    • 当前价格
    • 原价
    • 折扣力度
    • 商店链接
    • ...
  • 可自定义排序方式
  • 可选从本地 Steam 配置文件中补充部分 Steam API 未返回的 App,例如:
    • 部分家庭共享游戏
    • Demo
    • 测试版
    • 原声带
    • 其他本地出现过的 Steam App

依赖

需要安装:

pip install requests pandas

如果你想启用本地 localconfig.vdf 补充功能,还需要安装:

pip install vdf

其中:

  • requests:用于请求 Steam Web API 和 Steam Store API
  • pandas:用于整理数据并导出 CSV
  • vdf:仅用于读取本地 Steam 的 localconfig.vdf 文件;如果不使用本地补充功能,可以不安装

使用方法

1. 获取 Steam API Key

访问:https://steamcommunity.com/dev/apikey

登录你的 Steam 账户后申请一个 API Key。注意:Steam API Key 是私密信息,请不要分享给别人。

2. 找到你的 Steam ID

打开你的 Steam 个人资料页面,通常网址类似:

https://steamcommunity.com/profiles/XXXXXXXXXXXXXXXXX

其中 XXXXXXXXXXXXXXXXX 这一串数字就是你的 Steam ID。

3. 可选:找到本地 Steam 配置文件

如果你想从本地 Steam 文件中补充一些 Steam API 没有返回的 App,可以设置 LOCALCONFIG_PATH

Windows 默认位置通常类似:

LOCALCONFIG_PATH = r"C:\Program Files (x86)\Steam\userdata\**********\config\localconfig.vdf"

其中 ********** 是你的本地 Steam userdata 编号。

如果不想使用本地补充功能,可以将其留空:LOCALCONFIG_PATH = None

4. 填写配置并运行

在脚本中填写:

STEAM_API_KEY = "YOUR_STEAM_API_KEY"
STEAM_ID = "YOUR_STEAM_ID"

LOCALCONFIG_PATH = r"C:\Program Files (x86)\Steam\userdata\**********\config\localconfig.vdf"

然后运行脚本:

python steam_game_list.py

运行后会生成两个 CSV 文件:

steam_games_full.csv
steam_wishlist_full.csv

排序方式

当前脚本中,拥有游戏列表默认按照:

  1. 最近两周游玩时间
  2. 总游玩时间

从高到低排序,效果类似小黑盒的排序。

愿望单默认按照:

  1. 折扣力度
  2. 加入愿望单时间

排序。

你可以在代码中修改 export_to_csv() 的参数来自定义排序方式,例如:

export_to_csv(
    full_records,
    "steam_games_full.csv",
    by=["最近两周游玩时间(分钟)", "总游玩时间(分钟)"],
    ascending=[False, False]
)

或者:

export_to_csv(
    wishlist,
    "steam_wishlist_full.csv",
    by=["discount_percent", "date_added"],
    ascending=[False, False]
)

脚本参数

脚本中有一个参数game_details=True,当它为 True 时,脚本会额外请求 Steam Store 的 appdetails 接口,用于补全商店页信息,例如:

  • 游戏名称
  • 类型
  • 发售日期
  • 是否免费
  • 当前价格
  • 原价
  • 折扣力度
  • 商店链接
  • ...(其他内容可以手动修改代码增加输出)

这对于本地 localconfig.vdf 补充出来的 App 尤其有用,因为本地文件通常只有 AppID、游玩时间和最后游玩时间,不包含游戏名称。

不过,如果你的游戏库很大,开启 game_details=True 可能会让运行速度变慢。必要时可以改成:

full_records = get_owned_games(game_details=False)

这样会跳过商店详情补全,速度会更快,但输出信息也会更少。

可以设置商店详情的语言和地区:

  • LANGUAGE对应Steam 商店详情返回的语言,影响游戏名称、简介、类型等文本信息的语言。
  • COUNTRY:Steam 商店价格区域,影响价格、货币符号和折扣显示。

例如,如果希望使用简体中文商店信息和中国区价格,可以写成:

LANGUAGE = "schinese"  # schinese / english / ... 主语言
COUNTRY = "cn"  # us / cn / ... 用于价格区域

输出示例:游戏库

(示例使用英文商店信息;真实输出中,最后游玩时间将精确到秒)

AppID 游戏名称 来源 总游玩时间(小时) 总游玩时间(分钟) 最近两周游玩时间(小时) 最近两周游玩时间(分钟) 最后游玩时间 已解锁成就数 总成就数 成就完成率(%) type release_date is_free price_final price_initial discount_percent store_url
1052990 A Monster's Expedition Steam API 10.73 644 2.72 163 2026-05 5 9 55.56 game 10 Sep, 2020 FALSE ¥76.00 0 https://store.steampowered.com/app/1052990/
353540 Stephen's Sausage Roll Steam API 0.33 20 0.33 20 2026-04 N/A N/A N/A game 17 Apr, 2016 FALSE ¥108.00 0 https://store.steampowered.com/app/353540/
753640 Outer Wilds Steam API 80.60 4836 0 0 2023-03 19 31 61.29 game 18 Jun, 2020 FALSE ¥95.00 0 https://store.steampowered.com/app/753640/
835960 The Talos Principle 2 Steam API 75.22 4513 0 0 2024-12 87 87 100 game 2 Nov, 2023 FALSE ¥108.00 0 https://store.steampowered.com/app/835960/
1318690 shapez Steam API 48.48 2909 0 0 2026-03 45 45 100 game 7 Jun, 2020 FALSE ¥3.50 ¥35.00 90 https://store.steampowered.com/app/1318690/
683320 GRIS localconfig 8.92 535 0 0 2026-01 17 17 100 game 13 Dec, 2018 FALSE ¥14.50 ¥58.00 75 https://store.steampowered.com/app/683320/
1255980 Portal Reloaded Steam API 7.35 441 0 0 2023-07 N/A N/A N/A mod 19 Apr, 2021 TRUE https://store.steampowered.com/app/1255980/
2021450 14 Minesweeper Variants Demo localconfig 3.87 232 0 0 2024-12 N/A N/A N/A demo 8 Jun, 2022 TRUE https://store.steampowered.com/app/2021450/
4059560 localconfig 1.65 99 0 0 2025-10 N/A N/A N/A https://store.steampowered.com/app/4059560/
220 Half-Life 2 Steam API 0 0 0 0 从未游玩 0 69 0 game 16 Nov, 2004 FALSE ¥42.00 0 https://store.steampowered.com/app/220/
323170 Portal Soundtrack localconfig 0 0 0 0 2023-07 N/A N/A N/A music 24 Sep, 2014 TRUE https://store.steampowered.com/app/323170/

其中:

  • 来源 = Steam API 表示该记录来自 Steam Web API。
  • 来源 = localconfig 表示该记录是从本地 Steam 配置文件中补充得到的。
  • N/A 通常表示该游戏没有可用成就信息,或者成就接口不可用。
  • 某些 App 可能只有 AppID,没有完整商店信息,这是 Steam Store API 未返回完整数据导致的,可能是游戏已不可被添加,必要时可以自行去steamdb搜索。

输出示例:愿望单

Steam 愿望单 API 默认返回的信息比较有限,主要是 AppID。因此脚本会继续请求 Steam Store 的 appdetails 接口,补全游戏名、价格、折扣和商店链接等信息。

AppID 游戏名称 type release_date is_free price_final price_initial discount_percent store_url date_added
220200 Kerbal Space Program game 27 Apr, 2015 FALSE ¥37.00 ¥148.00 75 https://store.steampowered.com/app/220200/ 2020-06
314650 SpaceEngine game 11 Jun, 2019 FALSE ¥75.60 ¥108.00 30 https://store.steampowered.com/app/314650/ 2020-07
4160210 The Artisan of Glimmith game 17 Mar, 2026 FALSE ¥44.20 ¥52.00 15 https://store.steampowered.com/app/4160210/ 2026-04
316610 A Good Snowman Is Hard To Build game 25 Feb, 2015 FALSE ¥58.00 0 https://store.steampowered.com/app/316610/ 2026-04
2799820 FSA DRIVING game Sep-26 FALSE https://store.steampowered.com/app/2799820/ 2026-02
3980290 Solvimus game 9 Sep, 2026 FALSE https://store.steampowered.com/app/3980290/ 2026-02
3938920 Birza game To be announced FALSE https://store.steampowered.com/app/3938920/ 2025-08

注意事项

Steam API Key

Steam API Key 是私密信息。如果 API Key 不小心泄露,可以到 Steam API Key 页面删除或重新生成。

Steam 个人资料可见性

如果你的 Steam 游戏库不是公开可见,Steam API 可能无法返回完整数据。

输出文件包含个人信息

导出的信息可能暴露个人游戏习惯,请妥善处理您的个人信息。

本地文件补充不是完整的家庭共享列表

localconfig.vdf 只能补充本机 Steam 客户端记录过的一部分 App。

它可能包含:

  • 家庭共享库中玩过的游戏
  • Demo
  • 测试版
  • Mod
  • 原声带
  • 已下架或无完整商店页的 App

但它不是 Steam 官方的家庭共享游戏列表接口,因此结果不一定完整。

其他问题

  • Steam API 的访问需要配置代理,有时有代理也会偶发网络错误,可以多试几次。
  • 如果游戏很多,运行可能较慢,其他问题目前未知。

鸣谢

License

This project is licensed under the Apache License 2.0.

This is an unofficial personal-use tool and is not affiliated with Valve or Steam. Users are responsible for complying with Steam's terms and API policies.

About

export Steam game list and wishlist

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages