{"id":25386189,"url":"https://github.com/ccbikai/hacker-news","last_synced_at":"2025-04-14T23:17:56.187Z","repository":{"id":277631842,"uuid":"933044155","full_name":"ccbikai/hacker-news","owner":"ccbikai","description":"一个基于 AI 的 Hacker News 中文播客项目，每天自动抓取 Hacker News 热门文章，通过 AI 生成中文总结并转换为播客内容。","archived":false,"fork":false,"pushed_at":"2025-04-14T12:32:18.000Z","size":508,"stargazers_count":1591,"open_issues_count":5,"forks_count":137,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-04-14T23:17:41.693Z","etag":null,"topics":["ai","ai-agent","ai-workflow","cloudflare","cloudflare-workers","cloudflare-workflows","hacker-news","nextjs"],"latest_commit_sha":null,"homepage":"https://hacker-news.agi.li","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ccbikai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"ccbikai","buy_me_a_coffee":"ccbikai"}},"created_at":"2025-02-15T02:38:59.000Z","updated_at":"2025-04-14T21:06:27.000Z","dependencies_parsed_at":"2025-02-15T03:26:07.428Z","dependency_job_id":"938edb26-435b-4cdb-97e4-16be07ec01b2","html_url":"https://github.com/ccbikai/hacker-news","commit_stats":null,"previous_names":["ccbikai/hacker-news"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ccbikai%2Fhacker-news","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ccbikai%2Fhacker-news/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ccbikai%2Fhacker-news/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ccbikai%2Fhacker-news/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ccbikai","download_url":"https://codeload.github.com/ccbikai/hacker-news/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248975329,"owners_count":21192210,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","ai-agent","ai-workflow","cloudflare","cloudflare-workers","cloudflare-workflows","hacker-news","nextjs"],"created_at":"2025-02-15T10:21:35.526Z","updated_at":"2025-04-14T23:17:56.179Z","avatar_url":"https://github.com/ccbikai.png","language":"TypeScript","funding_links":["https://github.com/sponsors/ccbikai","https://buymeacoffee.com/ccbikai"],"categories":["TypeScript"],"sub_categories":[],"readme":"# Hacker News 每日播报\n\n一个基于 AI 的 Hacker News 中文播客项目，每天自动抓取 Hacker News 热门文章，通过 AI 生成中文总结并转换为播客内容。\n\n---\n\n预览地址: \u003chttps://hacker-news.agi.li\u003e\n\nPodcast 订阅地址: \u003chttps://hacker-news.agi.li/rss.xml\u003e\n\nRSS Reader 订阅地址: \u003chttps://hacker-news.agi.li/blog.xml\u003e\n\n## 主要特性\n\n- 🤖 自动抓取 Hacker News 每日热门文章\n- 🎯 使用 AI 智能总结文章内容和评论\n- 🎙️ 通过 Edge TTS 生成中文播报\n- 📱 支持网页和播客 App 收听\n- 🔄 每日自动更新\n- 📝 提供文章摘要和完整播报文本\n\n## 技术栈\n\n- Next.js 应用框架\n- Cloudflare Workers 部署和运行环境\n- Edge TTS 语音合成\n- OpenAI API 内容生成\n- Tailwind CSS 样式处理\n- shadcn UI 组件库\n\n## 工作流程\n\n1. 定时抓取 Hacker News 热门文章\n2. 使用 AI 生成中文摘要和播报文稿\n3. 通过 Edge TTS 转换为音频\n4. 存储到 Cloudflare R2 和 KV\n5. 通过 RSS feed 和网页提供访问\n\n## 本地开发\n\n1. 安装依赖:\n\n```bash\npnpm install\n```\n\n2. 配置环境变量:\n\n```bash\n# .dev.vars\nNEXTJS_ENV=development\nNEXT_STATIC_HOST=http://localhost:3000/static\nOPENAI_API_KEY=your_api_key\nOPENAI_BASE_URL=https://api.openai.com/v1\nOPENAI_MODEL=gpt-4\nAUDIO_VOICE_ID=zh-CN-XiaoxiaoNeural\n\n# .env.local\nNEXT_DEV_WRANGLER_ENV=preview\n```\n\n3. 启动开发服务器:\n\n```bash\n# 开发工作流\npnpm dev:workflow\n# curl \"http://localhost:8787/workflow\" # 手动触发工作流\n\n# 开发 Web 页面\npnpm dev\n```\n\n\u003e 注意：\n\u003e\n\u003e - 本地运行工作流时，edge tts 转换音频可能并不会执行，会卡住，它依赖于 Cloudflare Workers 环境。建议直接注释该部分代码进行 mock 数据\n\n## 部署\n\n项目使用 Cloudflare Workers 部署:\n\n1. 创建 R2 文件存储桶, 绑定域名后，修改 `NEXT_STATIC_HOST` 变量。\n2. 创建 KV 存储空间\n3. 修改 `wrangler.json` 中 KV 和 R2 的值\n4. 使用 `wrangler` 脚手架配置线上环境的环境变量:\n\n```bash\nwrangler secret put OPENAI_API_KEY\nwrangler secret put OPENAI_BASE_URL\nwrangler secret put OPENAI_MODEL\nwrangler secret put NEXT_STATIC_HOST # 绑定域名后，修改为绑定域名\nwrangler secret put NEXTJS_ENV # production\n```\n\n```bash\n# 记得恢复注释：wrangler.json中的 workflows 相关配置\npnpm deploy\n```\n\n## 贡献\n\n欢迎提交 Issue 和 Pull Request!\n\n## 赞助\n\n1. [在 Telegram 关注我](https://t.me/miantiao_me)\n2. [在 𝕏 上关注我](https://404.li/x)\n3. [在 GitHub 赞助我](https://github.com/sponsors/ccbikai)\n\n## 免责声明\n\n本项目与 Hacker News 和 Y Combinator 没有任何关联。\"Hacker News\" 是 Y Combinator 的注册商标。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fccbikai%2Fhacker-news","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fccbikai%2Fhacker-news","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fccbikai%2Fhacker-news/lists"}