Automated monitoring tool that tracks upcoming campaigns on Binance Thailand and sends real-time notifications to Telegram when new campaigns are about to start.
Never miss out on Binance Thailand campaigns again! This bot automatically checks for new campaigns with "เร็วๆ นี้" (Coming Soon) status and alerts you instantly via Telegram.
- 🔍 Automatic Campaign Detection - Monitors Binance TH campaign page for upcoming campaigns
- ⚡ Real-time Notifications - Instant Telegram alerts when new campaigns are found
- 📊 Detailed Information - Extracts campaign title, description, and countdown timer
- 🤖 Headless Browser - Uses Playwright for reliable scraping of dynamic content
- ⏰ GitHub Actions Support - Can run automatically on a schedule (optional)
- 🔔 Smart Reminders - Automatic reminders at 1 hour, 15 minutes, 5 minutes, and 1 minute before start (plus heartbeat updates while campaigns remain pending)
- Python 3.7+
- Telegram Bot (for notifications)
- Playwright browsers installed
git clone https://github.com/agehcx/CampaignChecker.git
cd CampaignCheckerpip3 install -r requirements.txtplaywright install chromiumCreate a .env file in the project root:
TELEGRAM_BOT_TOKEN=your_bot_token_here
TELEGRAM_CHAT_ID=your_chat_id_hereHow to get these credentials:
- See SETUP_TELEGRAM.md for detailed instructions
- Bot Token: Create a bot with @BotFather
- Chat ID: Get your ID from @userinfobot
python3 monitor_binance_th.pyWhen a campaign is found, you'll receive a Telegram message like:
🚨 Binance TH Campaign Monitor
✅ Status: FOUND
⏰ Time: 2025-10-07 18:08:16
📊 Found 1 campaign(s)
━━━━━━━━━━━━━━━━━━━
🎯 Campaign 1
📌 WLFI Learn to Earn
⏳ เริ่มใน: 0D 17H 55M 26S
💬 ทำความเข้าใจกับ WLFI ได้ง่ายๆ แล้วร่วมกิจกรรมง่าย ๆ
ลุ้นรับรางวัลเมื่อทำครบตามเงื่อนไข...
🔘 Status: เร็วๆ นี้
━━━━━━━━━━━━━━━━━━━
🔗 https://www.binance.th/th/campaign/list
| Variable | Description | Required |
|---|---|---|
TELEGRAM_BOT_TOKEN |
Your Telegram bot token from BotFather | Yes |
TELEGRAM_CHAT_ID |
Your Telegram chat/channel ID | Yes |
CAMPAIGN_STATE_PATH |
Path to store campaign state JSON (optional) | No |
The state file keeps track of which campaigns have already triggered the initial alert and each reminder threshold (1h/15m/5m/1m). When running locally you can keep it for persistent reminders. When running on GitHub Actions the workspace is ephemeral, so reminders still work because the monitor evaluates the countdown on every run, but the state file is recreated each time.
Edit monitor_binance_th.py to customize:
# Change the search keyword (default: "เร็วๆ นี้")
SEARCH_TEXT = "เร็วๆ นี้"
# Change the target URL
URL = "https://www.binance.th/th/campaign/list"
# Adjust reminder schedule (label, time delta)
REMINDER_THRESHOLDS = (
("1m", timedelta(minutes=1)),
("5m", timedelta(minutes=5)),
("15m", timedelta(minutes=15)),
("1h", timedelta(hours=1)),
)Want to run this automatically at 11pm, 3am, 7am, 11am, 3pm, and 7pm (UTC)? The repository includes a GitHub Actions workflow:
-
Fork this repository
-
Add Repository Secrets:
- Go to:
Settings→Secrets and variables→Actions - Add these secrets:
TELEGRAM_BOT_TOKENTELEGRAM_CHAT_ID
- Go to:
-
Enable GitHub Actions:
- Go to
Actionstab - Enable workflows
- Go to
The monitor will now run automatically at the scheduled six times each day and notify you when campaigns are found!
The workflow caches campaign_state.json between runs so reminders stay in sync. If you prefer to reset reminders on every run, remove the cache step from .github/workflows/monitor.yml or delete the campaign-state-* caches from the workflow settings.
CampaignChecker/
├── monitor_binance_th.py # Main monitoring script
├── requirements.txt # Python dependencies
├── .env # Environment variables (create this)
├── .gitignore # Git ignore rules
├── README.md # This file
├── SETUP_TELEGRAM.md # Telegram setup guide
└── .github/
└── workflows/
└── monitor.yml # GitHub Actions workflow
If you see this error:
BrowserType.launch: Executable doesn't exist at /path/to/chromium
Solution: Install Playwright browsers:
playwright install chromium- Check if
.envfile exists with correct credentials - Verify bot token is valid: Message @BotFather
- Ensure you've started a chat with your bot
- Check console output for error messages
- The script looks for the Thai text "เร็วๆ นี้" (Coming Soon)
- Binance TH may have changed their HTML structure
- Check the console output for the HTML length to verify it's loading
View full HTML content:
# In monitor_binance_th.py, add this after fetching HTML:
print(html[:1000]) # Print first 1000 charactersComment out the notification calls:
# await notify_telegram(msg)- Fetch Page - Uses Playwright to load the Binance TH campaign page with a real browser
- Wait for Content - Waits for dynamic content to load completely
- Parse HTML - Extracts campaign details using BeautifulSoup
- Check Status - Looks for campaigns with "เร็วๆ นี้" (Coming Soon) status
- Send Alerts - Sends formatted notifications to Telegram with all campaign details
Contributions are welcome! Feel free to:
- Report bugs
- Suggest new features
- Submit pull requests
This project is open source and available under the MIT License.
This tool is for personal use only. Please respect Binance's terms of service and rate limits. The author is not responsible for any misuse of this tool.
- Run the script manually first to test before setting up automation
- Use a dedicated Telegram channel for campaign notifications
- Consider running this on a VPS for 24/7 monitoring
- Check the script periodically as Binance may update their website structure
If you encounter any issues or have questions:
- Open an issue on GitHub
- Check SETUP_TELEGRAM.md for Telegram setup help
Built with ❤️ for the Binance TH community
Never miss a campaign again! 🚀