[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-73841":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":21,"hasPages":21,"topics":23,"createdAt":10,"pushedAt":10,"updatedAt":32,"readmeContent":33,"aiSummary":34,"trendingCount":16,"starSnapshotCount":16,"syncStatus":35,"lastSyncTime":36,"discoverSource":37},73841,"hacker-podcast","miantiao-me\u002Fhacker-podcast","miantiao-me","一个基于 AI 的 Hacker News 中文播客项目，每天自动抓取 Hacker News 热门文章，通过 AI 生成中文总结并转换为播客内容。","https:\u002F\u002Fhacker-podcast.agi.li",null,"TypeScript",2539,234,8,1,0,4,20,29.11,"GNU Affero General Public License v3.0",false,"main",[24,25,26,27,28,29,30,31],"ai","ai-agent","ai-workflow","cloudflare","cloudflare-workers","cloudflare-workflows","hacker-news","nextjs","2026-06-12 02:03:18","# Agili 的 Hacker Podcast\n\n一个基于 AI 的 Hacker News 中文播客项目，每天自动抓取 Hacker News 热门文章，通过 AI 生成中文总结并转换为播客内容。\n\n[\u003Cimg src=\"https:\u002F\u002Fdevin.ai\u002Fassets\u002Fdeepwiki-badge.png\" alt=\"DeepWiki\" height=\"20\"\u002F>](https:\u002F\u002Fdeepwiki.com\u002Fmiantiao-me\u002Fhacker-podcast)\n\n预览地址: \u003Chttps:\u002F\u002Fhacker-podcast.agi.li>\n\n订阅地址: [RSS](https:\u002F\u002Fhacker-podcast.agi.li\u002Frss.xml) | [Apple Podcasts](https:\u002F\u002Fpodcasts.apple.com\u002Fus\u002Fpodcast\u002FHacker-Podcast\u002Fid1809638204) | [YouTube](https:\u002F\u002Fwww.youtube.com\u002F@hacker-podcast-daily) | [小宇宙](https:\u002F\u002Fwww.xiaoyuzhoufm.com\u002Fpodcast\u002F67b06023606e5c59409cd9ba) | [Spotify](https:\u002F\u002Fopen.spotify.com\u002Fshow\u002F63cre75hc25H7McAY5bzyo)\n\n![hacker-podcast](https:\u002F\u002Fsocialify.git.ci\u002Fmiantiao-me\u002Fhacker-podcast\u002Fimage?description=1&forks=1&name=1&owner=1&pattern=Circuit+Board&stargazers=1&theme=Auto)\n\n---\n\n## 主要特性\n\n- 🤖 自动抓取 Hacker News 每日热门文章\n- 🎯 使用 AI 智能总结文章内容和评论\n- 🎙️ 通过 TTS 生成中文播报\n- 📱 支持网页和播客 App 收听\n- 🔄 每日自动更新\n- 📝 提供文章摘要和完整播报文本\n\n## 技术栈\n\n- [vinext](https:\u002F\u002Fgithub.com\u002Fcloudflare\u002Fvinext) (Vite + React Server Components) 应用框架\n- Cloudflare Workers 部署和运行环境\n- TTS 语音合成\n- OpenAI API 内容生成\n- Tailwind CSS 样式处理\n- shadcn-ui 组件库\n\n## 工作流程\n\n1. 定时抓取 Hacker News 热门文章\n2. 使用 AI 生成中文摘要和播报文稿\n3. 通过 TTS 转换为音频。\n4. 存储到 Cloudflare R2 和 KV\n5. 通过 RSS feed 和网页提供访问\n\n## 本地开发\n\n> 项目由一个 Worker 和 Web 程序组成，Worker 负责抓取数据，处理音频。使用了 Cloudflare 的 R2 存储、 KV 存储、工作流和浏览器呈现。\n> Web 程序负责展示数据和提供 RSS 订阅。Web 程序使用 vinext 开发，通过 Cloudflare Vite 插件部署到 Workers。\n\n1. 安装依赖:\n\n```bash\npnpm install\n```\n\n2. 配置环境变量:\n\n```bash\n# .env.local\nNODE_ENV=development\nNEXT_STATIC_HOST=http:\u002F\u002Flocalhost:3000\u002Fstatic\n\n# worker\u002F.env.local\nNODE_ENV=development\nHACKER_PODCAST_WORKER_URL=https:\u002F\u002Fyou-worker-url\nHACKER_PODCAST_R2_BUCKET_URL=https:\u002F\u002Fyour-bucket-url\nOPENAI_API_KEY=your_api_key\nOPENAI_BASE_URL=https:\u002F\u002Fapi.openai.com\u002Fv1\nOPENAI_MODEL=gpt-4.1\n\n```\n\n3. 启动开发服务器:\n\n```bash\n# 开发工作流\npnpm dev:worker\n# curl -X POST http:\u002F\u002Flocalhost:8787 # 手动触发工作流\n\n# 开发 Web 页面\npnpm dev\n```\n\n> 注意：\n>\n> - 本地运行工作流时，Edge TTS 转换音频可能会卡住。建议直接注释该部分代码进行调试。\n> - 由于合并音频需要使用 Cloudflare 的浏览器端呈现，不支持本地开发，需要远程调试。可以使用 `pnpm tests` 进行测试。\n\n## 部署\n\n项目使用 Cloudflare Workers 部署:\n\n1. 创建 R2 文件存储桶, 绑定域名后，修改 `NEXT_STATIC_HOST` 和 `HACKER_PODCAST_R2_BUCKET_URL` 变量。\n2. 创建 KV 存储空间\n3. 修改 `wrangler.jsonc` 中 KV 和 R2 的值\n4. 使用 `wrangler` 脚手架配置线上环境的环境变量:\n\n```bash\n# 更新 Worker 的私有变量\npnpx wrangler secret put --cwd worker HACKER_PODCAST_WORKER_URL # 绑定域名后，修改为绑定域名\npnpx wrangler secret put --cwd worker HACKER_PODCAST_R2_BUCKET_URL\npnpx wrangler secret put --cwd worker OPENAI_API_KEY\npnpx wrangler secret put --cwd worker OPENAI_BASE_URL\npnpx wrangler secret put --cwd worker OPENAI_MODEL\n\n# 更新 Web 程序的私有变量\npnpx wrangler secret put NODE_ENV # 建议 production\npnpx wrangler secret put NEXT_PUBLIC_BASE_URL # Web 服务地址\npnpx wrangler secret put NEXT_STATIC_HOST # 绑定域名后，修改为绑定域名\n```\n\n```bash\n# 记得恢复注释：wrangler.jsonc 中的 workflows 相关配置\npnpm deploy:worker\npnpm run deploy\n```\n\n## 致谢\n\n特别感谢以下开源项目：\n\n- **[Podify](https:\u002F\u002Fgithub.com\u002Fsun0225SUN\u002Fpodify)** - 一个优雅的播客主题，为本项目提供了设计灵感和参考\n\n## 贡献\n\n欢迎提交 Issue 和 Pull Request!\n\n## 赞助\n\n> [!TIP]\n> ![MiniMax](https:\u002F\u002Fstatic.miantiao.me\u002Fshare\u002F2026\u002FeFwhMy\u002F7360.png)\n> MiniMax-M2.1 是开源的业界顶尖编程模型，在多语言代码编写、界面设计理解与美学表达、长文本处理及多步骤复杂开发任务上表现卓越。让我们向通用生产力的长期愿景迈出了坚实一步，让人人都能轻松用上前沿的 AI 能力。[**点击领取 MiniMax CodingPlan 专属 88 折优惠**](http:\u002F\u002F404.li\u002Fmm)。\n\n1. [在 Telegram 关注我](https:\u002F\u002Ft.me\u002Fmiantiao_me)\n2. [在 𝕏 上关注我](https:\u002F\u002F404.li\u002Fx)\n3. [在 GitHub 赞助我](https:\u002F\u002Fgithub.com\u002Fsponsors\u002Fmiantiao-me)\n\n## 免责声明\n\n本项目与 Hacker News 和 Y Combinator 没有任何关联。\"Hacker News\" 是 Y Combinator 的注册商标。\n","Hacker Podcast 是一个基于 AI 的中文播客项目，每天自动抓取 Hacker News 热门文章并通过 AI 生成中文总结，最终转换为音频内容。该项目的核心功能包括定时抓取热门文章、使用 OpenAI API 智能生成摘要和评论、通过 TTS 技术将文本转换为语音。技术上，它采用了 Cloudflare Workers 作为部署环境，利用 Vite + React Server Components 构建前端界面，并结合了 Tailwind CSS 和 shadcn-ui 组件库以提升用户体验。Hacker Podcast 适合那些希望在通勤或日常生活中高效获取最新科技资讯的人群使用，支持多种平台订阅，如 Apple Podcasts、Spotify 和小宇宙等。",2,"2026-06-11 03:47:36","high_star"]