Skip to content

Releases: StephenQiu30/framefetch-server

FrameFetch v0.3.0-beta.2 · 视频号官方分享下载 / WeChat Channels downloads

Choose a tag to compare

@StephenQiu30 StephenQiu30 released this 03 Oct 11:50

本次 Beta 更新接通微信视频号官方分享文件下载:从提交分享链接、元宝原生解析、微信官方 feed,到统一下载、文件校验和浏览器保存。

This Beta connects WeChat Channels official share downloads, from the submitted link through native Yuanbao resolution and the official WeChat feed to verified artifacts and browser saving.

本次更新 / Changes

  • 接通视频号专属 L3,修复元宝原生客户端误匹配、官方引用票据解析及下载前身份重新确认。

  • 仅对视频号采用 official_share 范围:核对匿名分享、元宝与官方 feed 的标题、作者、封面来源和路径;拒绝明确限制和保护信号,下载官方非加密候选文件。

  • 最终文件经 ffprobe、候选时长一致性、严格全片解码和 SHA-256 校验后发布;下载前仍重新解析并核对十二字段执行上下文。

  • Web 解析结果、下载详情与历史显示“微信视频号”,解析卡片呈现交付范围说明;同步产品介绍、版本入口与验收文档。

  • Dedicated L3 resolution, with fixes for native-client discovery, official reference tickets and identity reconfirmation before downloads.

  • official_share applies only to WeChat Channels. Anonymous share, Yuanbao and official-feed metadata must match; explicit restrictions and protection signals are rejected.

  • Artifacts pass ffprobe, candidate-duration checks, strict full-file decoding and SHA-256 verification. Downloads still re-resolve and compare all twelve execution-context fields.

  • Chinese platform labels and delivery-scope information in the Web UI, with updated product and acceptance documentation.

验证 / Validation

两条独立分享经 Web 正式链路完成解析、规格确认、下载、Artifact 发布及 Chrome 本地保存;两份本地文件的大小与 SHA-256 均和服务器记录一致,全片解码均无错误。

分享标识 / Share 规格 / File 文件时长 / Duration 大小 / Bytes
ALGoE6MYUv MP4, 984×720, H264/AAC 660.631995 s 71,346,872
A9znfitafp MP4, 576×576, H264/AAC 24.448 s 1,525,279

Two independent shares completed the formal Web flow and Chrome saving. Local file sizes and SHA-256 hashes match the stored artifacts, and both files decode fully without errors.

本地检查:后端 3645 项通过、1 项因缺少隔离 MinIO 端点跳过;后端静态检查通过。前端全套 576 项测试及随后 24 项受影响回归通过,格式、类型检查与构建通过。验收记录更新后的 159 项专项回归通过。桌面与配置为 390px 的浏览器页面完成检查;日常运行卷已恢复、临时卷已清理、运行时锁已释放。

Local checks: 3,645 backend tests passed with one isolated-MinIO test skipped; backend static checks passed. The 576-test frontend suite and subsequent 24 affected regressions passed, along with formatting, type checks and the production build. All 159 acceptance-script regressions passed after evidence updates. Desktop and configured 390px browser views were checked, and the daily runtime was restored.

使用与升级 / Use and upgrade

从同一 tag 部署 Web、API、Worker 和 Runner。已有部署请先排空媒体操作,再重建相应服务,并按本标签 README 更新主工作区的 Chrome 身份扩展与宿主服务;扩展更新后在 Chrome 中重新加载。视频号需要已登录的元宝顶层页面保持打开。仅将既有 Runner Bearer 传入 Runner,宿主配对密钥不进入容器。

Deploy Web/API/worker/runner from the same tag. Drain active media operations before rebuilding services, then follow this tag's README to update the primary-checkout identity extension and host service. Reload the extension after updating it, and keep the logged-in Yuanbao page open. Only the Runner Bearer goes to the Runner; the host pairing key stays outside containers.

预览范围 / Preview scope

交付时长来自官方候选文件,公开免费标签、独立原长与原作品完整性仍未获平台证明。仅处理用户有权获取的非 DRM 文件,不解密受保护内容。此次两条 Web 正例不代表全部平台 --all 冷启动、真实受保护负例、App 设备或真实模型验收通过。

Duration comes from the official candidate file. Public/free status, independent original duration and original-work completeness remain unverified. Only authorized non-DRM files are processed; protected media is not decrypted. These two Web examples do not establish full-platform cold-start, protected-negative, device or real-model acceptance.

本版本是自托管源码预览,无新增安装包附件。Git tag 标识发行快照;内嵌 Server/API/Worker 与 Web 包版本字段仍为 0.2.0。App 与 Desktop 的现有版本未由本次 Server 发布更新。

This is a self-hosted source preview without additional installer assets. The Git tag identifies the snapshot; embedded Server/API/worker and Web package versions remain 0.2.0. Existing App and Desktop releases are unchanged.

发行快照 / Release commit: 7ae18365243ca50748df70c02a5e28b08c1363b8。该提交 CI / Commit CI 的前后端检查均通过 / Backend and frontend CI passed.

完整变更 / Full changelog

FrameFetch v0.3.0-beta.1 · 视频与剧本 AI 工作台 / Video & screenplay workspace

Choose a tag to compare

@StephenQiu30 StephenQiu30 released this 03 Oct 05:13

帧取 FrameFetch 把视频、剧本、处理任务和 AI 报告放进同一个自托管工作区。导入自己的素材,查看处理进度,选择分析方法,再把结果导出为可继续编辑的 Markdown/DOCX。

FrameFetch brings videos, screenplays, processing jobs and AI reports into one self-hosted workspace. Import your material, follow processing, choose an analysis method, and export editable Markdown/DOCX reports.

本次亮点 / Highlights

  • 统一素材入口:授权单视频链接、本地 MP4,以及 DOCX、可提取文字的 PDF、TXT、Markdown、Fountain 剧本。

  • 视频与剧本 AI 分析:当前方法目录包含 12 种视频方法与 8 种剧本方法,覆盖分镜、场景、叙事、节奏、文章草稿、角色、对白和改写;报告保留分析范围与证据。

  • 透明的处理过程:任务历史、取消、失败提示和素材完整性校验;AI 分析独立执行,AI 失败不改变下载成功状态。

  • Web 体验改进:页面与响应式布局整理、个人资料优化,以及管理员 AI 分析统计。

  • 解析与身份更新:平台解析阶梯、受控出口与 Chrome MV3 身份扩展;修复视频号引用标识和响应上下文校验。

  • Unified intake: authorized single-video links, local MP4 files and supported screenplay documents.

  • Video and screenplay analysis: 12 video methods and 8 screenplay methods in the catalog, including shot breakdowns, narrative review, article drafts and screenplay revision. Reports retain scope and evidence.

  • Visible processing: history, cancellation, actionable failures and artifact integrity checks. AI runs separately from downloads.

  • Web improvements: refined responsive layouts, profiles and administrator AI-analysis statistics.

  • Resolution and identity updates: platform extraction ladders, controlled egress and Chrome extension identity, with WeChat Channels reference and response-context validation fixes.

快速开始 / Get started

准备 Docker Compose,以及已有的 PostgreSQL、RabbitMQ、Redis、MinIO 和 Temporal 服务。AI 分析还需配置宿主 AI Worker 与模型服务。

Use Docker Compose with existing PostgreSQL, RabbitMQ, Redis, MinIO and Temporal services. AI analysis additionally requires a configured host AI worker and model service.

git clone --branch v0.3.0-beta.1 https://github.com/StephenQiu30/video-server.git
cd video-server
test -f .env || cp .env.example .env
# Configure .env for your existing infrastructure before starting.
docker compose up -d --build --wait --remove-orphans

Web:http://localhost:8101 · Swagger:http://localhost:8111/docs

首管理员、Chrome 身份扩展、模型配置与生产部署步骤见 中文 README / English README。

See those guides for first-admin creation, Chrome identity setup, model configuration and production deployment.

升级与预览范围 / Upgrade and preview scope

从 v0.2.0 升级时,旧容器会话 Broker 与 ./start 已由当前 Chrome 身份来源和 Compose 流程取代。先暂停接单、排空媒体操作并备份 PostgreSQL,再按本标签 README 配置身份来源,配套重建 Web、API、Worker 与 Runner。启用 AI 时,宿主 Worker 使用相同源码与环境配置。

When upgrading from v0.2.0, follow this tag's Chrome identity and Compose instructions. The former container session broker and ./start workflow have been replaced. Drain operations, back up PostgreSQL and rebuild matching Web/API/worker/runner services, including the host AI worker when enabled.

这是固定到 d766d59a87adbdb9168e2cf90bcead3386de2a3b 的源码预览。Git tag 标识本次快照;源码中的 API/Worker 和包版本字段仍为 0.2.0。请从同一 tag 部署相关组件。

This is a source preview at that commit. The Git tag identifies this snapshot; embedded API/Worker and package version fields remain 0.2.0. Deploy related components from the same tag.

该提交 CI 的后端与前端检查通过。本次发布未新增真实平台、真实模型或设备验收。方法目录不等于每种方法已通过真实模型验收;平台元数据可读不等于完整视频可下载。全量冷启动及逐平台验证状态见 解析引擎设计。当前不提供 ASR/OCR。

Backend and frontend CI passed. This publication adds no new live-provider, real-model or device acceptance. The method catalog and readable metadata do not establish real-model acceptance or complete-file download support. See the resolution design for platform and cold-start status. ASR/OCR is not included.

仅处理用户有权获取的非 DRM 内容。服务器、存储、网络和外部模型费用由部署者承担;启用外部 AI 会向所选服务发送分析所需素材。

Process only authorized non-DRM content. Operators provide infrastructure and model services; external AI receives the material needed for analysis.

三个项目 / The FrameFetch family

  • Server & Web — 自托管服务与浏览器工作区 / Self-hosted service and browser workspace.
  • iOS / Android App — Flutter 移动客户端 / Flutter mobile companion.
  • Desktop — 内置界面的 Electron 客户端,同样连接 Server / Electron companion with bundled UI, also connected to Server.

欢迎 Star、关注 Releases,或贡献平台适配、分析方法、使用反馈与文档。

Star the project, watch Releases, or contribute provider adapters, analysis methods, feedback and documentation.

完整变更 / Full changelog · MIT License

v0.2.0 · 容器自持平台会话与一键启动

Choose a tag to compare

@StephenQiu30 StephenQiu30 released this 29 Sep 02:57

历史版本 / Historical release
本页记录 v0.2.0 的历史架构与启动方式。当前 Chrome 身份来源、Compose 部署与三端关系请参考新预览版。
This page documents the historical v0.2.0 architecture. See the current preview for Chrome identity, Compose deployment and connected clients.
当前预览 / Current preview — v0.3.0-beta.1


帧取 FrameFetch v0.2.0:平台会话改为容器自持,./start 一条命令完成数据库结构、平台会话接入与业务容器启动。

English: FrameFetch v0.2.0 moves platform sessions into containers. A single ./start applies the schema, picks up platform logins from your local Chrome, has the containers verify them and starts every business service.

亮点

  • 一键启动(macOS):./start 应用当前数据库结构,发现本机 Chrome 中已登录的平台会话,加密登记并等待容器实际验证,同时安装当前用户的 LaunchAgent,最后构建并启动业务容器。
  • 容器自持平台会话:新增站点会话模型、session-broker 生命周期状态机与容器会话浏览器。冷启动恢复、保活、失效检测与自动轮换都由容器负责;后台每 60 秒检查缺失或确认失效的会话,健康会话不重复导入。默认启用 YouTube、抖音。
  • 会话安全:会话以密文保存在 PostgreSQL,只有 session-broker 持有密钥;每次操作的明文副本只进入 session-runner 的 tmpfs,结束即销毁。
  • 固定路线扩展:Runner 扩展平台固定路线,并与自动会话接入打通。
  • Web 体验:头像上传与个人资料页、头像悬停账户菜单、统一的解析结果双栏卡片、可恢复错误提示组件、快捷操作页面导航,以及基于 shadcn 组件的表单与页面控件整理。

不兼容变更

  • 在线解析必须配置站点会话:匿名与访客执行路线已移除。未配置、撤销或需要重新登录时明确提示部署前提缺失,不会自动切换路线。
  • 会话路由切换到容器会话 Runner:删除了旧的宿主来源链路。
  • Web 移除平台目录的引擎候选面板与运行诊断面板。
  • APP_VERSION 默认值升级为 0.2.0:宿主机 AI Agent 与业务服务按版本校验兼容性,升级后请重新执行 agent_cli install(生产环境带上 --env-file ../.env.prod)。

从 v0.1.0 升级

  1. 备份 PostgreSQL。
  2. git pull --ff-only。
  3. macOS 本机:运行 ./start(自动应用数据库结构并接入会话)。纯容器生产:先以 DDL 账号应用 backend/sql/schema.sql,再执行 docker compose --env-file .env.prod -f docker-compose-prod.yml up -d --build --wait。
  4. 如启用 AI 分析,重新安装宿主机 Agent:uv run python -m app.workers.analysis.agent_cli install。
  5. 用真实公开链接完成一次下载验收;服务健康不代表媒体可下载。

详见 README 快速开始 与 平台会话设计。

其他

  • 设计文档按主题整理为 docs/design,中英文 README 同步当前启动流程。
  • 修复:冷启动与保活期间保持平台会话可用;区分 Chrome 数据目录与钥匙串两类导入授权错误;窄屏账户页脚链接溢出。

使用边界

只处理你有权使用、公开、免费且非 DRM 的内容。MIT 许可证开放源代码,不授予任何第三方媒体内容的下载、复制或分析权;服务器、存储与外部模型费用由部署者承担。项目处于 0.x 阶段,不提供官方 SaaS 或 SLA。

iOS / Android 客户端:video-app

Full Changelog: v0.1.0...v0.2.0

如果帧取对你有帮助,欢迎点亮 ⭐ Star。

v0.1.0 · 帧取 FrameFetch 首个公开版本

Choose a tag to compare

@StephenQiu30 StephenQiu30 released this 26 Sep 01:24

帧取 FrameFetch 的首个公开版本:开源、自托管的公开视频解析、剧本文档处理与 AI 视频分析工作流。

English: First public release of FrameFetch — an open-source, self-hosted workflow for authorized video parsing, screenplay processing and AI video analysis.

主要能力

  • 公开媒体解析与下载:识别授权公开链接或分享文案中的来源、媒体信息与真实可用格式;API → Transactional Outbox → RabbitMQ → Download Worker → 隔离 Media Runner 的可恢复异步链路。
  • 制品校验与存储:重新解析、格式语义校验、FFmpeg/ffprobe、大小、时长与 SHA-256 校验后写入 MinIO。
  • 实时任务状态:WebSocket 增量事件、断线重连与 resync。
  • 剧本文档工作流:导入 Markdown、Fountain、TXT、PDF、DOCX,阅读、目录、分页与分析。
  • 可选 AI 分析:宿主机 Codex Agent 或管理员配置的模型 Provider;分镜、场景、关键帧证据,报告导出 Markdown / DOCX。
  • 运维与管理:用户与角色、Provider 状态、下载分析、文件管理与显式清理。
  • 公开站点 SEO/GEO:公开首页、使用指南、自托管部署指南、关于页面,sitemap、结构化数据与 /llms.txt;私有实例默认 noindex。

开始使用

使用边界

只处理你有权使用、公开、免费且非 DRM 的内容。MIT 许可证开放源代码,不授予任何第三方媒体内容的下载、复制或分析权;服务器、存储与外部模型费用由部署者承担。项目处于 0.x 阶段,不提供官方 SaaS 或 SLA。