A Discord bot that tracks and displays the latest news from prominent news websites across USA, UK, and European countries.
- 📰 Multi-Region News: Fetches news from USA, UK, and European news sources
- 🔄 Multiple Sources: Integrates with RSS feeds and NewsAPI
- 🎯 Popular Outlets: Coverage from BBC, CNN, Reuters, The Guardian, AP News, and more
- ⏰ Auto-Refresh: Automatically caches news every hour
- 🎨 Rich Embeds: Beautiful Discord embeds with article information
- 🔍 Regional Filtering: Get news specific to each region
- New York Times
- BBC News World
- NBC News
- Fox News
- The Guardian (World)
- Vox
- Reuters
- AP News
- The Independent
- The Telegraph
- Sky News
- The Guardian UK
- Daily Mirror
- The Sun
- BBC UK
- Metro
- The Guardian (Europe)
- France24
- Politico EU
- RTE News (Ireland)
- BBC Europe
- Euractiv
- Deutsche Welle (DW)
- ANSA (Italy)
- CBC News (Canada)
Total: 25+ verified working news sources with 500+ articles daily
- Python 3.8 or higher
- Discord Bot Token
- NewsAPI key (optional but recommended)
-
Clone/Create the project directory
cd "Discord News Bot"
-
Install dependencies
pip install -r requirements.txt
-
Create a
.envfile- Copy
.env.exampleto.env - Fill in your Discord bot token:
DISCORD_TOKEN=your_bot_token_here DISCORD_CHANNEL_ID=your_channel_id_here NEWS_API_KEY=your_newsapi_key_here
- Copy
-
Get Your Discord Bot Token
- Go to Discord Developer Portal
- Create a new application
- Go to "Bot" section and create a bot
- Copy the token to your
.envfile
-
Get NewsAPI Key (Optional)
- Visit NewsAPI.org
- Sign up for a free account
- Copy your API key to
.envfile
-
Run the bot
python main.py
!news usa- Get latest news from USA!news uk- Get latest news from UK!news europe- Get latest news from Europe!news all- Get latest news from all regions!help- Show available commands
Discord News Bot/
├── main.py # Main bot entry point
├── requirements.txt # Python dependencies
├── .env # Environment configuration (create from .env.example)
├── .env.example # Example environment file
├── bot/
│ ├── __init__.py
│ └── cogs/
│ ├── __init__.py
│ └── news.py # News commands and scheduling
├── news_sources/
│ ├── __init__.py
│ └── fetcher.py # News fetching logic
└── utils/
├── __init__.py
└── embeds.py # Discord embed formatting
DISCORD_TOKEN(required): Your Discord bot tokenDISCORD_CHANNEL_ID(optional): Channel ID for auto-posting newsNEWS_API_KEY(optional): NewsAPI key for additional news sourcesBOT_PREFIX(default:!): Command prefixNEWS_FETCH_INTERVAL(default: 3600): Interval in seconds to fetch newsLOG_LEVEL(default: INFO): Logging level
- ✅ Multi-region news fetching
- ✅ RSS feed integration
- ✅ NewsAPI integration
- ✅ Duplicate removal
- ✅ Discord embeds with article metadata
- Auto-posting to designated channels
- Custom keyword filtering
- Per-guild settings
- Database caching
- Article categorization
- Reaction-based navigation
- Verify your
DISCORD_TOKENis correct - Check that the bot has permission to access the channel
- Ensure your internet connection is stable
- Check that RSS feeds are accessible
- If using NewsAPI, verify your API key is valid
- Check the logs for error messages
- Reduce the
NEWS_FETCH_INTERVALvalue - Use fewer news sources
- Space out manual news fetches
This project is provided as-is for educational and personal use.
For issues or feature requests, please check the bot logs and verify all configuration values are correct.