Files

53 lines
1.9 KiB
Python

# -*- coding: utf-8 -*-
"""后端 API 冒烟测试。"""
import json
import urllib.parse
import urllib.request
BASE = "http://127.0.0.1:8799"
def get(path):
with urllib.request.urlopen(BASE + path, timeout=60) as r:
return json.loads(r.read().decode("utf-8"))
def post(path, payload):
data = json.dumps(payload).encode("utf-8")
req = urllib.request.Request(BASE + path, data=data,
headers={"Content-Type": "application/json"})
with urllib.request.urlopen(req, timeout=60) as r:
return json.loads(r.read().decode("utf-8"))
print("--- /api/config ---")
cfg = get("/api/config")
print(f"threads={cfg['threads']} outputDir={cfg['outputDir']}")
print(f"ffmpeg={cfg['ffmpeg']}")
print(f"configPath={cfg['configPath']}")
print("\n--- /api/login ---")
print(get("/api/login"))
print("\n--- /api/search?q=航拍中国 ---")
s = get("/api/search?q=" + urllib.parse.quote("航拍中国"))
print(f"numResults={s['numResults']} hasMore={s['hasMore']} 条数={len(s['items'])}")
for it in s["items"][:5]:
print(f" {it['bvid']} {it['title'][:34]} up={it['author']} dur={it['duration']} play={it['play']}")
print(f" pic = {s['items'][0]['pic']}")
print("\n--- /api/video?bvid=BV1HVBAYLEAo ---")
v = get("/api/video?bvid=BV1HVBAYLEAo")
print(f"title={v['title']}")
print(f"owner={v['owner']} duration={v['duration']}s pages={len(v['pages'])}")
cid = v["pages"][0]["cid"]
print(f"cid={cid}")
print("\n--- /api/playurl ---")
p = get(f"/api/playurl?bvid=BV1HVBAYLEAo&cid={cid}")
print(f"maxQuality={p['maxQuality']} video流={len(p['video'])} audio流={len(p['audio'])}")
for q in p["qualities"]:
print(f" qn={q['quality']:>4} {q['label']} {q.get('width')}x{q.get('height')}")
print(f" 4K 候选: " + ", ".join(
f"{s['quality']}/{s['codecs']}/{s['bandwidth']//1000}kbps" for s in p["video"] if s["quality"] == 120))