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

使用Python调用Mojang API获取Minecraft皮肤URL失败求助

如何通过Mojang API获取Minecraft皮肤URL?

你的代码已经成功解码了Mojang返回的profile属性数据,但缺少从解码后的JSON中提取皮肤URL的关键步骤。以下是修正后的完整实现:

修正后的代码

import json
import requests
import base64

# 玩家UUID(替换为你要查询的无短横线格式UUID)
player_uuid = "11f1cc006cc84499a174bc9b7fa1982a"

try:
    # 请求Mojang会话服务器获取玩家profile
    response = requests.get(f"https://sessionserver.mojang.com/session/minecraft/profile/{player_uuid}")
    response.raise_for_status()  # 捕获HTTP请求错误
    
    # 提取base64编码的纹理属性数据
    profile_data = response.json()
    encoded_textures = profile_data["properties"][0]["value"]
    
    # 解码base64数据并解析为JSON对象
    decoded_bytes = base64.b64decode(encoded_textures)
    textures_data = json.loads(decoded_bytes.decode('utf-8'))
    
    # 提取皮肤资源URL
    skin_url = textures_data["textures"]["SKIN"]["url"]
    print("皮肤URL:", skin_url)
    
except requests.exceptions.RequestException as e:
    print(f"请求出错: {e}")
except KeyError as e:
    print(f"数据解析出错,缺失字段: {e}")

关键改进说明

  • 异常处理:新增HTTP请求错误和JSON字段缺失的捕获逻辑,避免程序直接崩溃
  • 明确数据解析:将解码后的字符串转为JSON对象,方便精准提取皮肤字段
  • 直接获取皮肤URL:从textures.SKIN.url路径中提取最终的皮肤资源地址

注意事项

  • 必须使用无短横线格式的UUID,Mojang会话服务器仅支持这种格式的UUID查询
  • 如果玩家未设置皮肤,textures.SKIN字段可能不存在,建议额外添加该字段的存在性判断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 01:25:25