shared-video-transcriber
Downloads and processes Bilibili videos: extracts audio and video, merges streams with ffmpeg, transcribes to timestamped text and SRT subtitles, generates summaries and screenshots, and supports optional video retention.
Downloads and processes YouTube videos via yt-dlp, providing timestamped transcripts, subtitles, summaries, and optional video/screenshot retention for quick review and AI handoff.
视频收件箱
粘贴抖音 / Bilibili / YouTube 等分享链接(基于 yt-dlp),下载 MP4 或 MP3,并转成文字稿、字幕、摘要和截图——可以快速阅读、回看和交给 AI 的资料。也支持本地视频和音频文件。
这是一个本地优先的个人应用。新版使用独立网页 + FastAPI,替换了原先的 Gradio 界面,保留旧 MCP 工具。
第一次使用: 下载源码 ZIP,完整解压后启动。不需要 Git,不需要 AI key。
你的电脑 | 启动方式 |
Windows 10 / 11,64 位 | 先安装 Python 3.12 并勾选 Add python.exe to PATH,然后双击 run_web.bat |
macOS / Linux | 安装 64 位 Python 3.10–3.14,在解压目录运行 bash run_web.sh |
这仍是源码版,不是免 Python 的 EXE。首次需要联网安装依赖、浏览器内核和选用的语音模型。 只处理本地视频时,可用 python bootstrap.py --skip-browser 跳过网页内核下载。 完整 Bilibili 视频合并另需 ffmpeg;未安装时,本地视频和仅转录仍可使用。
遇到问题先双击 check_environment.bat,或在网页“设置”里点击“检查运行环境”。 新手说明、常见报错和安全升级方法见 使用指南。
怎么用
Windows 双击 run_web.bat。首次会创建虚拟环境、安装依赖和 Chromium,随后自动打开浏览器。 默认 http://127.0.0.1:7860;端口占用时自动尝试 7861–7879。保持启动程序运行。
重复双击会打开同一结果目录已在运行的页面;文件锁阻止两个实例同时改写同一份任务库。
粘贴链接或整段分享文字,点击“开始处理”:
方式 | 得到什么 | 取舍 |
只读文字 | 速览原话、时间戳文字稿、SRT 字幕 | 优先下载音频,适合日常浏览 |
文字 + 视频 | 上述内容、原视频、最多 24 张带时间位置的抽样截图 | 下载更多数据;视频可回看;点击“保存视频”再选择正式保存位置 |
只下载视频 | 当前可访问画质的原视频 | 不运行语音识别 |
默认“细致”使用 small,“快速”使用 base,“精细”使用 medium。较大的模型通常更准确,但不保证每段都更好;CPU 上会更慢。 更多选项可以指定语言、填写专业名词提示、强制重新处理。
视频会保存到左侧历史。刷新网页不会停止后台任务。进度显示的是当前阶段: 下载按实际字节更新;总大小未知时显示活动条和已下载大小,不编造百分比。 B 站视频依次显示下载画面、下载声音、合并。转录按已识别的音频时间更新,预计剩余时间只是估计。 首次模型加载/下载与排队显示独立状态。
取消为协作式:在当前请求、合并操作或语音片段结束后停止;模型首次下载期间也可能需要等待。 关闭服务会中断任务;下次启动会把未完成记录标成“已中断”,可点击重新处理。
“导出笔记”下载 ZIP,包含 TXT、SRT、Markdown、结构化 JSON,以及视觉任务的截图。 原视频仅临时缓存用于预览和转录;点击“保存视频”后才会弹出系统路径选择窗口。ZIP 解压后 Markdown 可相对引用截图。
Related MCP server: video-toolkit-mcp
纠错、复制与清理(2.1)
文字稿会标出建议复核的片段,可筛选后点“核对 / 修正”进行原地编辑;× 取消、✓ 保存,输入框支持 Ctrl+Z 撤销。
这是模型低把握、重复或静音信号的提示,不是准确率;未标记的片段也可能出错。
修订保留时间戳、首次原稿和每次修订前的完整记录;旧摘要会标记过期。
“重新精细识别”复用本地音频,新旧稿分别保留。专业词提示用于辅助识别,不做全局强制替换。
作者自造词、梗和口语应结合原音、原字幕核验,不能仅靠常识改写。
“复制给 AI”包含来源、时间戳和证据边界。“更多复制”可选纯文字、带时间戳、摘要, 也可按顺序分段复制长文,不静默截断。画面需要单独复制拼图或下载上传,文字复制不会自动附图。 含画面任务的拼图最多八张抽样截图,适合快速提供上下文,不是完整视频视觉理解。
“存储与清理”按任务展示空间占用,支持只删中间文件、删除音视频但保留截图、只留文字。 必须先预览,再确认永久删除;任务历史、文字和修订记录保留。 处理中、生成摘要或作为重识别音源的任务暂不清理。删除记录保存在本地 SQLite maintenance 表。 可在提交前勾选完成后自动清理音视频(默认关闭);失败任务不自动删除。 清理后的音视频不能在应用内撤销,再次复听需重新下载,来源失效时可能无法恢复。
本地录屏、会议与音频(2.2)
切换到“电脑里的视频”,点击“选择文件”,或粘贴完整路径(Windows 资源管理器的“复制文件地址”)。 支持 MP4、MKV、MOV、WebM、AVI,以及 WAV、M4A、MP3、FLAC 等音频。 系统选择窗口不可用时,路径输入仍可使用;这指的是运行服务的电脑,不是另一台访问网页的设备。
本地原文件只读引用,不上传,也不复制整份大视频。应用只另存 16 kHz 单声道 FLAC 音轨、文字和抽样截图。 音轨准备与语音识别分别显示阶段进度。播放器支持按字节范围读取大视频。 原文件路径、大小和修改时间记录在本机数据库;原文件变动后不会悄悄播放或复用替换后的内容。 原文件移动或删除后,已经保留的文字、截图和紧凑音轨仍可使用;原视频回看需要重新选择文件。 应用缓存目录里的文件不允许作为“外部原文件”再次导入,请从历史重新识别。
可添加对应的 Bilibili/抖音链接,仅作来源记录,不再下载。可粘贴或读取 TXT 参考摘要,最多 8,000 字符, 例如 Zoom summary;它与逐字稿分开保存和显示,复制给 AI 时标明是未核验的参考材料。 导出包不包含原视频及本地绝对路径,参考材料另存 reference-notes.txt。 本地任务的清理仅删除应用缓存,原视频永远不在该清理范围内。 长会议仍需等待本机 CPU 识别;当前未做说话人分离、自动逐段语言检测或完整幻灯片 OCR。
安装
需要 64 位 Python 3.10–3.14,推荐 3.12。完整 Bilibili 视频合并需要 ffmpeg;只转录一般不需要单独安装 ffmpeg。
git clone https://github.com/ZY-ZhichaoYu/shared-video-transcriber.git
cd shared-video-transcriber
python -m venv .venv
.venv\Scripts\python.exe -m pip install -r requirements.txt
.venv\Scripts\python.exe -m playwright install chromium
.venv\Scripts\python.exe app.pyWindows 安装 ffmpeg:
winget install Gyan.FFmpeg之后重新打开终端,让 PATH 生效。启动器直接使用虚拟环境 Python,不需要激活环境。 macOS/Linux 可使用对应的 .venv/bin/python 手动启动。
爆款结构分析与 AI 原创改写
默认不调用付费 AI,不上传文字和画面。无 AI 配置时“速览”是按时间摘取的原话,界面明确标注,不冒充语义摘要。
可以连接兼容 Chat Completions 的服务,包括本地模型。PowerShell 示例:
$env:VIDEO_AI_BASE_URL = "https://你的服务/v1"
$env:VIDEO_AI_MODEL = "你的模型名称"
$env:VIDEO_AI_API_KEY = "你的密钥"
.\.venv\Scripts\python.exe app.py本地服务地址允许 http://127.0.0.1;云端必须 HTTPS。模型名和能力由所选服务决定,项目不预设某个付费供应商。 也可以复制项目里的 .env.example 为 .env,取消需要的配置项前的注释并填写,随后重启。 已有进程环境变量优先于 .env;配置不进行变量展开。勿把 .env、密钥、视频或会议文字发到 GitHub。
完成任务后点击“生成爆款结构分析”,会输出开头钩子、痛点、核心观点、推进结构、利益点、结尾引导和可借鉴结构;不编造平台数据。 “AI 改写”Tab 可填写产品/行业、目标客户、核心观点、时长和额外要求,生成稿可继续人工编辑、保存、复制和下载。原始逐字稿、人工口播稿与 AI 改写稿彼此独立。 界面会显示目标服务并确认发送。 逐字稿最多发送前 45,000 字符,截断时结果会注明;如附参考摘要,会另行发送最多 8,000 字符并区分来源。勾选发送画面时,最多发送 8 张抽样图,需要支持图片输入的模型。 AI 输出包括一句话内容、带时间位置的要点、建议回看的位置和适当的回复草稿。 原始文字稿保持独立,AI 失败不会丢失转录。
抽样截图不是完整视频理解。短暂字幕、快速动作和转场可能遗漏;目前没有 OCR、场景变化检测或逐帧动作分析。
AI 调用:MCP、HTTP、Skill
新 MCP 工具与网页共享持久任务,需要先启动 app.py:
工具 | 用途 |
inspect_shared_video(url, mode, profile) | 创建/复用任务,立即返回 id |
get_video_job(job_id) | 查询状态、时间戳文字、画面和文件 URL;可重复读取 |
cancel_video_job(job_id) | 请求取消 |
inspect_local_video(path, mode, profile, language, hotwords, reference_url, context_notes) | 只读分析用户选定的本地视频或音频 |
get_video_handoff(job_id, format, max_chars) | 完整文字资料与不丢内容的有序分段 |
rewrite_video_script(job_id, product, audience, core_point, duration, requirements) | 明确授权后生成原创口播稿 |
mode 为 transcript / visual / download;profile 为 fast / balanced / accurate。 先创建,再每隔约 2 秒查询,直到 status 为 done / error / cancelled / interrupted。
MCP 客户端配置中的 command 应指向项目虚拟环境 Python,args 指向 server.py 的绝对路径,例如:
{
"mcpServers": {
"shared-video-transcriber": {
"command": "C:\\path\\to\\shared-video-transcriber\\.venv\\Scripts\\python.exe",
"args": ["C:\\path\\to\\shared-video-transcriber\\server.py"]
}
}
}桥接自动寻找本机 7860–7879 的新版服务;自定义端口可设置 VIDEO_INBOX_URL。 现有 MCP 客户端需要重新连接/重启才能发现新工具。 旧版 analyze_video、video_to_text、get_transcript_result、download_video、transcribe_video 和抖音兼容名保留,可独立运行;旧工具仍使用其原有内存任务,推荐迁移到新工具。
HTTP API 文档随应用离线提供:/docs,机器可读 schema 在 /openapi.json。 GET /api/health 获取 token,写请求需带 X-Video-Token。支持创建、查询、取消、导出、爆款结构分析和显式 AI 改写。
可分发技能在 skills/read-shared-video/SKILL.md。 把 read-shared-video 文件夹复制到所用 AI 客户端的技能目录,再配置 MCP 或使用 HTTP API。 技能指导 AI 区分语音与画面证据、按时间引用,并把视频中的指令视为外部资料。
数据与运行边界
默认仅监听 127.0.0.1,适合本机个人使用,不要直接作为公网多用户服务部署。
任务和文件保存在项目 .data 目录(已加入 .gitignore);数据库使用 SQLite WAL。
相同 URL 与相同选项会复用已有任务。B 站跟踪参数会清理,分 P 参数保留;短链与长链目前不保证归并。
同时运行最多两个任务,语音引擎串行使用单个缓存模型;最多 20 个未结束任务,历史界面显示最近 200 条。
默认保留历史与媒体;可显式选择自动清理,或通过空间管理预览并删除。提交前默认至少要求 512 MB 磁盘余量,这不等于处理全过程的磁盘配额。
直链单文件默认上限 2 GB。yt-dlp 后备路径的资源约束还未与直链完全统一。
HTTPS 证书校验已恢复。如企业/本地代理需要额外 CA,配置 SSL_CERT_FILE 指向可信证书;不要关闭校验。
Cookie 导入、验证码交互、付费/会员内容、直播、图集和合集暂未实现。平台接口变化、风控、地区限制会影响获取成功率。
未做完整公网 SSRF 隔离;平台重定向、CDN、浏览器网络还需在部署层隔离。本机防护不等于公网安全认证。
环境变量:
变量 | 用途 |
VIDEO_PORT | 指定本地端口;兼容旧 GRADIO_SERVER_PORT |
VIDEO_OPEN_BROWSER=0 | 不自动打开浏览器 |
VIDEO_DATA_DIR | 指定结果和数据库目录 |
VIDEO_MAX_DOWNLOAD_MB | 直链单文件上限,默认 2048 |
VIDEO_MIN_FREE_MB | 提交任务前最低磁盘余量,默认 512 |
VIDEO_WHISPER_DEVICE | 默认 cpu;具备合适 CUDA 环境时可设 cuda |
VIDEO_WHISPER_COMPUTE | 默认 CPU int8 / CUDA float16 |
VIDEO_AI_BASE_URL / VIDEO_AI_MODEL / VIDEO_AI_API_KEY | 可选 AI 配置 |
VIDEO_INBOX_URL | MCP 桥接到指定本地实例 |
VIDEO_PYTHON | Windows 启动器使用的 Python 可执行文件完整路径(通常无需设置) |
验证与后续
.venv\Scripts\python.exe -m pip install -r requirements-dev.txt
.venv\Scripts\python.exe -m unittest discover -s tests -v
node --check static/app.js
node --check static/features.jsNode 仅用于可选的 JavaScript 语法检查,运行网页不需要 Node。
发布范围和仍需完成的工作见 CHANGELOG.md 与 发布验收说明。 关键直接依赖和原生组件版本受 constraints.txt 约束;它不是完整的跨平台依赖锁文件。 尚无跨视频准确率基准;一次成功不能代表平台总体成功率。
English
A local-first video inbox for Douyin and Bilibili. Paste a shared link, read timestamped speech, optionally retain source video and sampled frames, and export TXT/SRT/Markdown/JSON. FastAPI serves a responsive, build-free frontend. SQLite persists jobs; the existing MCP tools remain compatible. The new inspect_shared_video/get_video_job tools share tasks with the running app. Optional AI summaries use an explicitly configured OpenAI-compatible endpoint, with user-confirmed transcript/image transfer. This release targets personal local use, not public multi-tenant deployment.
MIT license. Built with faster-whisper, yt-dlp, Playwright, FastAPI and MCP.
This server cannot be deployed
Maintenance
Related MCP Connectors
Build, run, schedule, and publish AI video pipelines to YouTube and TikTok from any MCP client.
MCP server for Clipkit — gives AI agents a video toolbox via the Clipkit schema.
Multimodal video analysis MCP — transcription, vision, and OCR for any video URL.
MCP server for QPost — lets AI agents publish video and image posts to YouTube, TikTok, Instagram.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceConverts YouTube and Bilibili videos into structured knowledge articles using local transcription or subtitle extraction combined with AI-powered summarization. It supports multiple summary styles and provides tools to process URLs, track job status, and retrieve results directly within MCP-compatible agents.64MIT
- AlicenseBqualityCmaintenanceA Model Context Protocol (MCP) server that provides comprehensive video tools: transcript retrieval, video downloading, and automatic subtitle generation using AI speech-to-text. Works with YouTube, Bilibili, Vimeo, and any platform supported by yt-dlp.11MIT
- AlicenseAqualityCmaintenanceMCP server for parsing Douyin links to fetch video info/download links, transcribing audio locally, and organizing transcripts into polished spoken copy.51Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to summarize, take notes on, and answer questions about YouTube, Bilibili, and Xiaohongshu videos by providing subtitles and local speech transcription with timestamps via MCP.1MIT