一款开源的无水印视频提取工具-VideoExtractor"

admin 2026-10-24 11:06:40 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

一款开源的无水印视频提取工具-VideoExtractor

原创

斯诺克视野
斯诺克视野

卡布奇诺的派对

2026年10月20日 02:09
江苏

去阅读

\"输入你分享的链接,即可一句话提取输入 B站 / 抖音 / TikTok / 小红书的视频\"

短视频提取工具:VideoExtractor

可一句话提取输入 B站 / 抖音 / TikTok / 小红书的视频

项目地址:https://github.com/kabuqin/VideoExtractor/

前端演示

API文档

2、使用codex

prompt:提取(你分享的链接)

最近,我把自己开发的一款短视频提取工具开源了,名字叫 VideoExtractor。

做这个工具的初衷其实很简单:我在日常整理素材、分析短视频内容、保存公开视频资源时,经常会遇到一个问题,想要提取视频内容并不总是那么方便。不同平台的链接格式不同,页面结构也会变化,手动处理既耗时,也容易出错。于是,我决定自己写一个更轻量、更直接的工具,把常用的视频提取流程自动化。

这次发布的 V1.0,不只是「下载视频」这么简单。我把解析、下载、转录和文案生成串成了一条完整的本地管线,希望它能从一个提取工具,变成一个能真正帮上忙的内容整理工具。

V1.0 更新了什么

最开始的想法只是把视频保存下来。但真正用起来之后我发现,下载只是第一步:视频里的内容要整理成文字,文字还要改成适合不同平台发布的文案。所以这次 V1.0,我把整条链路都做进了同一个工具里。

现在的 VideoExtractor 可以完成:

  • 粘贴链接后自动解析标题、作者、时长与封面;
  • 在后台完成视频下载与音视频合并;
  • 用 faster-whisper 在本地把语音转成文字;
  • 按平台和风格生成标题、摘要、正文与标签;
  • 在任务详情页查看进度、编辑文本、导出视频。

整个过程都在本地完成,不需要登录,也不会上传你的视频和文字。

VideoExtractor 能做什么

VideoExtractor 主要用于从短视频链接中提取可用的视频资源信息,帮助用户更方便地完成视频保存、素材归档和内容分析等工作。

解析与下载

  • 多平台识别:自动识别 B站、抖音、TikTok、小红书、YouTube 链接,支持直接粘贴平台分享文本;
  • 即时解析:粘贴后自动探测标题、作者、时长、封面与简介,不需要先下载视频;
  • 无水印下载:基于 yt-dlp 下载公开视频,抖音分享链接可以获取无水印版本;
  • 画质合并:内置 FFmpeg 自动合并音视频流,优先选择更高画质。

转录与文案

  • 本地语音转文字:使用 faster-whisper 在 CPU 上完成转录,首次运行会自动下载模型;
  • 字幕回退:转录不可用时自动读取视频自带字幕,避免任务中断;
  • 平台化文案:按小红书、抖音、B站、TikTok、YouTube 的格式生成标题、摘要、正文与标签;
  • 四种文案风格:知识分享、种草带货、测评口吻、剧情叙述;
  • 可编辑:转录文本和生成的文案都支持手动修改、重新生成。

本地任务管理

  • 全流程本地:视频、转录、文案与任务数据都保存在本机,不需要上传到第三方服务;
  • 任务自动执行:创建任务后,后台自动运行下载 → 转录 → 文案管线,可以实时查看进度;
  • 断点重跑:视频已经下载时自动跳过下载,直接重新转录或生成文案;
  • 一键导出:在任务详情页把已下载的视频保存到本地。

我希望它不是一个“黑盒工具”,而是一个开发者、创作者、运营人员都能看懂、能改、能用的小工具。

支持的平台

目前适配了下面几个常用平台,直接粘贴分享链接或分享文本即可:

  • B站:b23.tv 短链接、bilibili.com/video/BVxxx;
  • 抖音:v.douyin.com 分享链接、douyin.com/video/xxx;
  • TikTok:tiktok.com/@user/video/xxx;
  • 小红书:xiaohongshu.com/explore/xxx;
  • YouTube:youtube.com/watch?v=xxx、youtu.be/xxx,以及 Shorts。

遇到需要登录或风控较严的内容时,可以在后端配置 Cookie,提高解析成功率。

它是怎么工作的

整个处理过程可以理解成一条流水线:

创建任务 → 平台识别 5% → 解析元数据 10% → 下载视频 30% → 语音转文字 55% → 保存转录 65% → 生成文案 75% → 任务完成 100%

首页解析和真正下载是分开的:粘贴链接时只探测元数据,确认无误后再创建任务,避免为一个不想要的视频白白等待下载。

  • 视频已经下载时,自动跳过下载步骤;
  • 转录失败时,自动回退到视频自带字幕;
  • 转录或文案生成失败不会让整个任务崩溃,可以随时重新运行;
  • 未完成的任务可以重新启动,并复用已经下载好的视频文件。

技术架构

技术上我没有用很重的东西,都是围绕「本地能跑、结构清楚」来选的:

  • 前端:Next.js 14 + React + TypeScript,负责首页解析、任务进度、转录与文案编辑;
  • API:FastAPI + Uvicorn,提供解析、任务、视频、转录与文案接口;
  • 管线:FastAPI BackgroundTasks,创建任务后自动执行下载、转录与文案生成;
  • 下载:yt-dlp + imageio-ffmpeg,负责平台适配、元数据探测和音视频合并;
  • 转录:faster-whisper,本地 CPU 语音转文字,失败时回退字幕;
  • 文案:模板规则引擎,按平台与风格生成标题、摘要、正文和标签;
  • 存储:SQLite + 本地目录,保存任务数据、视频、字幕与导出文件。

请求链路也很简单:浏览器访问 Next.js 前端,前端通过 REST 调用 FastAPI,解析、下载、转录与文案都在本机完成,结果写入 SQLite 和 storage 目录。

快速开始

环境要求不复杂:Python 3.10+、Node.js 18.17+。FFmpeg 不需要单独安装,项目使用 imageio-ffmpeg 自带的二进制。

1. 启动后端

git clone https://github.com/kabuqin/VideoExtractor.git
cd VideoExtractor/backend

python -m venv .venv
.venv\Scripts\activate  # Windows

source .venv/bin/activate  # macOS / Linux

pip install -e .
playwright install chromium  # 抖音解析所需的浏览器,其他平台可跳过
uvicorn app.main:app --reload --port 8001

启动后可以访问 http://localhost:8001/health 检查服务状态,接口文档在 http://localhost:8001/docs。

2. 启动前端

cd frontend
npm install
npm run dev

前端地址是 http://localhost:3000。如果要修改后端地址,在 frontend/.env.local 中设置 NEXT\_PUBLIC\_API\_BASE\_URL。

3. 使用流程

  1. 在首页粘贴视频链接或平台分享文本,页面自动解析并展示视频信息;
  2. 选择文案平台与风格,点击「开始下载并提取文案」,任务在后台自动执行;
  3. 在任务详情页查看下载进度、视频信息、转录文本与平台文案;
  4. 按需编辑文本或文案,点击「下载视频到本地」保存视频文件。

配置说明

后端配置读取 backend/.env,可以从 backend/.env.example 复制一份。最常用的几个配置是:

  • DATABASE\_URL:数据库连接,默认 sqlite:///./data/app.db;
  • STORAGE\_ROOT:视频、音频与导出文件的存储目录,默认 ../storage;
  • DOWNLOAD\_TIMEOUT\_SECONDS:单个视频的下载超时,默认 600 秒;
  • WHISPER\_MODEL:转录模型,默认 small,也可以选 tiny、base、medium 或 large-v3;
  • WHISPER\_DEVICE / WHISPER\_COMPUTE\_TYPE:推理设备与计算精度,CPU 推荐 int8。

部分平台会限制未登录访问,可以通过 BROWSER\_COOKIES 从本机浏览器读取 Cookie,或者用 YOUTUBE\_COOKIES\_FILE、COOKIES\_FILE 指定 cookies.txt 文件。

另外说明一下:V1.0 的文案由本地模板规则生成,不需要任何外部 API 或 API Key,也不会调用外部大模型。

API 一览

所有接口都集中在 /api 下,常用的有:

  • POST /api/parse:解析视频链接,返回平台、标题、作者、时长与封面;
  • POST /api/tasks:创建任务,auto\_start 默认为 true;
  • GET /api/tasks/{task\_id}:查看任务状态与进度;
  • POST /api/tasks/{task\_id}/start:重新运行未完成任务;
  • GET /api/videos/{task\_id}/download:下载视频文件;
  • GET / PUT /api/transcripts/{task\_id}:获取或编辑转录文本;
  • GET / PUT /api/copies/{task\_id}:获取或编辑平台文案;
  • POST /api/copies/{task\_id}/rewrite:按平台与风格重新生成文案。

完整的请求和响应结构可以在运行后的 http://localhost:8001/docs 里直接调试。

限制说明

  • 不支持私密、付费、地区限制或需要额外验证的视频内容;
  • 抖音、YouTube 等平台可能存在风控,必要时需要配置 Cookie;
  • 首次转录会自动下载 Whisper 模型,之后使用本地缓存;
  • 语音转文字默认使用 CPU,较长视频的处理可能需要几分钟;
  • 当前使用 FastAPI BackgroundTasks 在单进程内执行,适合本地单用户使用;
  • 下载与使用视频内容时,请遵守目标平台的服务条款与版权规定。

为什么做 VideoExtractor

短视频已经成为非常重要的内容载体。无论是做内容创作、运营分析,还是学习优秀作品的剪辑节奏和表达方式,很多时候我们都需要快速获取视频资源,方便后续整理和研究。

但现有工具往往有几个问题:

  • 操作流程复杂,使用门槛偏高;
  • 功能臃肿,只想提取视频,却被塞进很多不需要的功能;
  • 可控性不强,出了问题很难定位原因;
  • 不够透明,不知道背后到底做了什么。

所以我做 VideoExtractor 的目标很明确:简单、可用、开源、可维护。

后来我又发现,提取视频只是第一步。很多人真正需要的是视频里的文字,以及能直接拿去发布的文案。所以 V1.0 把转录和文案也放进了同一条管线里,尽量把「找到视频 → 拿到内容 → 变成可用的文字」这件事一次做完。

为什么选择开源

开源这件事,对我来说不只是把代码放出来。

一方面,我希望 VideoExtractor 能帮助到和我有类似需求的人。如果你也经常需要处理短视频链接、整理素材、分析内容,那么它也许可以节省你不少时间。

另一方面,我也希望通过开源让这个工具变得更好。短视频平台的页面结构、接口形式、链接规则都可能变化,靠一个人维护总是有限的。开源之后,大家可以一起提交问题、优化代码、补充适配逻辑,让它更稳定、更实用。

适合哪些人使用

VideoExtractor 比较适合以下几类用户:

  • 短视频内容创作者;
  • 新媒体运营人员;
  • 视频素材整理人员;
  • 想学习短视频结构和内容表达的人;
  • 需要把视频内容转成文字、再改成平台文案的人;
  • 对视频解析、爬虫、自动化工具感兴趣的开发者。

如果你只是想快速提取视频,它可以作为一个现成工具使用。

如果你是开发者,也可以把它当作一个参考项目,研究链接解析、请求处理、数据提取、任务管线和工程封装的实现方式。

后续计划

目前 VideoExtractor 还处在持续完善阶段,后续我计划继续优化这些方向:

  • 支持更多短视频平台;
  • 提高解析稳定性;
  • 提升转录准确率和长视频处理体验;
  • 完善错误提示和日志输出;
  • 优化使用文档;
  • 增加更友好的交互方式;
  • 补充更多测试用例。

我也欢迎大家提出建议,或者直接参与贡献。

写在最后

VideoExtractor 是我从实际需求出发开发出来的一个小工具。它不复杂,也不花哨,但我希望它足够实用、足够清晰,能够真正解决一些日常工作中的小麻烦。

现在我把它开源出来,希望它能帮到更多人。

如果你对这个项目感兴趣,欢迎去看看源码、点个 Star、提 Issue,或者一起让它变得更好。

项目地址:https://github.com/kabuqin/VideoExtractor

项目名称:VideoExtractor,一个开源的短视频提取工具。

最后照例说明:本项目仅供个人学习、研究与本地技术验证使用。请只下载你有权访问与保存的公开视频内容,并遵守所在国家或地区的法律法规以及目标平台的服务条款。下载、安装或使用本项目,即表示你已阅读、理解并同意上述说明。

一款开源的无水印视频提取工具-VideoExtractor" 网络安全文章

一款开源的无水印视频提取工具-VideoExtractor"

本文介绍开源短视频提取工具VideoExtractor,支持B站、抖音、TikTok、小红书及YouTube等多平台视频解析与无水印下载,集成本地语音转录和文案生成功能,形成完整本地处理管线。工具基于yt-dlp、faster-whisper等技术构建,无需外部API,适合创作者、运营人员及开发者使用。文章提供详细安装配置指南,并强调遵守平台条款与版权规定。
【研究报告】俄乌冲突中无人装备十大协同作战战法研究" 网络安全文章

【研究报告】俄乌冲突中无人装备十大协同作战战法研究"

该报告系统研究俄乌冲突中无人装备十大协同作战战法,覆盖地面攻坚、阵地支撑、纵深遮断、海上两栖及反无人对抗五类作战空间,从需求、思想、编成、程序、反制与效能六维度剖析。核心结论为无人协同战法效能取决于跨域编组水平、链路韧性与快速迭代能力,在替代高危环节成效显著,但占领守持与规模化保障仍存局限,并提出对我军建设启示。
评论:0   参与:  0