已开源|视频下载、转稿、截帧、合成:我用 Python 把视频处理工作流给“自动化”了

视频服务

B 站和 YouTube 是我获取知识和灵感的宝库,没有之一。但你是否也曾有过这样的烦恼:

  • 一个长达一小时的深度访谈,只想快速浏览其核心观点?
  • 一个信息量巨大的技术教程,只想截取其中几个关键操作的画面反复揣摩?
  • 看到绝佳的视频素材,想要二次创作成图文,却被繁琐的下载、转录、截图流程劝退?

手动处理这一切不仅效率低下,更会打断我们学习和创作的思路。

picture.image

最初,我只是想加速个人学习,把有价值的视频内容转化成文字稿,方便快速阅读和日后检索。

但当我做到后,惊喜地发现这些文字稿还能轻松地二次创-作成自媒体文章,极大地提升了我的内容生产力。

更进一步,作为一名自动化工作流(n8n)的爱好者,我希望能将这些能力彻底自动化,与我现有的工作流无缝衔接。

为了实现这一整套“学习 -> 再创作 -> 自动化”的流程,我开发了 download-video-subtitle服务和n8n工作流。一站式自动化完成了如下工作:

输入:提交需要采集的 URL(右侧是对应的作品)

picture.image

picture.image

然后,n8n工作流自动运行:

picture.image

我就拿到了如下的结果:

1-全结构化的文本内容(自动存储到飞书内)

picture.image

2-二次创作后的文稿

picture.image

其中,这套流程背后的核心在于一个非常强大的服务:download-video-subtitle

这是一个强大的视频处理工具箱,它能帮你完成以下这些酷炫的操作:

  1. 视频变文章,一键搞定 =============

这是 download-video-subtitle 最核心的功能。你只需要提供一个 B 站或 YouTube 的链接,它就能自动完成下载和文字转录,让你“看”视频像“读”文章一样高效。

picture.image

请求示例

  
curl -X POST "http://localhost:7878/generate\_text\_from\_video" \-H "Content-Type: application/json" \-d '{  "video\_url": "https://www.youtube.com/watch?v=m9iaJNJE2-M"}'
  1. 智能提取关键帧,捕获灵感瞬间 =================

文字稿解决了“点”和“线”的问题,而关键帧则帮你抓住精华的“面”。download-video-subtitle 可以快速提取视频的关键画面,无论是教程里的关键步骤,还是访谈中嘉宾的神态,都能帮你精准保存。

picture.image

请求示例

  
curl -X POST "http://localhost:7878/extract\_keyframes" 
  
\-H "Content-Type: application/json" 
  
\-d '{  "video\_url": "https://www.youtube.com/watch?v=m9iaJNJE2-M",  
  
"method": "interval", 
  
 "interval": 30,  
  
"width": 1280,  
  
"height": 720,  
  
"format": "jpg",  
  
"quality": 85}'
  1. 全能视频合成器,满足你的创作需求 ===================

除了输入,download-video-subtitle 还能帮你完成输出。

它就像一个小型的视频处理站,帮你完成各种合成任务:

  • 音画同步: 将视频、音频和字幕合成为一个完整视频。为视频精准匹配音频或字幕文件。把.mp3文件,.txt 文档和.mp4视频合并在一起;特别适合使用 AI 进行视频的综合创作;

文稿:

  
小兔子在菜园里发现了一个又大又红的萝卜,它馋得口水都要流出来啦!

合成效果:

请求示例

  
{  "composition\_type": "audio\_video\_subtitle",  "videos": [    {"video\_url": "https://example.com/video.mp4"}  ],  "audio\_file": "https://example.com/audio.mp3",  "subtitle\_file": "./output/video\_subtitles.srt", // 支持 .srt, .txt, .ass, .ssa, .vtt  "audio\_settings": {    "volume": 0.8,    "start\_offset": 2.0  },  "subtitle\_settings": {    "font\_size": 24,    "font\_color": "white",    "outline\_color": "black"  }}
  • 片段合并: 将多个视频片段无缝拼接。比如两段 5s 合并成一段 10s 视频。

请求示例:

  
curl -X POST "http://localhost:7878/compose\_video"  

  
 \-H "Content-Type: application/json" \
  
-d '{  "composition\_type": "concat", 
  
 "videos": [    {"video\_url": "/Users/mulele/Documents/4-n8ndata/video/小兔子拔萝卜/temp/小兔子发现大萝卜.mp4"},    {"video\_url": "/Users/mulele/Documents/4-n8ndata/video/小兔子拔萝卜/temp/小兔子独自拔萝卜.mp4"}  ],  
  
"output\_format": "mp4"}'
  • 画中画 & 水印: 轻松制作“画中画”效果,或为你的作品打上专属 Logo。

左上角放了一个“小蝌蚪找妈妈”的视频片段(要留意看)。

请求示例:

  
curl -X POST "http://localhost:7878/compose\_video" \-H "Content-Type: application/json" \-d '{  "composition\_type": "multi\_overlay",  "videos": [    {      "video\_url": "/Users/mulele/Documents/4-n8ndata/video/小兔子拔萝卜/temp/小兔子发现大萝卜.mp4",      "role": "main"    },    {      "video\_url": "/Users/mulele/Projects/3-video\_download/download-video-subtitle-all/test\_videos/2.mp4",      "role": "overlay",      "position": {"x": 50, "y": 50, "width": 320, "height": 240}    }  ]}'

这个工具主要使用 Python 开发,核心能力基于强大的 ffmpeg 框架。

我将它开源,并希望能与我的 n8n 工作流结合,打造更强大的自动化流程。

如果你也对视频处理、个人学习效率、内容创作感兴趣,欢迎访问我的 GitHub 仓库,给我一个 Star ⭐!

GitHub 地址:

https://github.com/ncandyaoe/download-video-subtitle

你的鼓励是我持续迭代的最大动力。

也欢迎在评论区告诉我你的需求,或许 download-video-subtitle 的下一个功能就因你而生!

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论