finds.dev← search

// the find

tiajinsha/JKVideo

★ 4,988 · TypeScript · MIT · updated May 2026

高颜值第三方 B 站 React Native 客户端

A third-party Bilibili client built with React Native and Expo, supporting DASH playback, real-time danmaku, WBI signature auth, and LAN sharing. Technically ambitious for a hobby project — it reverse-engineers Bilibili's API stack including MPD generation and WebSocket danmaku. Dead: the repo received a cease-and-desist from Bilibili and is now frozen.

The DASH pipeline is well thought out — building a local MPD from Bilibili's stream URLs and feeding it to ExoPlayer is the right approach rather than fighting with HLS fallbacks. WBI signing implemented in pure TypeScript without external crypto deps is clean. The shims directory shows real effort to support Web platform alongside native. Zustand store segmentation (videoStore, liveStore, downloadStore, etc.) is appropriately scoped rather than one giant blob.

The project is legally dead — a cease-and-desist from Bilibili was issued and development has stopped, so you're adopting something with no future maintenance. The Expo Go path silently degrades to WebView injection for video playback, which means the quick-start path gives you a worse experience than the README implies. No tests anywhere in the codebase. The LAN HTTP server for sharing (react-native-static-server) is a non-trivial background process and the implementation in utils/lanServer.ts is not something you'd want to debug when it misbehaves on Android 13+.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →