Greasy Fork

Greasy Fork is available in English.

b站 | bilibili | 哔哩哔哩 | 一键三连健康探针(BiliHealth Scan)

一键三连健康探针(BiliHealth Scan)显示b站 | bilibili | 哔哩哔哩 点赞率、投币率、收藏率、转发率及Steam综合评级

当前为 2025-06-13 提交的版本,查看 最新版本

作者
xiangye
评分
0 0 0
版本
1.9.6.1
创建于
2025-06-02
更新于
2025-06-13
大小
185.9 KB
许可证
MIT
适用于

一键三连健康探针

Logo
Stars Forks License Downloads Version

🎯 精准评估 | 🚀 实时分析 | 💡 智能推荐

✨ 项目简介

一键三连健康探针是一款优雅的 B 站视频互动数据可视化工具。通过智能算法,自动展示视频的点赞率、投币率、收藏率、转发率及综合评分,助您快速洞察视频质量。

🎯 核心特性

  • 📊 智能计算互动率与综合评分
  • 🌐 全站适配:首页、视频页、搜索页、分区、空间主页
  • 📋 一键复制评分标签
  • 🌓 自动适配深色/浅色模式
  • 🔄 实时更新评分数据
  • ⚡ 极低性能占用

🖼️ 效果展示

效果图1 效果图2

📥 快速安装

  1. 安装用户脚本管理器(推荐:Tampermonkey、Violentmonkey)
  2. 访问 Greasy Fork
  3. 点击"安装"即可使用

📊 评分体系

权重配置

  • 点赞率:1.5
  • 投币率:4.0
  • 收藏率:3.0
  • 转发率:2.0

评分等级

  • 🌈 满分神作(≥100%)
  • 🔥 好评如潮(95-99%)
  • ⭐ 非常好评(80-94%)
  • 👍 多半好评(70-79%)
  • 🤔 褒贬不一(40-69%)
  • 😐 多半差评(20-39%)
  • ❌ 差评如潮(<20%)

📈 项目指标

Star History

📢 一键三连健康探针(BiliHealth Scan) 🌈🎉 2.0 大版本预告 🎉🌈

BiliHealth Scan 即将迎来 2.0 大版本!本次重大升级,我对好评率算法、评级体系、交互体验等核心功能进行了全方位的重构与优化, 致力于为每一位内容创作者和观众带来更公平、更科学、更人性化的视频质量评价。

🚀 2.0版本 主要更新亮点

🧮 1. 全新好评率计算体系

  • 🧠 引入"有效播放量"概念
    通过动态幂次处理,极高播放量视频的好评率不再被过度稀释,互动数据权重更合理,优质高热视频能获得更公正的评价。
  • ⚖️ 基础互动权重全面调整
    点赞、投币、收藏、转发等互动项的权重更科学,避免单一数据拉高好评率,评价更严谨。
  • 📊 好评率上限与播放量动态关联
    不同播放量区间设定更严格的好评率上限,防止低播放量视频出现虚高好评率。

📈 2. 多级分层加成机制

  • 🎯 播放量分级加成
    针对初始好评率较低的视频,按播放量分档给予额外加成,确保高播放量作品的潜力得到体现。
  • 💎 高互动量专项奖励
    对点赞、投币、收藏、转发等互动量极高的视频,分项分级线性加成,优质爆款不再被埋没。
  • 🌱 低好评率高互动率额外加成
    发现并奖励那些虽然好评率暂时不高,但互动表现活跃、极具潜力的视频。

🖼️ 3. 评级显示与体验优化

  • 🏷️ 特殊评级文案直观展示
    "刷到必看""小破站必刷"等特殊评级将以专属文案直接展示,避免与数值好评率混淆。
  • 🔍 低播放量视频好评率更精细
    播放量极低的视频不再一律显示0%,而是根据实际情况浮动,反映真实初始状态。
  • 🪧 "有待观察"评级全页面统一
    主页、搜索页、分区页、空间页等所有卡片页面均能准确展示"有待观察"评级。

🛡️ 4. 算法透明与公平性提升

  • 🚫 移除高好评率膨胀机制
    70%以上好评率不再被额外抬高,评级更真实可信。
  • 🔒 好评率显示严格不超100%
    所有场景下好评率均有上限保护,杜绝异常溢出。

✨ 5. 视觉与交互体验升级

  • 📖 评级体系与算法规则全面公开
    让每一位用户都能理解评分背后的逻辑,提升信任感。

🌟 2.0 版本展望

BiliHealth Scan 2.0 不仅是一次算法升级,更是一次理念的进化。我希望通过更科学的评价体系,帮助优质内容被更多人发现,也让每一位创作者都能获得更公平的认可。感谢大家一路以来的支持与反馈,2.0 版本即将上线,敬请期待!

🔄 1.9.6.1版本更新说明

✨ 1. 切换视频时≈xx%精准替换与同步:

  • 切换视频时,点赞、投币、收藏、转发的≈xx%显示支持精准替换,彻底解决重复、残留、不同步等问题。
  • 采用唯一属性data-bh-type标记每个≈xx%,提升DOM操作效率和兼容性。

✅ 2. 收藏与转发数据刷新优化:

  • 优化收藏、转发数据的获取与显示逻辑,确保所有互动项在切换视频后都能正确刷新。

🔧 3. 其它细节体验优化和小bug修复。

🔄 1.9.6版本更新说明(来自反馈用户:Eddddie)

  • 优化"单页应用(SPA)"技术
  • 针对 B站视频详情页采用单页应用(SPA)技术,切换视频时页面不会整体刷新的情况,脚本将支持自动监听 BVID 变化,实现每次切换视频都能自动刷新评分和各项数据。
  • 这将彻底解决"切换视频后数据未及时更新"的问题,让使用体验更加流畅和智能!

🔄 1.9.3 版本更新说明(来自反馈用户:24601)

  • 新增"有待观察"评级
    主页卡片、分区卡片、空间主页卡片、搜索页卡片、视频详情页等所有支持的 B 站页面,现已统一支持“有待观察”评级。
    • 当视频满足发布3天内、播放量≤5000、好评率≤40%时,将在统计信息区域醒目标注“有待观察”字样。
    • 采用统一的灰色斜体样式,并带有闪烁动画,便于用户快速识别数据尚不充分的新视频。
    • 评级判定与显示逻辑在全站各类卡片、详情页等区域完全一致,体验高度统一。

🔄 1.9 版本更新说明(来自反馈用户:24601)

核心优化

  • 全站字体风格统一
    主页卡片、分区卡片、空间主页卡片、搜索页卡片、视频详情页等所有统计与评级区域,字体全部统一为 B 站主站同款无衬线字体族(-apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif),视觉风格高度一致。
  • 所有评级、统计、好评率等区域字体不再加粗,权重统一为 font-weight: 400(视频详情页为 500),字号、行高等自适应,兼容多分辨率。

  • 视频详情页样式增强
    详情页所有自定义展示区(综合评级、好评率、各项比率、复制按钮等)字体族、字号、字重、行高全部与主站一致,细节高度还原官方风格。

  • 解决了部分区域字体不一致、加粗、字号不统一等问题。

  • 自适应与兼容性提升
    统计信息、好评率、评级标签等在不同页面、不同卡片、不同分辨率下均能自适应字体大小和风格。

  • 彻底消除因原生样式或浏览器默认字体导致的视觉割裂。

其它改进

  • 代码结构优化,样式注入更集中、易维护。
  • 细化了 MutationObserver 监听,确保动态加载内容也能正确应用新样式。
  • 细节体验提升,评分展示更美观、专业。

🔄 1.8 版本更新说明(来自反馈用户:TMRL、chhhh、臭臭花)

  • 🎯 多页面支持:统一主逻辑入口,全站适配
  • 🔄 自动刷新:BVID 变化监听,实时更新
  • 💫 展示优化:兼容新版页面,算法优化
  • ⚡ 性能提升:高效监听,流畅体验
  • 🏗️ 架构优化:逻辑分离,易于维护

🔗 相关链接

权重计算逻辑

在"一键三连健康探针"脚本中,我们使用一套加权计算方法来评估视频的互动率,并将其转化为好评率。

互动数据标准化

在进行计算之前,首先通过 normalizeData(rawData) 函数对从 Bilibili API 获取的原始统计数据进行标准化处理,确保播放量(view)、点赞(like)、投币(coin)、收藏(favorite)、分享(share)字段都存在且为非负整数。

normalizeData(rawData) {
    return {
        view: parseInt(rawData.view) || 0,
        like: parseInt(rawData.like) || 0,
        coin: parseInt(rawData.coin) || 0,
        favorite: parseInt(rawData.favorite) || 0,
        share: parseInt(rawData.share) || 0
    };
}

加权互动比率计算

核心的加权互动比率计算在 calculateWeightedRatio(data) 函数中完成。

calculateWeightedRatio(data) {
    // 播放量小于1000的视频直接返回0(此判断在getDisplayRatio中处理更全面)
    // if (data.view < 1000) return 0;

    const weightedInteractions =
        (data.like * this.WEIGHTS.like) +
        (data.coin * this.WEIGHTS.coin) +
        (data.favorite * this.WEIGHTS.favorite) +
        (data.share * this.WEIGHTS.share);

    // 计算加权互动比率并乘以300作为基础值
    return ((weightedInteractions / data.view) * 100 * 3).toFixed(2);
}

这里使用了 INTERACTION_WEIGHTS 常量来定义不同互动类型的权重:

const INTERACTION_WEIGHTS = {
    like: 1,
    coin: 8,
    favorite: 4,
    share: 6,
};

根据这些权重,投币和分享在计算时对总分的影响比点赞和收藏更大。计算出的加权互动总和除以播放量,再乘以 100 得到百分比,最后乘以 3 得到一个基础的"权重互动比率"。

播放量分级与好评率上限

为了避免低播放量视频因偶然的高互动率而获得虚高的评分,我们在 getDisplayRatio 函数中引入了播放量分级和对应的好评率上限。这是您最近优化的部分。

// 定义播放量阈值和对应的最大好评率上限(1.8.4修正)
const VIEW_THRESHOLDS = [
 { view: 1000, maxRatio: 51.99 },    // <= 1千播放量,好评率不能成功52%
 { view: 50000, maxRatio: 85.99 },   // <= 5万播放量,好评率不能成功86%
{ view: 350000, maxRatio: 90.99 },  // <= 35万播放量,好评率不能成功91%
{ view: 500000, maxRatio: 96.99 }   // <= 50万播放量,好评率不能成功97%
 ];

// ... (在getDisplayRatio函数中) ...

let currentRatio = ratio; // 原始计算出的加权互动比率

// 对于播放量小于1000的视频,直接返回0
if (data.view < 1000) return "0.00";

// 根据播放量应用好评率上限
for (const threshold of VIEW_THRESHOLDS) {
    if (data.view <= threshold.view) {
        currentRatio = Math.min(currentRatio, threshold.maxRatio);
        //console.log(`[BiliHealth Scan] View ${data.view} <= ${threshold.view}, capped ratio to ${threshold.maxRatio}. Original ratio: ${ratio.toFixed(2)}`); // Debugging log
        break; // 找到匹配的最低阈值后停止
    }
}

// 后续的评级和展示都基于这个应用了上限的 currentRatio
// ... (见 评级与颜色逻辑 文档) ...

这段逻辑确保了:

  • 播放量小于等于 1 千的视频,好评率最高显示 51.99%。
  • 播放量小于等于 5 万的视频,好评率最高显示 68.99%。
  • 播放量小于等于 35 万的视频,好评率最高显示 84.99%。
  • 播放量小于等于 50 万的视频,好评率最高显示 96.99%。

对于播放量高于 50 万的视频,将不受这些上限的限制,使用原始计算结果进行后续处理。

这些逻辑共同构成了脚本评估视频"健康度"的基础。

⚠️ 使用提示

  • 评分仅供参考,请结合个人观感
  • 新视频建议等待数据稳定
  • 欢迎反馈异常或建议

📜 免责声明

本工具数据来源于 B 站公开信息,评分基于统计学模型,仅供参考。用户应结合自身判断使用,开发者不对评分结果承担责任。