SentimentBot is an open-source tool that tracks public sentiment across Reddit, News articles, and YouTube to help you analyze the mood around stocks, crypto, and commodities.
Built with:
praw(Reddit API)vaderSentimentfor NLPboto3,pandas,requests- Optional: AWS S3, Secrets Manager, Railway
SentimentBot fetches real-time content related to financial assets and runs sentiment analysis:
| Source | What It Fetches |
|---|---|
Post titles from /r/stocks, etc. |
|
| 🟡 News | Headlines via NewsAPI |
| 🔵 YouTube | Video titles via YouTube API |
Using VADER, it assigns a sentiment score to each title, and stores:
- ✅ Daily average sentiment per asset
- 🚨 Alerts for extreme sentiment spikes/drops
- 🗃️ Full logs for backtesting, dashboards, or signals
Whether you're a beginner or building an institutional-grade pipeline, you can choose the level that fits you:
| Level | Folder | Setup Description | Best For |
|---|---|---|---|
| 🟢 Basic | basic/ |
Local script using config.json |
Beginners, learners |
| 🟡 Intermediate | intermediate/ |
Scheduled runs via Railway + AWS S3 | Indie devs, analysts |
| 🔴 Advanced | advanced/ |
Full AWS Secrets Manager, secure deployments | Funds, quant teams, pros |
Each version contains its own main.py — just plug in your config and run!
Once you deploy the intermediate version to Railway, you can schedule it to run automatically every hour or every day:
- Go to your project dashboard on Railway
- Navigate to Settings → Cron Jobs
- Click “Add Cron Job”
- Use these values:
| Field | Value |
|---|---|
| Name | Run Sentiment Bot |
| Command | python intermediate/main.py |
| Schedule | 0 7 * * * (daily at 7AM UTC) or 0 * * * * (every hour) |
Once saved, Railway will automatically run your sentiment analysis on the schedule you define. No server needed. No manual steps.
You can monitor logs, failures, and results directly in the Railway dashboard — ideal for hands-off market monitoring!
pip install -r requirements.txt