【扩展插件】ZX Video Timer · 视频时长复制
> 本条目属于 扩展插件 类(不是可直接由 Agent 执行的技能)。安装后由你在浏览器中手动使用。
这是什么
一键采集所有窗口内全部已打开标签页的链接与视频时长,输出为两列文本:A 列 = 链接,B 列 = 时长,粘贴到 Excel 自动分列。
适配 B 站、优酷、爱奇艺、腾讯视频、抖音、TikTok、YouTube 等视频站点;对未知站点走通用兜底策略。
核心能力
- 采集全部标签页:一次动作扫描所有窗口的标签页,复制每个视频页的链接 + 时长。
- 双列输出:链接进 A 列、时长进 B 列,粘贴到 Excel 即自动分列。
- 多策略时长识别(各平台页面结构差异大,逐级兜底):
1. HTML5video元素 —— 取页面中最长的有限时长;
2. 平台专用选择器 —— 如 B 站.bpx-player-ctrl-time-duration/.squirtle-time-duration、爱奇艺.iqp-time-duration,以及通用[class*="duration"];
3. 文本抽取 —— 从页面文本中解析HH:MM:SS形式的时间作为兜底。 - 仅当前标签页:副按钮只检测活动标签页并复制结果,适合单条快速核对。
安装(Load unpacked)
- 打开
chrome://extensions(Edge:edge://extensions)。 - 打开右上角开发者模式。
- 点击加载已解压的扩展程序,选择本技能目录下的
extension/文件夹。 - (可选)品牌图标:SkillHub 不允许上传
.png,分发包默认使用浏览器占位图标。
若想要 ZX 品牌图标,在技能根目录执行:
bash
python extension/tools/restore_icons.py --dry-run # 先看会改哪些文件(不改动)
python extension/tools/restore_icons.py # 确认后写入
脚本会把图标写入 extension/icons/ 并自动回填 manifest.json 的 icons 与 action.default_icon,
然后在扩展管理页点一次「重新加载」即可。不执行该步骤也能正常加载使用。
--help 只打印用法、不改动任何文件(v2.0.3 起)。
权限说明
| 权限 | 用途 | 说明 |
|---|---|---|
host_permissions: <all_urls> |
在用户点击按钮后读取目标页面的时长 | 视频站点分布不固定(含各类自建站),无法预先穷举白名单 |
scripting |
点击时按需注入 content.js |
不做常驻注入,不打开页面时扩展不读取任何页面内容 |
activeTab |
识别当前标签页 | 仅对用户主动操作的那个标签页生效 |
clipboardWrite |
复制结果到剪贴板 | 仅写入,不读取剪贴板 |
扩展不上传任何数据、不访问任何外部接口,所有处理均在本地完成。
使用
- 打开需要统计的视频页面(可多个标签页、多个窗口)。
- 点击扩展图标,按「采集全部标签页」。
- 结果预览确认后点「复制」,粘贴到 Excel。
文件结构
extension/
manifest.json MV3 清单(版本以本文件 frontmatter 为准)
content.js 按需注入;多策略时长检测与时间解析
popup.html / popup.js popup 界面:采集全部标签页 / 检测当前标签页、结果预览、复制到剪贴板
background.js MV3 Service Worker
tools/restore_icons.py 可选:还原品牌图标并回填 manifest 图标声明
版本说明
- 2.0.3(2026-10-20):
tools/restore_icons.py改为显式main()+ 参数校验,新增--dry-run;此前任何参数(含--help)都会立即改写manifest.json。补tags。功能与 2.0.2 一致。 - 2.0.2:移除打包后指向不存在文件的
icons声明(此前会导致 Chrome 拒绝加载);改为按需注入(去掉常驻content_scripts与多余tabs权限);「采集全部标签页」改为真正覆盖所有窗口;manifest 版本与发布版本对齐。 - 2.0.1 / 2.0.0:批量采集、多策略时长识别。