网络视频辅助学习

Polar Sponsor
爱发电 赞助
.NET 9.0

通用网络视频辅助学习技能,支持自动登录、视频播放、弹窗处理、音频录制、语音转写、AI 智能总结

网络视频辅助学习技能 (web-video-auto-learner)

功能概述

网络视频辅助学习技能 (web-video-auto-learner)是一项面向实际任务的技能,主要用于通用网络视频辅助学习技能 — 自动播放、弹窗处理、答题、录音、AI 转录与智能总结;基于 Playwright + Tkinter + AI 的网站辅助学习技能,专为网络视频课程辅助学习场景设计;

核心要点

  • 支持自动登录、视频播放、弹窗答题、音频录制、语音转写、AI 智能总结的完整学习闭环;
  • 自动登录 — 支。
  • 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。

使用与执行

从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;

结果检查与注意事项

若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

网络视频辅助学习技能 (web-video-auto-learner)

通用网络视频辅助学习技能 — 自动播放、弹窗处理、答题、录音、AI 转录与智能总结

功能说明

基于 Playwright + Tkinter + AI 的网站辅助学习技能,专为网络视频课程辅助学习场景设计。支持自动登录、视频播放、弹窗答题、音频录制、语音转写、AI 智能总结的完整学习闭环。

核心功能

  1. 自动登录 — 支持账号密码登录和 Storage State 免登录(加密存储,仅本机可解密)
  2. 视频自动播放 — 按播放列表顺序自动播放视频,支持 xgplayer 等主流播放器懒加载
  3. 弹窗自动处理 — 智能检测 MyLayer 弹窗、答题弹窗,自动关闭或 AI 辅助答题
  4. 进度守护 — 每60秒自动保存播放进度,浏览器崩溃后自动恢复
  5. 音频录制 — 基于 Web Audio API 的页面内录,自动录制课程音频并保存
  6. 语音转写 — 支持讯飞 LFASR(云端高精度)和 Whisper(本地离线)双引擎
  7. AI 智能总结 — 多提供商(SiliconFlow / DeepSeek / OpenAI / Ollama)AI 模型生成课程纪要
  8. 推理增强 — 支持 DeepSeek-R1 / deepseek-v4-pro 等推理模型的思维链输出
  9. 三种模式 — 完整控制台(all)、简约模式(simple)、播放列表模式(list)

触发词

触发词 说明
网络视频学习 / 辅助学习 视频播放核心功能
自动播放 / 播放列表 视频播放相关
弹窗答题 / 自动答题 弹窗处理与答题
视频进度 / 进度守护 播放进度保存/恢复
音频录制 / 录音 音频录制功能
语音转写 / 转录 音频转文字
AI 总结 / 课程纪要 AI 智能总结
在线学习 / 继续教育 泛化触发

使用方法

基础用法

1. 安装依赖

pip install -r requirements.txt
playwright install chromium

版本安全说明:requirements.txt 使用波浪号约束(~=X.Y.Z),允许补丁版本更新但不接受不兼容的次版本升级。如需固定精确版本可改为 ==X.Y.Z。

使用本地 Chrome/Edge 可跳过 Playwright 安装,在配置中指定 browser_type。

2. 配置

# 复制配置模板并修改
cp config/config.yaml.example config/config.yaml
cp config/AImodel.yaml.example config/AImodel.yaml

编辑 config/config.yaml:

  • 设置 website.login_url 为目标网站登录页
  • 在 navigation.play_list 中添加视频 URL

编辑 config/AImodel.yaml:

  • 填写 AI 提供商的 API 密钥(至少启用一个)

3. 运行

# 简约模式(推荐新手)
python index.py simple

# 完整控制台模式
python index.py all

# 播放列表模式
python index.py list

# 无头模式(编程调用)
python index.py headless

高级用法

编程式调用(无 GUI)

from index import WebVideoAutoLearner

learner = WebVideoAutoLearner(mode="headless")

# 配置
learner.configure(
    browser_type="chrome",
    login_url="https://www.example.com/",
    navigation_steps=[
        {
            "name": "播放视频",
            "action": "play_list",
            "loop_infinite": True,
            "play_list": [
                {"url": "https://www.example.com/videoDisplay?coursewareId=xxx", "click_play": True}
            ]
        }
    ]
)

# 执行
result = learner.run()
print(f"状态: {result['status']}")

快捷启动

from index import quick_start

learner = quick_start(mode="simple", login_url="https://www.example.com/")

完整学习闭环(播放 + 录音 + 转写 + 总结)

from index import WebVideoAutoLearner

learner = WebVideoAutoLearner(mode="headless")

# 启用功能
learner.set_audio_recording_for_playlist(enable=True)
learner.enable_ai_summary(provider="siliconflow")

# 添加课程
learner.add_play_urls(["https://www.example.com/video?id=xxx"])

# 执行
result = learner.run()

播放列表管理

from index import WebVideoAutoLearner

learner = WebVideoAutoLearner(mode="headless")

# 批量添加
learner.add_play_urls([
    "https://www.example.com/videoDisplay?coursewareId=xxx",
    ("https://www.example.com/videoDisplay?coursewareId=aaa", "课程A"),
])

# 查看当前列表
urls = learner.get_play_urls()

# 替换全部 / 清空 / 重置进度
learner.set_play_urls(["https://..."])
learner.clear_play_urls()
learner.reset_play_progress()

AI 模型调用

from index import WebVideoAutoLearner

learner = WebVideoAutoLearner()

# 查看 AI 配置状态
status = learner.get_ai_config_status()

# 直接调用 AI
result = learner.call_ai("请总结以下内容...")

# 使用推理增强模型(思维链)
result = learner.call_ai("请分析这个问题...", use_reasoning=True)

音频录制与语音转写

from index import WebVideoAutoLearner

learner = WebVideoAutoLearner()

# 启用音频录制
learner.set_audio_recording_for_playlist(enable=True)

# 转录已有音频文件(本地 Whisper)
result = learner.transcribe_video('recordings/audio.webm', use_api=False)

# 转录已有音频文件(云端讯飞 LFASR,更高精度)
result = learner.transcribe_video('recordings/audio.webm', use_api=True)

AI 智能总结

from index import WebVideoAutoLearner

learner = WebVideoAutoLearner()
learner.enable_ai_summary(provider="deepseek")

# 一站式处理:转录 → 总结
summary = learner.summarize_video('recordings/audio.webm', video_title="课程标题")

# 一站式处理:录制 → 转录 → 总结
result = learner.process_and_summarize('video.mp4', video_title="课程标题")

登录状态管理

from index import WebVideoAutoLearner

learner = WebVideoAutoLearner()

# 保存当前浏览器登录状态(加密存储,仅本机可解密)
result = learner.save_login_state()

# 检查是否有已保存的登录状态
info = learner.check_login_state()

# 加载已保存的登录状态到浏览器
result = learner.load_login_state_into_browser()

# 删除登录状态
result = learner.delete_login_state()

API 文档

查看 docs/API.md 了解完整的公共 API 参考,包括 WebVideoAutoLearner 主控类、AIModelConfig/AIModelCaller、Encryption、PopupHandler、MediaProgressSaver、WebAudioRecorder 等所有模块的接口说明。

配置说明

config/config.yaml

配置项 类型 默认值 说明
settings.browser_type string chrome 浏览器类型 (chrome/msedge/360ee/360se)
settings.window_max bool true 是否最大化窗口
settings.global_timeout int 60000 全局超时(毫秒)
settings.popup_scan_interval float 0.5 弹窗扫描间隔(秒)
settings.auto_answer bool false 自动答题开关
website.login_url string - 登录页面URL
website.storage_state bool true 是否启用免登录
navigation list [] 导航步骤列表
popup_rules list [] 弹窗处理规则

config/AImodel.yaml

配置项 说明
global.default_provider 默认 AI 提供商 (siliconflow/openai/ollama/deepseek)
models..api_key API 密钥
models..chat_model 聊天模型
models..reasoning_model 推理增强模型(思维链)
models.xunfei_lfasr 讯飞录音转写凭证

AI 提供商

提供商 聊天模型 推理模型 说明
SiliconFlow Qwen2.5-72B-Instruct DeepSeek-R1 推荐国内使用,需 API Key
DeepSeek deepseek-chat deepseek-v4-pro 国产模型,支持思维链
OpenAI gpt-4o-mini - 国际用户,需 API Key
Ollama qwen2.5:7b - 本地运行,无需 API Key

语音转写引擎

引擎 类型 精度 说明
讯飞 LFASR 云端 高 支持中英+方言,角色分离,需 API 凭证
Whisper 本地 中 离线运行,需 PyTorch + transformers

注意事项

  1. 首次使用需先安装 Playwright:playwright install chromium
  2. 配置初始化:复制 .example 文件为实际配置并填写
  3. Storage State 加密基于设备特征,仅限本机解密
  4. 音频录制时视频必须正在播放
  5. AI 功能需配置有效的 API 密钥
  6. Windows 平台可自动检测浏览器路径;其他平台需在配置中指定 browser_path
  7. 讯飞转写需在 config/AImodel.yaml 的 xunfei_lfasr 中配置 API 凭证
  8. 播放完成后录音文件路径会自动回写到配置文件(audio_file / audio_name 字段)

浏览器扩展

assets/media-progress-saver/ 是 Chrome 扩展:

  • 每10秒自动保存媒体播放进度
  • 页面加载时自动恢复进度
  • 支持崩溃恢复(localStorage + chrome.storage 双重写入)

安装扩展

  1. 打开 Chrome → chrome://extensions/
  2. 开启「开发者模式」
  3. 点击「加载已解压的扩展程序」
  4. 选择 assets/media-progress-saver/ 目录

技术架构

四层架构:
┌──────────────────────────────────────────────┐
│            GUI 层 (Tkinter)                   │  ← control_panel.py
├──────────────────────────────────────────────┤
│            核心逻辑层                         │
│  ┌──────────┬──────────┬──────────┐          │
│  │ 任务执行  │ 弹窗处理  │ 进度守护 │          │  ← task_runner / popup_handler / media_progress_saver
│  └──────────┴──────────┴──────────┘          │
│  ┌──────────┬──────────┬──────────┐          │
│  │ 音频录制  │ 语音转写  │ AI 总结  │          │  ← web_audio_recorder / audio_transcriber + xunfei_transcriber / ai_summarizer
│  └──────────┴──────────┴──────────┘          │
│  ┌──────────┬─────────────────────┐          │
│  │ 配置加载  │   加密存储 + AI配置 │          │  ← config_loader / encryption / ai_model
│  └──────────┴─────────────────────┘          │
├──────────────────────────────────────────────┤
│        Playwright 封装层                      │  ← browser.py
└──────────────────────────────────────────────┘

项目结构

skill/
├── SKILL.md                       # 技能文档(必需)
├── manifest.yaml                   # OpenClaw 技能清单
├── README.md                      # 项目说明
├── CLAUDE.md                      # AI 编码助手指南
├── CHANGELOG.md                   # 变更日志
├── LICENSE                        # 开源协议
├── index.py                       # 技能入口(API 封装)
├── requirements.txt               # Python 依赖
├── start_playlist.py              # 快捷启动脚本(simple模式)
├── run_playlist.py                # 快捷启动脚本(headless模式)
├── src/                           # 核心模块
│   ├── __init__.py
│   ├── browser.py                 # 浏览器管理(Playwright 封装)
│   ├── config_loader.py           # 配置文件加载器
│   ├── control_panel.py           # GUI 控制面板(Tkinter)
│   ├── encryption.py              # 登录信息加密/解密
│   ├── logger.py                  # 日志工具
│   ├── media_progress_saver.py    # 媒体进度守护
│   ├── popup_handler.py           # 弹窗检测与处理
│   ├── task_runner.py             # 任务执行器(含录音控制)
│   ├── ai_model.py                # AI 模型配置和调用(多提供商 + 推理增强)
│   ├── ai_summarizer.py           # AI 总结生成器
│   ├── audio_transcriber.py       # 音频转文字(Whisper 本地)
│   ├── xunfei_transcriber.py     # 讯飞 LFASR 转写(云端)
│   ├── video_processor.py         # 视频处理集成(录制→转写→总结)
│   ├── video_recorder.py          # 视频录制(ffmpeg)
│   ├── web_audio_recorder.py      # 网页音频录制(Web Audio API)
│   └── audio_inject.js            # 音频录制注入脚本
├── config/                        # 配置文件
│   ├── config.yaml.example        # 主配置示例
│   └── AImodel.yaml.example      # AI 模型配置示例
├── assets/                        # 资源文件
│   ├── media-progress-saver/      # Chrome 扩展(媒体进度守护)
│   ├── icon.png                  # 技能图标
│   └── screenshot.png            # 截图展示
├── examples/                      # 使用示例
│   ├── ai_model_example.py
│   ├── audio_recording_example.py
│   └── video_processing_example.py
└── tests/                         # 测试文件
    ├── __init__.py
    ├── test_browser.py
    ├── test_config_loader.py
    ├── test_task_runner.py
    ├── test_encryption.py
    ├── test_ai_model.py
    ├── test_popup_handler.py
    ├── test_media_progress_saver.py
    ├── test_web_audio_recorder.py
    └── test_integration.py

依赖

必需

  • Python >= 3.9
  • playwright >= 1.40.0
  • pyyaml >= 6.0
  • cryptography >= 41.0
  • openai >= 1.0.0

可选(按功能)

  • 音频录制: 无额外依赖(使用 Web Audio API)
  • 本地转写 (Whisper): torch, transformers, ffmpeg
  • 云端转写 (讯飞): requests
  • 视频录制: ffmpeg(需添加到 PATH)

许可证

MIT License

相关专题

更多
Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

0

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

0

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

0

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

0

10

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

2026.10.22

0

25

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

2026.10.22

0

15

Golangci-lint安装与入门教程
Golangci-lint安装与入门教程

本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。

2026.10.22

0

15

PHP2Shell高危漏洞修复教程
PHP2Shell高危漏洞修复教程

PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。

2026.10.22

0

12

剧云人物设定与关系管理教程
剧云人物设定与关系管理教程

本专题介绍剧云人物设定与关系管理,讲解角色小传、性格职业、人物目标、背景资料和关系网络的创建及维护方法。

2026.10.22

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.9万人学习