# -*- coding: utf-8 -*- """诊断:nav 为何报未登录 + dash.video 实际内容。""" import json import sys import urllib.request sys.path.insert(0, r"E:\deepseek\BiliDownloaderWeb") import engine cfg = json.load(open(r"E:\deepseek\BiliDownloaderWeb\config.json", encoding="utf-8")) sess = cfg["sessdata"] print("config 里 sessdata 长度 =", len(sess)) print("前 24 字符 =", sess[:24]) print("后 24 字符 =", sess[-24:]) print("\n--- 直接请求 nav,看原始返回 ---") req = urllib.request.Request( engine.API_NAV, headers={"User-Agent": engine.UA, "Referer": "https://www.bilibili.com", "Cookie": "SESSDATA=" + sess}) with urllib.request.urlopen(req, timeout=30) as r: raw = json.loads(r.read().decode("utf-8")) print("code =", raw.get("code"), " message =", raw.get("message")) d = raw.get("data") or {} print("isLogin =", d.get("isLogin"), " uname =", d.get("uname")) print("有 wbi_img =", bool(d.get("wbi_img"))) print("\n--- dash.video 实际内容(qn=127)---") vid = engine.video_detail("BV1HVBAYLEAo", "SESSDATA=" + sess) cid = vid["pages"][0]["cid"] p = engine.play_url("BV1HVBAYLEAo", cid, "SESSDATA=" + sess) print("maxQuality =", p["maxQuality"]) for s in p["video"]: print(f" 视频流 qn={s['quality']:>4} {s['width']}x{s['height']} codec={s['codecs']} {s['bandwidth']//1000}kbps") for s in p["audio"]: print(f" 音频流 {s['codecs']} {s['bandwidth']//1000}kbps") print("qualities 的 width/height 字段示例:", p["qualities"][0])