Files
daymade e90c4abd37 feat(bilibili-source): document favorites endpoints + verify the login subtitle path (#389)
- Favorites (`x/v3/fav/folder/created/list-all` + `x/v3/fav/resource/list`): new reference
  section, verified logged-in 2026-08-29 with plain params (no WBI; 26 consecutive pages,
  no rate-limiting), per-item field semantics, and the `attr != 0` dead-video marker.
  Login scope measured, not assumed: anonymous list-all answers code 0 with an EMPTY list
  even for an account whose folders are publicly readable, so enumeration is login-gated;
  a public folder's contents stay anonymously readable if you already know its media_id.
- SESSDATA subtitle path upgraded from "documented, verify on first use" to verified:
  the full chain (view -> player/wbi/v2 with cookies -> the protocol-relative track JSON
  on the AI-subtitle CDN) exercised across a ~400-video batch, multi-part included.
- Two hard-won corrections: Python urllib falls back to the macOS *system* proxy when proxy
  env vars are stripped (intermittent 503s in batches; fix is an explicit ProxyHandler({})
  opener), and subtitle text is not in the watch page's DOM (only track metadata is), so
  DOM-capture tools structurally cannot save a transcript.
- selftest grows a 10th row so "health-check every capability" stays true for favorites:
  it asserts the endpoint shape AND the anonymous-enumeration-empty invariant. Live: 10/10.

Verification: regression audit fully classified (10 candidates: 8 preserved, 2 factual
upgrades); two rounds of fresh-context independent review (round-1 3 findings on this
artifact, all minor and fixed; round-2 13/13 resolved, 0 new issues).

🤖 Generated with [Claude Code](https://claude.com/claude-code)


Claude-Session: https://claude.ai/code/session_01K7xTX17Wz3XUGXuJvP7YxS

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-29 18:31:49 +08:00
..