Merge pull request #1 from anosatsuk124/codex/write-readme
Add project documentation
This commit is contained in:
84
README.md
84
README.md
@ -1,15 +1,83 @@
|
|||||||
# podcast-generator
|
# Voice RSS Summary
|
||||||
|
|
||||||
To install dependencies:
|
Voice RSS Summary automatically collects RSS feeds, summarizes new articles using OpenAI, and publishes them as a podcast with speech synthesized by VOICEVOX. The project uses the Bun runtime with a React (Vite) front end and an SQLite database.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Fetch multiple RSS feeds listed in `feed_urls.txt`.
|
||||||
|
- Generate podcast scripts with the OpenAI API.
|
||||||
|
- Convert scripts to audio using VOICEVOX and FFmpeg.
|
||||||
|
- Serve a web interface to browse feeds and play episodes.
|
||||||
|
- Provide a podcast RSS feed at `/podcast.xml`.
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
- [Bun](https://bun.sh/) 1.x (if running locally)
|
||||||
|
- VOICEVOX engine
|
||||||
|
- An OpenAI API key
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
1. Install dependencies:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bun install
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Build the front end:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bun run build:frontend
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Create a `.env` file and set the following variables:
|
||||||
|
|
||||||
|
```env
|
||||||
|
OPENAI_API_KEY=your-api-key
|
||||||
|
OPENAI_API_ENDPOINT=https://api.openai.com/v1
|
||||||
|
OPENAI_MODEL_NAME=gpt-4o-mini
|
||||||
|
VOICEVOX_HOST=http://localhost:50021
|
||||||
|
VOICEVOX_STYLE_ID=0
|
||||||
|
PODCAST_TITLE=Voice RSS Summary
|
||||||
|
PODCAST_LINK=https://your-domain.com/podcast
|
||||||
|
PODCAST_DESCRIPTION=Generated podcast feed
|
||||||
|
PODCAST_LANGUAGE=ja
|
||||||
|
PODCAST_AUTHOR=Admin
|
||||||
|
PODCAST_CATEGORIES=Technology
|
||||||
|
PODCAST_TTL=60
|
||||||
|
PODCAST_BASE_URL=https://your-domain.com
|
||||||
|
FEED_URLS_FILE=feed_urls.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Prepare `feed_urls.txt` with one RSS feed URL per line.
|
||||||
|
|
||||||
|
5. Start the server:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bun run server.ts
|
||||||
|
```
|
||||||
|
|
||||||
|
The initial batch process runs on start and then every 24 hours.
|
||||||
|
|
||||||
|
## Docker
|
||||||
|
|
||||||
|
A Dockerfile and helper scripts are provided. To run in a container:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
bun install
|
./build-docker-image.sh
|
||||||
|
./run-docker.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
To run:
|
These scripts mount `feed_urls.txt`, `.env`, `public/`, and `data/` for persistence.
|
||||||
|
|
||||||
```bash
|
## Directories
|
||||||
bun run
|
|
||||||
```
|
|
||||||
|
|
||||||
This project was created using `bun init` in bun v1.2.15. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime.
|
- `data/` – SQLite database (`podcast.db`)
|
||||||
|
- `public/podcast_audio/` – generated MP3 files
|
||||||
|
- `frontend/` – Vite React application (served on build)
|
||||||
|
|
||||||
|
Access the web UI and podcast feed on `http://localhost:3000/` after the server starts.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
This project is licensed under the [Apache 2.0 License](LICENSE).
|
||||||
|
Reference in New Issue
Block a user