# -*- coding: utf-8 -*- import json, ssl, pathlib, sys, urllib.request, urllib.error BASE = "https://192.168.31.88:8042" CFG = pathlib.Path(r"C:\Users\admin\.zcode\cli\config.json") pat = json.loads(CFG.read_text(encoding="utf-8-sig"))["mcp"]["servers"]["sorb"]["env"]["SORB_PAT"] ctx = ssl._create_unverified_context() OUT = pathlib.Path(r"D:\腾讯\吕布\视频资产\分镜") OUT.mkdir(parents=True, exist_ok=True) tid = int(sys.argv[1]) name = sys.argv[2] req = urllib.request.Request(BASE + "/api/external/v1/tasks/" + str(tid), headers={"Authorization": "Bearer " + pat}) o = json.loads(urllib.request.urlopen(req, context=ctx, timeout=60).read().decode("utf-8")) print("status=", o.get("status"), "progress=", o.get("progress")) print("error_message=", o.get("error_message")) print("image_url=", o.get("image_url")) print("outputs=", json.dumps(o.get("outputs"), ensure_ascii=False)[:800]) url = o.get("image_url") if not url and o.get("outputs"): for item in o["outputs"]: if isinstance(item, dict): for k in ("url", "url_snapshot", "file_url", "image_url"): if item.get(k): url = item[k] break if url: break if url and o.get("status") == "completed": full = url if url.startswith("http") else BASE + url req = urllib.request.Request(full, headers={"Authorization": "Bearer " + pat}) with urllib.request.urlopen(req, context=ctx, timeout=120) as r: data = r.read() path = OUT / (name + ".png") path.write_bytes(data) print("saved", path, len(data))