You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过package-id获取Steam平台的package名称?

如何通过Steam Package-ID获取包名称

方案1:调用登录后的账户许可证API(最可靠,支持所有账户拥有的包)

Steam账户许可页面的后端接口https://store.steampowered.com/account/getlicenses/,在登录状态下发送GET请求,可获取账户关联的所有许可证信息,其中包含packageid和对应的name字段(即包的完整名称)。

示例请求(Python,需携带登录后的Steam cookies):

import requests

# 替换为你的登录cookie
cookies = {
    'steamLoginSecure': '你的steamLoginSecure值',
    'sessionid': '你的sessionid值'
}

response = requests.get('https://store.steampowered.com/account/getlicenses/', cookies=cookies)
licenses = response.json()

# 遍历或过滤目标package-id
for license in licenses['licenses']:
    print(f"Package ID: {license['packageid']}, 名称: {license['name']}")

方案2:修正CMsgClientPICSProductInfoRequest参数(支持账户有权限/公开包)

你之前使用该请求时可能遗漏了语言参数,导致未返回本地化名称。正确构造请求(以SteamKit2为例):

var request = new ClientMsgProtobuf<CMsgClientPICSProductInfoRequest>(EMsg.ClientPICSProductInfoRequest);
request.Body.meta_data_only = false;
request.Body.packageids.Add(目标PackageID);
// 指定语言,确保返回对应名称
request.Body.language = "schinese"; // 或"english"等语言代码

client.Send(request);

监听EMsg.ClientPICSProductInfoResponse后,在返回的packageinfo的key_values字段中,可提取name条目作为包名称。此方法仅能获取账户有权限访问或公开的包信息。

方案3:Steam Storefront API的packagedetails接口(补充方案,支持公开包)

针对公开可购买的包,可通过指定区域和语言参数调用接口获取信息,部分非公开包需登录后访问。

示例请求:

import requests

package_id = 目标PackageID
response = requests.get(f"https://store.steampowered.com/api/packagedetails/?packageids={package_id}&cc=CN&l=schinese")
data = response.json()

if str(package_id) in data and data[str(package_id)]['success']:
    package_name = data[str(package_id)]['data']['name']
    print(f"Package ID: {package_id}, 名称: {package_name}")

参数说明:

  • cc:国家代码(如CN、US),影响区域包信息
  • l:语言代码(如schinese、english),获取对应语言名称

方案4:解析Steam商店包页面(仅支持有公开页面的包)

部分包有公开商店页面(https://store.steampowered.com/sub/[PackageID]/),可通过爬取页面标题获取名称:

import requests
from bs4 import BeautifulSoup

package_id = 目标PackageID
url = f"https://store.steampowered.com/sub/{package_id}/"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')

package_name = soup.title.string.split(' on Steam')[0]
print(f"Package ID: {package_id}, 名称: {package_name}")

注意:无公开页面的内部促销包无法通过此方法获取。

内容的提问来源于stack exchange,提问作者Christian Stieber

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 09:53:17