hacker-podcast

by miantiao-me

Pending

An AI-based Hacker News Chinese podcast project that automatically crawls popular Hacker News articles every day, uses AI to generate Chinese summaries and converts them into podcast content.

2,403stars
214forks
TypeScript
Added 12/27/2025
AI Agentsaiai-agentai-workflowcloudflarecloudflare-workerscloudflare-workflowshacker-newsnextjs
Installation
# Add to your Claude Code skills
git clone https://github.com/miantiao-me/hacker-podcast
README.md

Agili 的 Hacker Podcast

一个基于 AI 的 Hacker News 中文播客项目,每天自动抓取 Hacker News 热门文章,通过 AI 生成中文总结并转换为播客内容。

<img src="https://devin.ai/assets/deepwiki-badge.png" alt="DeepWiki" height="20"/>

预览地址: https://hacker-podcast.agi.li

订阅地址: RSS | Apple Podcasts | YouTube | 小宇宙 | Spotify

hacker-podcast


主要特性

  • 🤖 自动抓取 Hacker News 每日热门文章
  • 🎯 使用 AI 智能总结文章内容和评论
  • 🎙️ 通过 TTS 生成中文播报
  • 📱 支持网页和播客 App 收听
  • 🔄 每日自动更新
  • 📝 提供文章摘要和完整播报文本

技术栈

  • Next.js 应用框架
  • Cloudflare Workers 部署和运行环境
  • TTS 语音合成
  • OpenAI API 内容生成
  • Tailwind CSS 样式处理
  • shadcn-ui 组件库

工作流程

  1. 定时抓取 Hacker News 热门文章
  2. 使用 AI 生成中文摘要和播报文稿
  3. 通过 TTS 转换为音频。
  4. 存储到 Cloudflare R2 和 KV
  5. 通过 RSS feed 和网页提供访问

本地开发

项目由一个 Worker 和 Web 程序组成,Worker 负责抓取数据,处理音频。使用了 Cloudflare 的 R2 存储、 KV 存储、工作流和浏览器呈现。 Web 程序负责展示数据和提供 RSS 订阅。 Web 程序使用 Next.js 开发,可以看下 OpenNext 的 Cloudflare 适配器。

  1. 安装依赖:
pnpm install
  1. 配置环境变量:
# .env.local
NODE_ENV=development
NEXT_STATIC_HOST=http://localhost:3000/static

# worker/.env.local
NODE_ENV=development
HACKER_PODCAST_WORKER_URL=https://you-worker-url
HACKER_PODCAST_R2_BUCKET_URL=https://your-bucket-url
OPENAI_API_KEY=your_api_key
OPENAI_BASE_URL=https://api.openai.com/v1
OPENAI_MODEL=gpt-4.1

  1. 启动开发服务器:
# 开发工作流
pnpm dev:worker
# curl -X POST http://localhost:8787 # 手动触发工作流

# 开发 Web 页面
pnpm dev

注意:

  • 本地运行工作流时,Edge TTS 转换音频可能会卡住。建议直接注释该部分代码进行调试。
  • 由于合并音频需要使用 CloudFlare 的浏览器端呈现,不支持本地开发,需要远程调试。 可以使用 npm run test 进行测试。

部署

项目使用 Cloudflare Workers 部署:

  1. 创建 R2 文件存储桶, 绑定域名后,修改 NEXT_STATIC_HOSTHACKER_PODCAST_R2_BUCKET_URL 变量。
  2. 创建 KV 存储空间
  3. 修改 wrangler.json 中 KV 和 R2 的值
  4. 使用 wrangler 脚手架配置线上环境的环境变量:
# 更新 Worker 的私有变量
pnpx wrangler secret put --cwd worker HACKER_PODCAST_WORKER_URL # 绑定域名后,修改为绑定域名
pnpx wrangler secret put --cwd worker HACKER_PODCAST_R2_BUCKET_URL
pnpx wrangler secret put --cwd worker OPENAI_API_KEY
pnpx wrangler secret put --cwd worker OPENAI_BASE_URL
pnpx wrangler secret put --cwd worker OPENAI_MODEL

# 更新 Web 程序的私有变量
pnpx wrangler secret put NODE_ENV # Next.JS 环境,建议 production
pnpx wrangler secret put NEXT_PUBLIC_BASE_URL # Web 服务地址
pnpx wrangler secret put NEXT_STATIC_HOST # 绑定域名后,修改为绑定域名
# 记得恢复注释:wrangler.json 中的 workflows 相关配置
pnpm deploy:worker
pnpm deploy

致谢

特别感谢以下开源项目:

  • Podify - 一个优雅的播客主题,为本项目提供了设计灵感和参考

贡献

欢迎提交 Issue 和 Pull Request!

赞助

[!TIP] MiniMax MiniMax-M2...