#22799·RSSHub

feat(route/bilibili): authenticated article full text and current Opus images

Author: vizmoeCreated Jul 22, 2026Updated Jul 22, 2026
LabelsRSS enhancement

What feature is it?

Enhance the existing Bilibili routes so a self-hosted RSSHub instance can use an explicitly configured Bilibili session to retrieve article bodies that the logged-in account is already allowed to read, and render images from the current Opus dynamic payload shape.

Proposed behavior:

  • Allow /bilibili/user/article/:uid/:loginUid? to select BILIBILI_COOKIE_<loginUid>, falling back to the configured Bilibili cookie when loginUid is omitted.
  • Fetch each article body from the Opus detail API, with the article page as a fallback.
  • Keep anonymous/public behavior unchanged.
  • Cache article details per authentication context and never cache or publish an authenticated title-only response as a successful full-text item.
  • Normalize current Opus image modules in /bilibili/user/dynamic/:uid/:routeParams?, including the image payload used by https://www.bilibili.com/opus/1223675872465125381.

This is authenticated access, not a paywall bypass: RSSHub should only return protected content when the supplied account can already access it.

What problem does this feature solve?

The current article route can return only titles/previews for charging-exclusive articles even when the self-hosted instance has a valid Bilibili cookie. Separately, current Opus dynamics may contain valid pictures in a newer module shape that the route does not render, so image posts appear text-only.

This makes the generated feed incomplete for legitimate logged-in use and causes full-text readers to persist title-only entries.

Additional description

Suggested acceptance criteria:

  1. Public articles still work without a cookie.
  2. With BILIBILI_COOKIE_<loginUid>, articles already unlocked for that account contain their complete body.
  3. CAPTCHA, authentication failure, and title-only responses are not cached or emitted as authenticated full-text success.
  4. Cache keys distinguish anonymous and authenticated sessions.
  5. Current Opus picture modules render all valid images in dynamic entries.

Related but not duplicate:

  • #19985 covered an older undefined preview-image regression and was fixed separately.
  • #18506 covers Bilibili API request failures (-352), not article authorization or Opus image parsing.

This is not a duplicated feature request or new RSS proposal