本地视频总结探索
下午把数算课给旷了。为了更快地了解这次课上了什么,回想到B站视频总结和要点功能的实现,于是就想要实现 本地视频的总结。今天探索了一些方法,最终有一个方法是比较有效果的。
如何把教学网的视频下载到本地?
由于教学网的视频显然没有现成的字幕可用,并且也没有现成的插件能够提取字幕+喂给GPT,因此只能采用比较笨的下载到本地的办法。
刷树洞发现 https://leohlee.github.io/pkuVideo.html 可以实现把教学网的视频下载到本地。为了防止网页被封,我下载了一份源代码到本地了。
教学网的 m3u8 是经过 AES 加密的,无法用网络上常见的 m3u8 下载器下载。尽管获取解密密钥并不难,但有违自动化的原则。
~/N_m3u8DL-RE_Beta_osx-arm64
是本地的 m3u8 下载器,按网上说法支持 AES 解密,但是下载的文件不知道咋运行。
如何给本地的视频生成字幕?
这里就有两种实现途径:
- 本地转换生成字幕,考虑到毕竟 Mac 的处理器还是有 MPS 神经网络加速的;
- 上传云端,让云端转换生成字幕。
本地生成
本地生成,在本地放置模型文件,使用下列二者其一
- Buzz(仅支持CPU,支持Mac),
brew install --cask buzz
- WhisperDesktop (GPU或CPU皆可,但不支持Mac),https://github.com/Const-me/Whisper/tree/master
驱动模型生成字幕。
缺点:
- 理论上,只安装 Buzz 或者 WhisperDesktop,如果本地没有模型,也可以自动下载模型文件;奈何 https://huggingface.co/ 网络常常无法连接,因此只好在镜像站 https://hf-mirror.com/ggerganov/whisper.cpp/tree/main 下载,然后放到指定位置去(Buzz 在 .cache/whisper)里头。
- 而且由于本地算力不足,实际上转换一个 3 小时的课程视频需要跑 7 小时(甚至睡一觉起来都不一定能行)
上传云端、下载字幕+把字幕喂给 GPT(Gemini API 的使用方法)
剪映、飞书等平台,以及 Memo AI 等新平台,都号称支持视频转文字,但只有飞书目前还是免费。由于需要把字幕喂给 GPT,并且 Github 上有 Feishu 的上传下载 Python 脚本,因此还是选择飞书作为云端转文字平台,同时通过修改脚本,把下载下来的文字文件喂给 GPT,通过合适的 Prompt 生成总结+要点,再写入本地 Markdown 文件。
原程序代码:https://github.com/bingsanyu/feishu_minutes
接入大模型——这里使用 Gemini 作为总结大模型。通过阅读 https://ai.google.dev/tutorials/quickstart?hl=zh-cn#python_1,Python 接入 Gemini API 的方法如下:
首先执行下面的步骤,运行 py 脚本
1 | pip3 install -q -U google-generativeai |
1 | import google.generativeai as genai |
如果报一个有关认证的错误,需要「设置应用默认凭据」通过谷歌认证,方可使用 API。使用下面的代码:
通过运行 gcloud auth application-default login
命令向 ADC 提供用户凭据。此命令会将包含您提供的凭据(通常来自您的 Google 账号)的 JSON 文件置于文件系统上的熟知位置。该位置取决于您的操作系统:
- Linux、macOS:
$HOME/.config/gcloud/application_default_credentials.json
- Windows:
%APPDATA%\gcloud\application_default_credentials.json
1 | credential_path = "/Users/liangzhong/.config/gcloud/application_default_credentials.json" # |
这部分参考: