Skip to content

视频转图文 AI 跨平台客户端(win mac linux) electron vite vue3 sqlite3 naive-ui

Notifications You must be signed in to change notification settings

aehyok/video2blog

Repository files navigation

前言

可获取第一手的信息资源的地方:微信群

  • 微信公众号:那个曾经的少年回来了
  • 后台回复:video2blog 即可进群获取了解最新信息,也方便有想法的可以随时沟通

本项目的目标是什么

  • 一个是将视频转换为图文笔记(另一个目标还没来的及确定)

视频转图文的思路流程

1、输入视频url之后
2、先通过yt-dlp解析视频url获取视频信息
3、通过yt-dlp下载视频
4、如果存在字幕,则直接进行下载
5、可能是非中文字幕,则需要进行翻译字幕
6、如果不存在字幕,则通过whisper来生成字幕文件,并翻译为中文
7、然后通过gemini将字幕转换为文章。并将视频中的图片进行提取,手动插入到文章中

如何运行

  • node和npm的版本在这附近应该都可以跑起来
node -v   //20.11.0
npm -v //10.2.4
  • python和pip运行版本
python3 -v //3.11.2 
pip3 -v  //24.0
  • 安装项目依赖
npm i 
  • 本地window下运行
npm run start-win
  • 本地mac下运行
npm run start-mac

主要在于win下命令行中中文乱码,mac下不会出现这个问题,于是使用 chcp 65001 命令来解决这个问题

如何编译

  • 通过git仓库打tag标签来触发编译 github action workflow

  • 其中python脚本

在window开发环境下打包,会在/command/win目录下生成exe文件

pyinstaller --onefile RemoveDuplicateImages.py -y --distpath  ../command/win -n  executename.exe(executename)

如何安装pyinstaller呢

pip install pyinstaller
  • 在python/xxxxx目录下 可进行安装依赖
pip3 install -r requirements.txt
  • 如何将依赖安装到 requirements.txt中
pip3 install xxx

pip3 freeze > requirements.txt

如何单独执行去重命令 window下 python main.py H:\github\electron-vite-tools\command\2024-05-10-16-29-38\000000133 30

prompt

// 第一个版本
现在你作为一个科技博主,请先精读上面的字幕,然后根据字幕内容再进行分段,分的段落不要太多,尽量保持在4到8段左右,分段后要对分段内容进行整理,注意一定不需要总结也不要进行删减内容,只是进行整理和微调,并标记字幕时间的区间

//第二个版本
现在你作为一个科技博主,请先精读上面的字幕,然后直接对上面的字幕进行整理成一篇文章进行输出,记住一定一定不要删减任何内容,也不要进行总结。对输出的文章增加目录功能,而且目录标题一定一定要精简,并且在目录上添加字幕时间区间,目录最多4到8个,不能再多。并且再次提醒你,目录下的内容不能进行删减和总结哟

//第三个版本
现在你作为一个科技博主,请先精读上面的字幕,然后直接对上面的字幕进行整理成一篇文章进行输出,记住一定一定不要删减任何内容,也不要进行总结。对输出的文章增加目录功能,而且目录标题一定一定要精简,并且在目录上添加字幕时间区间,目录最多4到8个,一定一定不能再多了。并且再次提醒你,目录下的所有内容不能进行删减和总结哟,后半段的内容也不能进行偷工减料。
将上述输出的内容最终转换为Quill 富文本编辑器的Delta的JSON格式。

//第四个版本
现在你作为一个科技博主,请先精读上面的字幕,然后直接对上面的字幕进行整理成一篇文章进行输出,记住一定一定不要删减任何内容,也不要进行总结。对输出的文章增加目录功能,而且目录标题一定一定要精简,并且在目录上添加字幕时间区间,目录最多4到8个,一定一定不能再多了。并且再次提醒你,目录下的所有内容不能进行删减和总结哟,后半段的内容也不能进行偷工减料。将上述输出的内容最终转换为markdown格式,目录上添加##,目录下的内容不做任何处理就行了
  • 暂定的终极版本
  角色: 你现在作为一个资深的科技博主
  任务:
  1、精读字幕: 请仔细阅读提供的字幕内容。
  2、生成博文: 将字幕内容整理成一篇博文,务必保留所有信息,不做任何删减或总结。
  3、创建目录:
    目录标题需精简,并包含对应内容的时间区间,时间区间要精确。
    目录数量控制在 4-8 个。
    目录格式使用 markdown,即在标题前添加 ##。
    所有生成的目录后面都要添加时间区间,前言中的目录列表可以不添加时间区间。
  4、正文格式:
    保留字幕内容的完整性,不做任何删减或总结。要整理成博文内容啊。
    无需对正文内容进行 markdown 格式处理。
  目标:
  生成一篇包含完整字幕内容的博文,并配有清晰、精简的目录,方便读者阅读和导航。开头是前言加上目录,然后后面以目录正文的形式展示剩余内容。
  注意:
  确保忠实于原始字幕内容,避免信息丢失。
  目录应简洁明了,方便读者快速定位所需信息。
  优化说明:
  在原提示词的基础上,强调了保留所有信息的重要性,避免博文内容被删减。
  明确了目录格式的要求,使用 markdown 形式,并限制了目录数量,确保简洁易读。
  细化了任务步骤,使指令更清晰易懂。
  最终我直接复制markdown内容使用。
  ---------------------------------
  按照这个格式给我输出一个模板我看看

技术栈参考学习

  reason=prebuild-install failed with error (run with env DEBUG=electron-builder to get more information)
                                            error=prebuild-install info begin Prebuild-install version 7.1.2
      prebuild-install warn This package does not support N-API version 36

解决的办法是因为sqlite3的版本问题 npm install -E sqlite3@5.1.6

  • whisper 模型
//https://www.bilibili.com/read/cv23285680/
//https://blog.csdn.net/a71468293a/article/details/135995878

// 下载模型
model_size_or_path="指定模型位置"
如果不指定下载模型的位置,则下载到默认的路径 C:\Users\Administrator\.cache\whisper

  • mac下编译报错(sh: electron-builder: command not found)
  npm i electron-builder

参考的一些项目