loadingi / Twitter排行榜:TikTok版

Published:

Version: 5.3.0+057a515 updated

Summary: TikTok风格上下滑动切换,PC/移动端双端适配,缩略图先行加载、进度指示、点赞、只看未读、循环播放、长按倍速、广告/弹窗/重定向屏蔽

License: Apache-2.0

Antifeature: unspecified

Twitter排行榜:TikTok风格播放器 (Twitter Ranking TikTok Style Player)

这是一个 Tampermonkey/Violentmonkey 油猴脚本,为 Twitter Ero Video RankingX-Ero-Anime 网站提供沉浸式的 TikTok 风格视频播放体验。

✨ 主要功能 (Features)

  • 🎬 沉浸式播放体验:点击列表封面的任何视频,即可在当前页面打开全屏模态框播放,无需跳转。
  • 📱 TikTok 风格交互
    • 上下滑动切换:像刷短视频一样,上滑/下滑(或使用鼠标滚轮)自动切换到上一个/下一个视频。
    • 无缝衔接:自动预加载相邻视频,切换无比流畅。
  • 🛡️ 广告与弹窗拦截:内置强大的 5 层防护体系,全面拦截并清理各类恶意广告、Popunder 弹窗及强制重定向。
  • ❤️ 收藏与分享:点击喜欢按钮直接调用网站 API 收藏视频;支持一键通过原生分享菜单或复制链接分享视频。
  • ⬇️ 下载功能:一键在新标签页打开视频原始链接进行下载。
  • ⚙️ 自定义设置面板
    • 🔖 已观看记录:本地记录已看视频,支持"只看未读"模式过滤。
    • � 循环播放:可随时开启或关闭视频的单曲循环。
  • �🔧 核心技术修复
    • 解决 403 问题:内置智能防盗链规避策略(Referer Spoofing),完美解决 Twitter 视频无法播放的问题。
    • 精准提取:使用 LD+JSON 解析技术,精准获取真实的高清视频地址。
  • 🚀 性能优化
    • 无感知预加载:预先解析并缓存相邻视频的真实地址(抛弃早期臃肿的 Blob 缓存),极大地降低了内存占用,实现秒开。
    • 精简架构:采用单例响应式监听与防抖加载策略,页面滚动不卡顿,确保移动端顺滑体验。

🎮 操作说明 (Controls)

操作方式 功能
🖱️ 鼠标与滚轮 鼠标滚轮 或 按住鼠标左键上下拖拽可切换视频
👆 触摸滑动 上滑下一个,下滑上一个
👆 长按加速 长按遮罩层空白处可 2.0x 倍速播放 (松开恢复正常)
⌨️ 键盘 ↑ / ↓ 上下切换视频
⌨️ 键盘 空格/Enter 播放/暂停
⌨️ 键盘 Esc 关闭播放器
❌ 关闭按钮 点击右上角或遮罩层空白处关闭
⚙️ 设置按钮 控制"只看未读"与"循环播放"开关
❤️ 喜欢与分享 收藏/取消收藏视频,或分享视频链接至其他应用
⬇️ 下载按钮 在新标签页打开视频链接进行下载
📊 进度条拖放 点击或拖拽进度条跳转播放位置

🛠️ 怎么安装? (Installation)

🍎 苹果机 (iOS)

  • 推荐方法 1:👉 用 「Stay for Safari」(App Store 免费版就够用)。安装后去脚本页面,点右下角 Stay 按钮就能装上。
  • 推荐方法 2:👉 用 「Userscripts」(App Store 有)。

🤖 安卓 / Windows / Mac

  • 直接安装 「Tampermonkey」 插件就行了 👉 https://www.tampermonkey.net/
  • Edge Android 版 似乎也支持装插件了,各位可以试试。

📝 更新日志

v3.1

  • 🛡️ 全面广告/弹窗/重定向屏蔽:通过分析网站源码,拦截了以下广告体系:
    • 发现的广告脚本和域名:
      域名/脚本/选择器 类型 出现位置
      deductgreedyheadroom.com/zbs.kek.js Preroll 广告 (82KB混淆脚本,含 popunder/redirect) 两站 movie 详情页 JS chunk
      earmuffpostnasalrisotto.com/bn.js Banner 广告 (82KB混淆脚本) 两站 movie 详情页,通过 data-cl-spot 插入
      navyrecentuproot.com/on.js Popunder 广告 动态注入(非SSR,运行时加载)
      js.ssp.bance.jp/bnctag.js SSP 广告平台 x-ero-anime.com 首页 <link preload>
      .s-popunder class Popunder 触发器 所有 movie 链接的 <a> 标签
      #floating-ad 浮动广告容器 deductgreedyheadroom 脚本插入
      [id^="bnc_ad"] Bance 广告位 x-ero-anime.com 的 #bnc_ad_19228
      [data-cl-spot]/[data-clbaid] 广告 slot 标记 两站 movie 页
    • 屏蔽策略(5层防护):
      • (A) Hook document.createElement 拦截动态创建的广告 <script>
      • (B) MutationObserver 实时移除广告 DOM 元素
      • (C) Hook window.open 拦截弹窗
      • (D) 移除 .s-popunder class 消除 popunder 触发
      • (E) 定时清理(应对延迟加载的广告,40秒内每2秒扫一次)

v3.0

  • 🏗️ 架构重构:整合了吧友 @Fting 提供的代码,以 loadToken 竞态防护 + 缩略图先行模式为核心,统一 navigate(delta) 入口路由所有输入(滑动/滚轮/拖拽/键盘)。
  • 💻 PC端回归:滚轮切换(节流400ms)、鼠标拖拽切换(阈值80px)、完整键盘支持(↑↓←→/空格/Enter/Esc)、CSS hover 效果(通过 @media (hover:hover) 防移动端粘滞)。
  • 视觉升级:Glassmorphism CSS 变量体系、滑动切换动画(slide-in/out)、心跳点赞动画、进度条拖拽放大效果、顶/底渐变遮罩。
  • 🗑️ 精简移除:去掉 Blob 预加载缓存(仅缓存 URL)、去掉随机假数据(改用真实 extractLikes)、去掉 Google Fonts 引入。

v2.1.1 (2026-01-15)

  • 🆕 进度条拖放功能:支持鼠标和触摸拖拽,实时预览目标时间点。
    • 悬停/触摸时进度条自动加粗,显示拖动点
    • 拖拽时拖动点放大发光,视觉反馈明确
    • 拖拽过程中暂停进度更新,避免抖动
  • 🎨 遮罩层优化
    • 顶部遮罩改用更柔和的线性渐变,减小高度和透明度
    • 底部遮罩高度从 200px 优化至 120px,仅覆盖必要控件区域
    • 修复底部遮罩因 padding 导致未覆盖屏幕边缘的问题

v2.1 (2026-01-15)

  • 🆕 新增"只看未读"切换按钮,过滤已观看视频。
  • 🆕 新增下载按钮,一键获取视频原始链接。
  • 🆕 喜欢按钮现调用网站 API 进行收藏。
  • 🆕 本地存储已观看视频记录 (localStorage)。
  • ⚡ 优化触摸事件识别,区分滑动与点击,避免误触发。
  • 🎨 全新 TikTok 风格 UI:
    • 进度条移至底部贴边 + 底部渐变遮罩
    • 操作按钮透明背景 + 图标阴影
    • 顶部渐变遮罩提升控件可见度
    • 响应式移动端优化
  • 🏗️ 代码重构:提取 getCurrentVideo() 等辅助方法。

v2.0

  • 新增视频预加载策略 (Preload Strategy),缓存相邻视频前 1MB 数据。
  • 优化 LD+JSON 解析逻辑,大幅提高视频地址获取成功率。
  • 增加全局 no-referrer 策略,彻底修复视频 403 Forbidden 错误。
  • 重构 UI 样式,更接近原生 App 体验。

⚠️ 免责声明

本脚本仅供技术研究和学习使用,请勿用于任何非法用途。


Author: Chris_C
License: MIT

Rating: 12

12 Votes
-12