Skip to content

feat(userscript): Add Bilibili SponsorBlock userscript - #181

Open
hxueh wants to merge 1 commit into
hanydd:masterfrom
hxueh:master
Open

feat(userscript): Add Bilibili SponsorBlock userscript#181
hxueh wants to merge 1 commit into
hanydd:masterfrom
hxueh:master

Conversation

@hxueh

@hxueh hxueh commented Jul 11, 2025

Copy link
Copy Markdown

本次提交引入了 Bilibili SponsorBlock 的初始版本,作为一款适用于 Tampermonkey 的用户脚本。该脚本将现有 Chrome 扩展的核心功能转化为跨平台脚本,可在安装了 Tampermonkey 的多个浏览器中运行。

主要功能:

  • 自动跳过 Bilibili 视频中的赞助商片段。
  • 支持多种片段分类,包括赞助、自我推广和互动内容。
  • 通过 Tampermonkey 实现跨平台兼容性,可在 Chrome、Firefox 和 Safari 上运行。

实现点:

  • 利用 GM_xmlhttpRequest 高效与 SponsorBlock 服务器进行 API 通信。

  • 基于视频播放时间实现稳健的片段检测与自动跳过逻辑。

  • 内置简化的配置系统,用于管理服务器地址和分类跳过偏好。

  • 使用 SHA-256 哈希处理视频 ID。

  • 包含针对单页应用(SPA)导航的处理机制,确保在页面切换过程中功能持续有效。

  • 我同意我的所有贡献将以GPL-3.0协议开源。


This commit introduces the initial release of the Bilibili SponsorBlock as a Tampermonkey userscript. It converts the core functionality of the existing Chrome extension into a cross-platform script, enabling it to run on various browsers with Tampermonkey installed.

Key Features:
- Automatically skips sponsor segments in Bilibili videos.
- Supports multiple segment categories, including sponsor, self-promotion, and interaction.
- Provides cross-platform compatibility through Tampermonkey, working on Chrome, Firefox, and Safari.

Architecture Highlights:
- Leverages `GM_xmlhttpRequest` for efficient API communication with the SponsorBlock server.
- Implements robust segment detection and automatic skipping logic based on video playback time.
- Includes a simplified configuration system for managing server addresses and category skip preferences.
- Utilizes SHA-256 hashing for video ID processing.
- Incorporates mechanisms to handle Single Page Application (SPA) navigation, ensuring continuous functionality across page changes.
@etherfun

etherfun commented Jul 12, 2025

Copy link
Copy Markdown
Contributor

用了一会感觉还是不太完善 不过已经能用了

  • 没有片段预览和跳过提示 不知道视频里有没有片段 这就导致跳过很突然
  • 无法取消跳过(有可能是我没找到?) 在有人乱提交的背景下取消跳过还是很有必要的 比如2:00-3:00有一个片段在这个一分钟的片段里用户随机跳转到这个片段里 比如2:14 会被跳转到3:00无法跳转到2:14 在用户不知情的情况下可能会认为是脚本BUG
  • 少了一些功能 比如整个视频标签显示 动态广告折叠等 要写这些工作量有点大

@hxueh

hxueh commented Jul 12, 2025

Copy link
Copy Markdown
Author

用了一会感觉还是不太完善 不过已经能用了

  • 没有片段预览和跳过提示 不知道视频里有没有片段 这就导致跳过很突然
  • 无法取消跳过(有可能是我没找到?) 在有人乱提交的背景下取消跳过还是很有必要的 比如2:00-3:00有一个片段在这个一分钟的片段里用户随机跳转到这个片段里 比如2:14 会被跳转到3:00无法跳转到2:14 在用户不知情的情况下可能会认为是脚本BUG
  • 少了一些功能 比如整个视频标签显示 动态广告折叠等 要写这些工作量有点大

嗯,目前还是一个非常简陋的版本。我看看加上前两个功能

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants