What it is
A spoiler filter for Bilibili danmaku (scrolling comments) built around one Jev Score question per comment.
What it does: Fetches the whole video's comments, deduplicates them by text, sends them to Jev in batches with a five-level rubric (from reacting to the current scene up to naming the ending), and removes comments above the threshold from the protobuf segments before the player parses them, so both DOM and canvas danmaku are filtered. A CLI runs the same pipeline offline with a dry-run cost estimate.
Why it belongs in the showcase: A clear example of using Score severity plus a code-side threshold for content filtering, with cost control through dedup, batching and caching.
Caveats: Small hand-labeled evaluation; Bilibili only for now.
Evidence
Public MIT README; Jev Score question per comment (levels 0–4), blocked when score / 4 ≥ 0.6 (threshold configurable, cached severities so changing it needs no new API calls); ~160 comments per request, concurrency 8, cache keyed on rule version + model + text; author-reported cost ~$0.08 and ~9 s warm-up for a video with ~6,700 comments; `npm run verify` measures P/R/F1 on 29 hand-labeled samples.
Caveats
- Bilibili only in the first version; requests to Bilibili are made from the page context because the site rejects extension origins
- Accuracy check is a 29-sample hand-labeled set; cost and latency are the author's own measurements
- Sends comment text plus video title and description to TypeSafe; daily cap of 200,000 judgments; needs your own API key
Unofficial case page. Stars / list position observed for heat; do not treat heat as a quality SLA. Review the upstream README before you depend on it.