[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-79308":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":8,"language":10,"languages":8,"totalLinesOfCode":8,"stars":11,"forks":12,"watchers":13,"openIssues":13,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":13,"stars7d":15,"stars30d":16,"stars90d":14,"forks30d":14,"starsTrendScore":17,"compositeScore":18,"rankGlobal":8,"rankLanguage":8,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":20,"topics":23,"createdAt":8,"pushedAt":8,"updatedAt":24,"readmeContent":25,"aiSummary":26,"trendingCount":14,"starSnapshotCount":14,"syncStatus":27,"lastSyncTime":28,"discoverSource":29},79308,"openbrief","tantara\u002Fopenbrief","tantara",null,"https:\u002F\u002Fopenbrief-phi.vercel.app","TypeScript",418,19,1,0,11,202,7,3.9,"GNU Affero General Public License v3.0",false,"main",true,[],"2026-06-12 02:03:50","\u003Cdiv align=\"center\">\n\n# OpenBrief\n\n**Turn videos and audio into clear, listenable briefings.**\n\nImport a video or audio file, extract its transcript, generate a grounded summary, and chat with the content — all on your desktop.\n\n[![License: AGPL v3](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-AGPL%20v3-blue.svg)](LICENSE)\n[![Built with Tauri](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuilt%20with-Tauri%20v2-24C8DB.svg?logo=tauri)](https:\u002F\u002Ftauri.app)\n![Platforms](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fplatforms-macOS%20%7C%20Windows%20%7C%20Linux-lightgrey.svg)\n[![Stars](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Ftantara\u002Fopenbrief?style=social)](https:\u002F\u002Fgithub.com\u002Ftantara\u002Fopenbrief\u002Fstargazers)\n\n[Watch the demo](https:\u002F\u002Fyoutu.be\u002FOnS3EViayRo) · [Features](#features) · [Model Support](#model-support) · [Setup](#setup) · [Development](#local-development) · [Roadmap](#roadmap)\n\n[![OpenBrief — Open Source YouTube Summarizer](docs\u002Fassets\u002Fopenbrief_thumbnail.png)](https:\u002F\u002Fyoutu.be\u002FOnS3EViayRo)\n\n\u003C\u002Fdiv>\n\nOpenBrief is a pnpm\u002FTurborepo workspace centered on a Tauri v2 desktop app. It supports importing local media or video URLs, downloading media through bundled tools, transcribing audio, generating grounded summaries, chatting with media context, organizing playlists, and exporting reusable notes.\n\n## Features\n\n- 📥 **Import anything** — paste a video link or import a local audio\u002Fvideo file.\n- ✍️ **Transcribe locally** — extract captions or run on-device speech-to-text.\n- 📝 **Grounded summaries** — generate blog-style markdown briefs with timestamped takeaways.\n- 💬 **Chat with media** — ask questions against the summary or full transcript.\n- 🔊 **Listen back** — turn summaries into audio with text-to-speech.\n- 🔒 **Open source & private** — runs on your machine, free to use.\n\nBuild a searchable library from video links or local files, then extract transcripts and keep everything in one place.\n\n![Library view](docs\u002Fassets\u002Fscreenshot_library.png)\n\nOpen any item to read the transcript, generate a grounded summary, and chat with the media context side by side.\n\n![Brief and chat view](docs\u002Fassets\u002Fscreenshot_note.png)\n\n## Model Support\n\n| Model type | Supported | TODO |\n| --- | --- | --- |\n| Speech to text | Whisper, Parakeet, Qwen3-ASR | None |\n| Text to speech | Supertonic 3, Qwen3-TTS | None |\n| Large language model | OpenAI GPT, Anthropic Claude, Google Gemini, OpenRouter DeepSeek | Local Gemma 4 |\n| Video embedding | None | Frame and clip embeddings for semantic search |\n\n## Repository Layout\n\n```text\nclient\u002F\n  apps\u002F\n    tauri\u002F            Main OpenBrief desktop app\n      src\u002F            React renderer, feature UI, domain logic, services, hooks, i18n\n      src-tauri\u002F      Tauri v2 Rust boundary, commands, helper sidecar, packaging\n      scripts\u002F        Helper-sidecar and media-tool preparation scripts\n    nextjs\u002F           Web app and download\u002FYouTube routes\n    tanstack-start\u002F   TanStack Start app shell\n    expo\u002F             React Native app shell\n    workers\u002F          Worker entry points\n  packages\u002F\n    api\u002F              Shared API routing\n    auth\u002F             Authentication integration\n    db\u002F               Database schema and access\n    ui\u002F               Shared UI components\n    validators\u002F       Shared validation helpers\n  tooling\u002F\n    eslint\u002F           Shared ESLint config\n    github\u002F           GitHub setup helpers\n    prettier\u002F         Shared Prettier config\n    tailwind\u002F         Shared Tailwind config\n    typescript\u002F       Shared TypeScript config\n\nAGENTS.md             Repository development guidance\nDESIGN.md             Product and UI direction\n```\n\n## Requirements\n\n- Node.js `^22.21.0`\n- pnpm `11.0.9`\n- Rust and Cargo\n- Tauri v2 platform prerequisites for your OS\n\nUse the package manager declared in `client\u002Fpackage.json`.\n\n## Setup\n\nInstall dependencies from the workspace root:\n\n```bash\ncd client\npnpm install\n```\n\nIf pnpm reports ignored native build scripts on a fresh machine, run `pnpm approve-builds`, approve the listed native\u002Ftooling packages, then rerun `pnpm install`.\n\nCreate local environment values when needed:\n\n```bash\ncp .env.example .env\n```\n\n## Local Development\n\nUse two terminals from `client\u002F` when working on both the web app and desktop app:\n\n```bash\npnpm dev:next\n```\n\nThe Next.js app runs at `http:\u002F\u002Flocalhost:3000`.\n\n```bash\npnpm dev:tauri\n```\n\nThe Tauri dev command builds the helper sidecar, starts the desktop renderer through Vite at `http:\u002F\u002Flocalhost:1420`, compiles the Rust app, and launches the desktop window.\n\n## Desktop App\n\nRun the Tauri desktop app:\n\n```bash\ncd client\npnpm dev:tauri\n```\n\nRun only the renderer during frontend work:\n\n```bash\ncd client\u002Fapps\u002Ftauri\npnpm dev\n```\n\nBuild frontend assets:\n\n```bash\ncd client\u002Fapps\u002Ftauri\npnpm build\n```\n\nBuild or refresh bundled helper\u002Fmedia assets:\n\n```bash\ncd client\u002Fapps\u002Ftauri\npnpm setup:dev-sidecars\npnpm prepare:media-assets\n```\n\nUseful desktop checks:\n\n```bash\ncd client\u002Fapps\u002Ftauri\npnpm test:run\npnpm typecheck\ncd src-tauri && cargo check\n```\n\n## Web And Shared Workspace\n\nRun the Next.js app:\n\n```bash\ncd client\npnpm dev:next\n```\n\nRun all workspace dev tasks through Turbo:\n\n```bash\ncd client\npnpm dev\n```\n\nCommon workspace checks:\n\n```bash\ncd client\npnpm typecheck\npnpm lint\npnpm build\n```\n\nDatabase and auth helpers:\n\n```bash\ncd client\npnpm db:push\npnpm db:studio\npnpm auth:generate\n```\n\nUse `pnpm --filter \u003Cworkspace> \u003Cscript>` or `pnpm -F \u003Cworkspace> \u003Cscript>` for a single app or package.\n\n## Roadmap\n\n- [x] Improve audio file support for transcription, summaries, playback, and exports.\n- [ ] Support more document and web source types, including PDFs, HTML pages, and other document formats.\n- [x] Support Parakeet ASR.\n- [x] Support Qwen3-ASR and Qwen3-ForcedAligner.\n- [x] Support Supertonic 3 TTS.\n- [ ] Support local LLMs, including Gemma 4.\n- [ ] Add video embedding for frame and clip semantic search across the library.\n- [ ] Add voice cloning so summaries can be read aloud in a selected voice.\n- [ ] Share summaries through the web and mobile apps.\n- [ ] Support more artifact formats, including flashcards and other reusable study or publishing outputs.\n\n## Acknowledgements\n\nOpenBrief builds on and takes inspiration from several projects:\n\n- [yt-dlp](https:\u002F\u002Fgithub.com\u002Fyt-dlp\u002Fyt-dlp) for video download support.\n- [whisper.cpp](https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fwhisper.cpp) and [transcribe-rs](https:\u002F\u002Fgithub.com\u002Fcjpais\u002Ftranscribe-rs) for local speech-to-text.\n- [FluidAudio](https:\u002F\u002Fgithub.com\u002FFluidInference\u002FFluidAudio) for local Apple-platform audio AI inspiration.\n- [Qwen3-ASR](https:\u002F\u002Fgithub.com\u002FQwenLM\u002FQwen3-ASR) for speech recognition model support.\n- [Qwen3-TTS](https:\u002F\u002Fgithub.com\u002FQwenLM\u002FQwen3-TTS) for text-to-speech model support.\n- [Supertonic](https:\u002F\u002Fgithub.com\u002Fsupertone-inc\u002Fsupertonic\u002F) for Supertonic 3 TTS support.\n- [tweakcn](https:\u002F\u002Ftweakcn.com\u002Fthemes\u002Fcmlhfpjhw000004l4f4ax3m7z) for the shadcn theme.\n- [Voicebox](https:\u002F\u002Fgithub.com\u002Fjamiepine\u002Fvoicebox) and [Anarlog](https:\u002F\u002Fgithub.com\u002Ffastrepl\u002Fanarlog) for product and implementation inspiration.\n\n## License\n\nOpenBrief is licensed under the [GNU Affero General Public License v3.0](LICENSE).\n\n## Verification\n\nRun the smallest check that proves the change, then widen as needed:\n\n```bash\ncd client\u002Fapps\u002Ftauri && pnpm test:run \u003Cpattern>\ncd client\u002Fapps\u002Ftauri && pnpm typecheck\ncd client\u002Fapps\u002Ftauri\u002Fsrc-tauri && cargo check\ncd client && pnpm --filter @acme\u002Fnextjs typecheck\ngit diff --check\n```\n\nFor packaging, run the relevant Tauri build on the target platform before making release claims.\n","OpenBrief 是一个将视频和音频转换为清晰、可听简报的桌面应用程序。它支持导入本地媒体文件或视频链接，通过内置工具下载媒体内容，并提供转录音频、生成基于时间戳的摘要以及与媒体内容进行对话等功能。此外，用户还可以将生成的摘要转换为语音，并且所有处理都在本地完成，确保了数据隐私。该项目采用 TypeScript 编写，基于 Tauri v2 构建，适用于需要快速获取视频或音频内容概要、进行深度分析或学习的研究人员、学生及专业人士。",2,"2026-06-11 03:57:41","CREATED_QUERY"]