A powerful news and social media summarization tool that converts text content into audio summaries.
NewsNinja is an innovative application that aggregates content from news sources and Reddit, processes it using AI, and converts it into concise audio summaries. Perfect for staying informed while on the go!
- 🎯 Topic-based content filtering
- 🌐 Multiple data sources:
- News articles
- Reddit discussions
- Combined sources
- 🎙️ Text-to-Speech conversion
- 📱 User-friendly web interface
- ⬇️ Downloadable audio summaries
The application consists of several key components:
frontend.py: Streamlit-based web interfacebackend.py: Main API servernews_scraper.py: News articles fetching modulereddit_scraper.py: Reddit content scraping modulemodels.py: Data models and structuresutils.py: Utility functions and helpers
- Python 3.8+
- pipenv (for dependency management)
- Internet connection for fetching news and Reddit content
- Clone the repository:
git clone [repository-url]
cd newsninja- Install dependencies using pipenv:
pipenv install- Activate the virtual environment:
pipenv shellMake sure to set up the following before running the application:
-
Backend server configuration in
frontend.py:- Default:
http://localhost:1234 - Update port if needed
- Default:
-
Ensure the
audio/directory exists for storing generated audio files
- Start the backend server:
python backend.py- In a new terminal, launch the frontend:
streamlit run frontend.py- Access the web interface at
http://localhost:8501
- Select your preferred data source (News, Reddit, or Both) from the sidebar
- Enter a topic you want to analyze
- Click the "Generate Summary" button
- Wait for the audio summary to be generated
- Play the audio directly in the browser or download it for later
newsninja/
├── frontend.py # Streamlit web interface
├── backend.py # API server and main logic
├── models.py # Data models
├── news_scraper.py # News fetching module
├── reddit_scraper.py# Reddit content scraper
├── utils.py # Utility functions
├── Pipfile # Dependencies
├── Pipfile.lock # Locked dependencies
└── audio/ # Generated audio files
Feel free to:
- Report bugs
- Suggest new features
- Submit pull requests
This project is licensed under the MIT License - see the LICENSE file for details.
- [Your Name/Team Name]
- Built with Streamlit
- Powered by Python
- Uses various news APIs and Reddit's API