Transform your favorite RSS feeds into personalized, professional audio news briefings with background music and customizable voices.
Clean, dark-themed interface for configuring news briefing
Audio player and transcript view after successful generation
- RSS Feed Integration: Support for multiple RSS feeds from popular news sources
- Professional Voice Generation: Powered by Murf AI with multiple voice options
- Audio Enhancement: Automatic background music mixing for professional sound
- Customizable Briefings: Adjust article count, voice selection, and audio format
- Dark Theme UI: Modern, responsive web interface
- Real-time Processing: Live feedback during briefing generation
- Multiple Formats: Export as MP3, WAV, or FLAC
- Auto-save: Remembers your preferred RSS feeds
- Daily News Consumption: Convert your morning news reading into audio briefings
- Commute Companion: Listen to personalized news during travel
- Accessibility: Audio-first news consumption for visually impaired users
- Productivity: Multitask while staying informed
- Content Creation: Generate news summaries for podcasts or broadcasts
- Python 3.8+
- FFmpeg (for audio processing)
- Murf AI API key (Get one here)
-
Clone the repository
git clone https://github.com/WizOctavius/news-brief.git cd news-brief -
Install dependencies
pip install -r requirements.txt
-
Setup FFmpeg
Windows:
- Download FFmpeg from https://ffmpeg.org/download.html
- Extract to
C:\ffmpeg\ - Or ensure
ffmpeg.exeis in your PATH
macOS:
brew install ffmpeg
Linux (Ubuntu/Debian):
sudo apt update sudo apt install ffmpeg
-
Configure Murf API
- Open
main.py - Replace
PASTE_YOUR_API_KEY_HEREwith your actual Murf API key:
MURF_API_KEY = "your_actual_murf_api_key_here"
- Open
-
Add Background Music (Optional)
- Place your background music file as
assets/corporate-technology-196202.mp3 - Or update the
BACKGROUND_MUSIC_PATHvariable inmain.py
- Place your background music file as
-
Run the application
python main.py
-
Access the web interface
- Open your browser to
http://localhost:8000 - API documentation available at
http://localhost:8000/docs
- Open your browser to
ai-news-briefing-generator/
βββ main.py # FastAPI backend server
βββ static/
β βββ index.html # Web interface
β βββ script.js # Frontend JavaScript
β βββ generated_audio/ # Generated audio files (auto-created)
βββ assets/
β βββ corporate-technology-196202.mp3 # Background music
βββ requirements.txt # Python dependencies
βββ README.md # This file- Natalie (US Female) - Default
- Wayne (US Male)
- Hazel (UK Female)
- Nolan (UK Male)
- MP3 - Recommended for most use cases
- WAV - High quality, larger file size
- FLAC - Lossless compression
- Adjustable from 1-5 articles per RSS feed
- Total briefing limited to 20 articles maximum
The application works with any valid RSS feed. Popular examples include:
- Reuters:
https://feeds.reuters.com/reuters/topNews - New York Times:
https://rss.nytimes.com/services/xml/rss/nyt/World.xml - TechCrunch:
https://feeds.feedburner.com/TechCrunch - BBC News:
http://feeds.bbci.co.uk/news/rss.xml - Reuters Business:
https://feeds.reuters.com/reuters/businessNews
POST /generate-briefingRequest Body:
{
"feeds": [
"https://feeds.reuters.com/reuters/topNews",
"https://rss.nytimes.com/services/xml/rss/nyt/World.xml"
],
"voice_id": "en-US-natalie",
"audio_format": "MP3",
"max_articles_per_feed": 3
}Response:
{
"success": true,
"audio_url": "/static/generated_audio/briefing_abc123.mp3",
"briefing_text": "Good morning from Durgapur...",
"audio_length_seconds": 180.5,
"characters_used": 1250,
"characters_remaining": 8750,
"articles_count": 6,
"sources": ["Reuters", "New York Times"]
}GET /healthReturns system status including API configuration and FFmpeg availability.
The application automatically mixes speech with background music for a professional podcast-like experience. The background music is:
- Automatically looped to match speech duration
- Volume-adjusted to not interfere with speech clarity
- Mixed using FFmpeg for optimal audio quality
If no background music is provided, the application gracefully falls back to speech-only audio.
MURF_API_KEY=your_murf_api_key_here- Ensure FFmpeg is properly installed and accessible
- Check that FFmpeg executable is in your system PATH
- On Windows, verify the installation path matches the expected locations
- Verify your API key is correctly set in
main.py - Ensure the key is valid and has sufficient credits
- Check Murf API documentation for authentication requirements
- Ensure the FastAPI server is running on port 8000
- Check for any firewall or antivirus blocking the connection
- Verify Python dependencies are properly installed
- Verify RSS feed URLs are valid and accessible
- Check that feeds contain recent articles
- Some feeds may require specific headers or user agents
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Support for podcast RSS feeds
- Multiple language support
- Scheduled briefing generation
- Email delivery integration
- Custom intro/outro messages
- Advanced audio effects and processing
- Mobile app companion
- Murf AI for text-to-speech capabilities
- FastAPI for the robust web framework
- Feedparser for RSS feed parsing
- Pydub for audio processing
If you encounter any issues or have questions:
- Check the π Troubleshooting section
- Review the API documentation at
http://localhost:8000/docs - Open an issue on GitHub with detailed error information