# -*- coding: utf-8 -*- """Try downloading the 4 stale tasks via media_asset original_url (they are saved in library: 9041/9039/9038/9037).""" import json, ssl, pathlib, urllib.request 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() def get(url): req = urllib.request.Request(url, headers={"Authorization": "Bearer " + pat}) return urllib.request.urlopen(req, context=ctx, timeout=120) OUT = pathlib.Path(r"D:\腾讯\吕布\视频资产\后台补档") OUT.mkdir(parents=True, exist_ok=True) MAPPING = [ (9041, "task12858_吕布三视图V4_戟尾细化_9041.png"), (9039, "task12857_吕布三视图V3_束发修正_9039.png"), (9038, "task12848_吕布三视图V2_9038.png"), (9037, "task12838_吕布三视图V1_9037.png"), ] for mid, fname in MAPPING: try: d = json.loads(get(f"{BASE}/api/external/v1/resources/{mid}").read().decode("utf-8")) data_field = d.get("data") or d url = data_field.get("original_url") or data_field.get("file_url") if not url: print(mid, "no url, keys:", list(data_field.keys())[:10]); continue full = url if url.startswith("http") else BASE + url data = get(full).read() (OUT / fname).write_bytes(data) print("downloaded", fname, len(data)) except Exception as e: print("FAIL", mid, str(e)[:100])