video2blog

video2blog

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

Stars: 58

Visit
 screenshot

video2blog is an open-source project aimed at converting videos into textual notes. The tool follows a process of extracting video information using yt-dlp, downloading the video, downloading subtitles if available, translating subtitles if not in Chinese, generating Chinese subtitles using whisper if no subtitles exist, converting subtitles to articles using gemini, and manually inserting images from the video into the article. The tool provides a solution for creating blog content from video resources, enhancing accessibility and content creation efficiency.

README:

前言

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

  • 微信公众号:那个曾经的少年回来了
  • 后台回复: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 [email protected]

  • 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

参考的一些项目

For Tasks:

Click tags to check more tools for each tasks

For Jobs:

Alternative AI tools for video2blog

Similar Open Source Tools

For similar tasks

For similar jobs