docs: expand README
This commit is contained in:
		
							
								
								
									
										78
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										78
									
								
								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
 | 
			
		||||
   ```
 | 
			
		||||
 | 
			
		||||
To run:
 | 
			
		||||
2. Build the front end:
 | 
			
		||||
 | 
			
		||||
   ```bash
 | 
			
		||||
bun run 
 | 
			
		||||
   bun run build:frontend
 | 
			
		||||
   ```
 | 
			
		||||
 | 
			
		||||
This project was created using `bun init` in bun v1.2.15. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime.
 | 
			
		||||
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
 | 
			
		||||
./build-docker-image.sh
 | 
			
		||||
./run-docker.sh
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
These scripts mount `feed_urls.txt`, `.env`, `public/`, and `data/` for persistence.
 | 
			
		||||
 | 
			
		||||
## Directories
 | 
			
		||||
 | 
			
		||||
- `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