MCPcopy Index your code
hub / github.com/VideoRoll/VideoRoll

github.com/VideoRoll/VideoRoll @v1.1.8

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.1.8 ↗ · + Follow
220 symbols 557 edges 74 files 26 documented · 12%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Video Roll

Chrome Web Store

Chrome Web Store | Edge Add-ons | Firefox Add-ons | Home Page

English | 简体中文

✨ 介绍

Video Roll 是一个帮助你旋转、缩放、移动、下载、调整比例、镜像翻转、调节音调、音量、倍速、专注和滤镜任意网页中 HTML5 视频的浏览器插件。在大部分网站上都表现出色(Youtube™/Bilibili/Vimeo/TikTok/Twitter 等),支持旋转同源 iframe 下的视频(如 dailymotion.com),支持快捷键: Ctrl+Up/Right/Down/Left/B。我们提供了超棒的记忆功能,帮助你一下次进入网站直接生效。


✨ 主要特性

9603e49b7121b314caf11da224ab3667.png


  • ✅ 可旋转任何网页中的 HTML5 视频,支持 0/90/180/270° 旋转
  • ✅ 支持镜像翻转(垂直/水平翻转)
  • ✅ 支持自定义缩放
  • ✅ 支持移动视频位置
  • ✅ 支持自定义比例调整
  • ✅ 支持下载视频
  • ✅ 支持调节视频音调
  • ✅ 支持调节视频音量,突破最大音量
  • ✅ 支持调节视频倍速
  • ✅ 专注模式
  • ✅ 支持设置滤镜效果
  • ✅ 发现Iframes
  • ✅ 记忆系统(保存当前网站的配置,下次进入网页直接生效)
  • ✅ 针对同源 iframe 中的视频做了优化,支持旋转同源 iframe 中的视频(如 dailymotion.com)
  • ✅ 旋转视频时,会自动根据视频容器和视频原始大小尺寸进行自适应,避免旋转后只能展示部分内容的情况
  • ✅ 重视安全性,插件不会收集任何用户信息
  • ✅ 支持快捷键 ctrl + 方向键

✨ 快捷键使用方式

  • 打开设置页面查看和自定义

✨ 安装

  • crx 安装

  • 开发模式安装 如您无法安装 crx,可以在浏览器的扩展程序中开启“开发者模式”,直接将 dist 文件夹拖入安装即可。


✨ 捐赠


✨ 问题反馈

若您在使用中遇到任何问题,比如 bug 或者网站有特殊的视频元素无法旋转,请在 issue 中留下问题,我们会尽快解决。


✨ 贡献

如果你觉得这个插件对你有所帮助,please star it.

若你发现问题或有更好的 idea,欢迎贡献想法和代码~

贡献步骤

  1. 将本仓库克隆到你的本地
  2. 在根目录下执行 pnpm install
  3. 开发模式: 执行 pnpm run dev:chromium, 然后可以将dist文件夹直接拖入chrome的扩展程序管理中.(确保打开了开发者模式). Parcel 将会帮你完成热更新,你只需要修改代码,然后重新点击popup按钮即可。
  4. 构建: 执行 pnpm run build. 将会打包出 chromium zip 和 firefox zip。

✨ 感谢以下开源项目

  • vue
  • parcel
  • parcel-namer-hashless
  • jest
  • jsx
  • typescript
  • copyfiles
  • jungle
  • node
  • less
  • vant
  • visual Studio Code
  • pnpm
  • yarn
  • webextension-polyfill

Extension points exported contracts — how you extend this code

IMove (Interface)
(no doc)
src/types/type.d.ts
IConfig (Interface)
(no doc)
src/popup/content/utils/useComponents.tsx
IBrowserAPI (Interface)
(no doc)
src/util/getBrowser.ts
IExpect (Interface)
(no doc)
__tests__/rotate.test.ts
IScale (Interface)
(no doc)
src/types/type.d.ts
IComponentConfig (Interface)
(no doc)
src/popup/content/utils/useComponents.tsx
IFilter (Interface)
(no doc)
src/types/type.d.ts
IContainerConfig (Interface)
(no doc)
src/popup/content/utils/useComponents.tsx

Core symbols most depended-on inside this repo

createURL
called by 17
src/util/createURL.ts
getScaleNumber
called by 13
src/inject/VideoRoll.ts
sendTabMessage
called by 10
src/util/sendTabMessage.ts
sendRuntimeMessage
called by 7
src/util/sendRuntimeMessage.ts
setRollConfig
called by 5
src/inject/VideoRoll.ts
getDefaultConfig
called by 5
src/use/useConfig.ts
updateVideo
called by 4
src/inject/VideoRoll.ts
updateAudio
called by 4
src/inject/VideoRoll.ts

Shape

Function 154
Method 45
Interface 15
Enum 4
Class 2

Languages

TypeScript100%

Modules by API surface

src/inject/VideoRoll.ts47 symbols
src/inject/update.ts14 symbols
src/types/type.d.ts10 symbols
src/popup/content/utils/useComponents.tsx8 symbols
src/popup/content/components/Head/index.tsx7 symbols
src/popup/content/App.tsx7 symbols
src/util/storage.ts6 symbols
src/popup/content/components/Stretch/index.tsx6 symbols
src/popup/content/components/Repostion/index.tsx6 symbols
src/options/components/Contact/index.tsx6 symbols
src/popup/content/components/Filter/index.tsx5 symbols
src/options/components/DisabledList/index.tsx5 symbols

For agents

$ claude mcp add VideoRoll \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact