希沃 EN5 课件转 PPTX 导出工具
希沃 EN5 课件转 PPTX 导出工具

希沃 EN5 课件转 PPTX 导出工具

项目简介

通过逆向希沃网页版 JS 代码,发现其所有 API 走统一网关 /api.json?actionName=XXX,页面内置了完整的 ENBX → PPTX 转换功能。本项目封装了这一能力,支持一键下载 PPTX。

实测结果:36 页课件、约 24 秒完成转换,输出 204 MB PPTX 文件,文字/排版完整保留。

解决什么问题

希沃白板 EN5 课件(.enbx)是专有格式,只能在希沃客户端或在线平台打开。脱离希沃环境后无法查看,给课件分享、归档、打印带来不便。

本工具解决:

  • 一键导出 PPTX:通过 API 直接转换,保留全部文字、图片、排版
  • 无需截图:服务端转换,保真度高,文件体积小
  • 支持代理隧道:内置 Xray 代理工具,可搭配代理使用

技术原理

API 网关

希沃网页版使用统一 API 网关:

POST /api.json?actionName=GET_ENBX_TO_PPTX
Content-Type: application/json
x-auth-refer: ENOW
Body: {"cwId": "课件ID", "version": "1", "source": "en-mac"}

调用后返回转换任务的 traceId,通过轮询 GET_TRANSFORM_STATUS 接口获取进度,转换完成后拿到 CDN 签名下载链接。

完整流程

  1. 浏览器打开希沃分享页面
  2. 调 API GET_ENBX_TO_PPTX 触发转换
  3. 每 2-3 秒轮询 GET_TRANSFORM_STATUS 查进度
  4. 转换完成后下载 PPTX 文件

使用方法

方式一:通过 browser-harness 手动调用

browser-harness -c "
# 1. 获取课件信息
info = js('ENOWSDK.getCoursewareInfo()')
cwId = info['coursewareId']

# 2. 调 API 触发转换
js('fetch(\"/api.json?actionName=GET_ENBX_TO_PPTX&ts=\" + Date.now(), {
  method: \"POST\",
  credentials: \"include\",
  headers: {\"Content-Type\": \"application/json\", \"x-auth-refer\": \"ENOW\"},
  body: JSON.stringify({cwId: \"' + cwId + '\", version: \"1\", source: \"en-mac\"})
})')

# 3. 轮询进度并下载
traceId = cwId + ':1'
for i in range(30):
    res = js('...GET_TRANSFORM_STATUS...')
    if res.get('progress') >= 100:
        dl_url = res.get('file_download_url')
        break
    time.sleep(3)

# 4. 下载 PPTX
import urllib.request
urllib.request.urlretrieve(dl_url, '课件导出.pptx')"

方式二:代理隧道下载器(推荐跨国/受限网络)

项目附带 seewo-proxy-tool/ 子工具,通过 Xray 核心建立独立代理隧道,配合 Web 管理界面操作:

# 交互选择服务器
python seewo-proxy-tool/seewo_download_pptx_proxy.py -s 节点名称

# 或启动 Web UI
python seewo-proxy-tool/webui.py
# 浏览器打开 http://127.0.0.1:5000

Web UI 支持服务器测速(颜色标注延迟)、一键启动/停止、实时日志 SSE 推送。

项目结构

项目根/
├── 技术说明.md              ← API 网关逆向文档
├── README.md                ← 使用说明
├── AGENTS.md                ← AI 项目记忆
│
└── seewo-proxy-tool/        ← 代理隧道下载器
    ├── seewo_download_pptx_proxy.py  ← CLI 主程序
    ├── webui.py              ← Flask Web 管理界面
    ├── templates/index.html
    └── static/app.js + style.css

适用场景

  • 教师备份课件为通用 Office 格式
  • 课件分享给没有希沃环境的用户
  • 打印课件内容为纸质资料
  • 课件归档与版本管理

获取方式:希沃工程

starry0214

订阅评论
提醒
guest

0 评论
最新
最旧 最多投票
内联反馈
查看所有评论