Files
RSSHub/lib
d0c6e6a87a feat(route/bilibili): fold browser mode into video route (#21913)
* feat(route/bilibili): add video-browser route using Puppeteer for video list extraction

Replace broken real-browser API dependency with getPuppeteerPage + browserless
to render Bilibili space pages and extract video data via DOM parsing. Includes
username extraction from page title and cover image detection.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix(route/bilibili): fix video title extraction picking stats over actual titles

The candidate selection logic was preferring longer text (e.g. "8.3万23907:45")
over real titles (e.g. "爆肝三天,我总结了 GPT Image 2 全网最实用的玩法")
because stats strings passed the hasTitle check. Now prefer candidates that
contain Chinese characters and don't start with digits, falling back to
longest hasTitle candidate. Fixes 11/35 UIDs returning empty results.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* feat(route/bilibili): add /user/video-browser route using Puppeteer + XHR interception

Close #20406

Bilibili upgraded anti-crawler (WBI signing) on /x/space/wbi/arc/search
in Nov 2025, causing existing /user/video/:uid to return 412.

This new route bypasses it by intercepting the browser's own API response
via Puppeteer, extracting structured JSON data (title, bvid, pic, created
timestamp, author, play/comment counts) instead of fragile DOM scraping.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* feat(route/bilibili): fold browser mode into video route

---------

Co-authored-by: gqy20 <qingyu_ge@foxmail.com>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-05 18:07:51 +08:00
..
2026-03-05 02:36:53 +08:00
2026-04-14 15:15:05 +00:00
2026-04-14 15:15:05 +00:00
2026-03-17 15:59:10 +08:00
2026-03-25 23:16:40 +08:00
2026-04-24 11:35:51 +08:00
2026-04-13 23:45:08 +08:00
…
2026-04-14 15:15:05 +00:00
…
2026-04-14 15:15:05 +00:00