asktube
jonaskahn/asktube加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

你是否有过这样的经历——想从一段 2 小时的 YouTube 视频里找到某个具体问题的答案,却不得不在进度条上反复拖拽,或者干脆把视频开了2倍速还是漏掉了关键信息?更让人头疼的是,很多优质视频根本没有字幕,传统的"按关键词搜索"根本派不上用场。
AskTube 正是为解决这个痛点而生:它能把任意 YouTube 视频变成一个可对话的"智能助手",让你像问真人一样直接提问,AI 基于视频内容给出精准答案。
AskTube 诞生于 2024 年,由独立开发者 Jonas Kahn 创建。聊到项目初衷,他在 README 中直言不讳:"我看了很多 GitHub 上做 YouTube AI 总结的项目,但没有一个带 Q&A(问答)功能的。我想自己动手做一个更完整的解决方案,同时通过这个项目学习 AI 应用开发。"
这是一个典型的"开发者为自己解决问题"的项目——没有华丽的商业包装,没有融资故事,纯粹是需求驱动的技术实践。
AskTube 的技术选型非常务实:Python + Sanic 作为后端,Nuxt.js + DaisyUI 构建前端,数据库采用轻量的 SQLite,配合 Chroma 向量数据库实现 RAG 语义检索。
整个处理链路分为三层:
第一层:音视频处理。 项目集成四种语音转文字(STT)方案——本地部署的 Faster-Whisper(完全免费,无需联网)、AssemblyAI、OpenAI Whisper API 和 Gemini 音频 API。其中 Faster-Whisper 支持 CPU 运行,但有 NVIDIA GPU 的用户可以享受数倍速的性能提升。对于没有字幕的视频,Whisper 模型会自动为其生成时间戳字幕,这是项目的一大亮点——"Work even with unsubtitle video"。
第二层:RAG 检索增强生成。 转录后的文本被切分为语义片段,通过 Sentence Transformers(本地方案)或 VoyageAI/Gemini Embedding 生成向量,存入 Chroma 向量数据库。当用户提问时,系统先从向量库中检索最相关的片段,再由 LLM 生成回答。项目支持多 AI 服务商:OpenAI GPT-4o、Claude、Mistral、Gemini,以及完全本地运行的 Ollama(Llama3.1、Qwen2)。
第三层:Web 界面。 Nuxt.js 构建的响应式前端提供视频输入框、摘要展示和对话聊天界面,用户体验接近一个正经的 AI 应用而非简陋的 demo 页面。
AskTube 提供三种 docker-compose 部署模式,难度从低到高:
本地模式(推荐尝鲜): 使用 docker-compose 一键拉起 Ollama + Engine + Traefik 反向代理,完全离线运行。需要额外在容器内手动安装 Ollama 模型(qwen2 和 llama3.1),适合有 Docker 基础的开发者。
免费模式(适合大多数用户): 利用 Google Gemini(免费额度)和 VoyageAI(注册即送 5000 万 token)作为 AI 后端,无需付费 API key。但注意 Gemini 有速率限制,高频使用可能遇到限流。
理想模式(追求效果): VoyageAI 负责 Embedding,OpenAI + Claude 负责问答,效果最佳但需要付费 API key。
对于习惯命令行的用户,项目也支持直接通过 Poetry 安装后端 + Bun 启动前端本地运行,前提是机器上装了 Python 3.10、Poetry、Bun 和 ffmpeg。

从代码质量来看,项目结构清晰——engine 目录承载核心业务逻辑,web 目录独立部署前后端,compose 目录管理容器编排,符合微服务拆分思想。后端依赖管理通过 Poetry 实现,版本锁定在 pyproject.toml 中,依赖数量约 30 个,属于中等规模。
文档方面,README 覆盖了安装步骤、三种部署模式和 FAQ,engine 子目录还有独立说明文档,对新手较为友好。项目带有基础测试套件(pytest),但测试覆盖率信息未公开。
需要注意的是,项目默认依赖较多 AI 服务商的 API key(OpenAI、Claude、Gemini 等),纯本地运行虽然可行但需要手动配置 Ollama 环境,有一定的学习成本。第一次启动时本地模型下载和初始化可能耗时较长,作者在文档中也特别提示了这一点。
项目仍处于活跃开发阶段,部分功能尚未完成。作者在 TODO 中列出了多项规划:多轮对话上下文长度管理、更多 RAG 查询改写策略(Fusion、Decomposition、Step back、HyDE)、以及云端语音转文字的完整实现。目前这些功能尚不可用,用户如果需要这些高级特性只能等待更新或自己动手实现。
此外,项目对长视频(超过 1 小时)的处理性能依赖于硬件条件——没有 GPU 的用户可能需要等待较长时间才能看到结果。Docker 部署虽然降低了环境配置的门槛,但 Traefik 反向代理的配置对于 Docker 新手来说仍有一定复杂度。
AskTube 代表了一类有代表性的开源 AI 应用开发趋势:以 RAG 为核心,在本地可跑通的前提下,尽可能接入商业模型提升效果。它不追求"大而全"的平台化定位,而是专注解决"视频内容问答"这一个具体问题,边界清晰,易于上手。
从增长曲线看,该项目 star 数不高但增长稳定(86 ★,issue 为 0 说明维护状态健康),技术选型不过度追新(Python 3.10 + 成熟框架),意味着代码的可维护性和生命周期都不错。对于想学习 RAG 应用落地或需要一个开箱即用的本地视频问答工具的开发者来说,这是一个值得关注的参考项目。