Skip to main content
Glama

视频收件箱

粘贴抖音 / 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.py

Windows 安装 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.js

Node 仅用于可选的 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.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    A 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.
    11
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables 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.
    1
    MIT