Getting Started¶
Amiibot is a production-ready web scraper and stock notifier for Amiibo. Track multiple retailers and get notified instantly when stock changes occur (In stock, Out of stock, Price change).
🎯 Quick Start¶
# Clone the repository
git clone https://github.com/ecoppen/Amiibot.git
cd Amiibot
# Install dependencies
uv sync
# Configure the bot
cp config/config.example.json config/config.json
# Edit config/config.json with your settings
# Run the bot
python amiibot.py
📋 Requirements¶
Hardware Requirements¶
Minimum: - 512MB RAM - 1GB disk space - Network connection
Recommended: - 1GB+ RAM - 5GB+ disk space - Stable internet connection - 24/7 availability
Supported Platforms¶
- ✅ Linux (Ubuntu, Debian, CentOS, etc.)
- ✅ macOS (10.15+)
- ✅ Windows (10/11)
- ✅ Raspberry Pi (3B+ or newer)
Software Requirements¶
Required: - Python 3.12 or higher - uv (package manager) - Chrome/Chromium (for Selenium)
Optional: - PostgreSQL (for production) - systemd (for service management) - cron (for scheduling)
📦 Installation¶
Method 1: Using uv (Recommended)¶
uv is the fastest and most reliable way to install Amiibot.
# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh
# Clone the repository
git clone https://github.com/ecoppen/Amiibot.git
cd Amiibot
# Install dependencies
uv sync
# The virtual environment is automatically created at .venv/
Method 2: Using pip¶
# Clone the repository
git clone https://github.com/ecoppen/Amiibot.git
cd Amiibot
# Create virtual environment
python -m venv .venv
# Activate virtual environment
source .venv/bin/activate # Linux/macOS
# OR
.venv\Scripts\activate # Windows
# Install dependencies
pip install -e .
Method 3: Development Installation¶
For contributors and developers:
# Clone the repository
git clone https://github.com/ecoppen/Amiibot.git
cd Amiibot
# Install with development dependencies
uv sync --group dev
# Install pre-commit hooks
pre-commit install
⚙️ Configuration¶
Step 1: Create Configuration File¶
Step 2: Basic Configuration¶
Edit config/config.json with your favorite editor:
Minimal configuration example:
{
"database": {
"engine": "sqlite",
"name": "amiibot"
},
"messengers": {
"my_discord": {
"messenger_type": "discord",
"webhook_url": "https://discord.com/api/webhooks/YOUR_WEBHOOK_HERE",
"active": true,
"embedded_messages": true,
"stockists": ["bestbuy.com", "gamestop.com"]
}
}
}
Configuration Validation
Amiibot validates your configuration at startup and will show clear error messages if something is wrong.
Step 3: Database Setup¶
Step 4: Messenger Setup¶
- Go to your Discord server
- Server Settings → Integrations → Webhooks
- Click "New Webhook"
- Choose a channel and copy the webhook URL
- Add to configuration:
- Message @BotFather on Telegram
- Send
/newbotand follow instructions - Copy the bot token
- Send
/startto @userinfobot to get your chat ID - Add to configuration:
Multiple Messengers
You can configure multiple Discord and Telegram messengers with different stockist lists!
🚀 Running the Bot¶
Manual Execution¶
# Activate virtual environment
source .venv/bin/activate # Linux/macOS
# OR
.venv\Scripts\activate # Windows
# Run the bot
python amiibot.py
You should see output like:
2026-02-17 10:00:00 - root - INFO - config/config.json loaded
2026-02-17 10:00:00 - root - INFO - sqlite loaded
2026-02-17 10:00:00 - root - INFO - database tables loaded
2026-02-17 10:00:00 - root - INFO - discord_main setup to send messages to Discord
2026-02-17 10:00:00 - root - INFO - Now tracking bestbuy.com
2026-02-17 10:00:00 - root - INFO - Now scraping 1 site(s): Best Buy US
2026-02-17 10:00:00 - root - INFO - Starting scraper...
Scheduled Execution (Cron)¶
For automatic execution every 30 minutes:
# Edit crontab
crontab -e
# Add this line
*/30 * * * * cd /path/to/Amiibot && /path/to/Amiibot/.venv/bin/python amiibot.py >> /path/to/Amiibot/cron.log 2>&1
Finding Python Path
Using the Runner Script¶
The repository includes a convenient runner script:
🔍 Verification¶
Check Logs¶
Check Database¶
# For SQLite
sqlite3 amiibot.db "SELECT COUNT(*) FROM amiibo_stock;"
# For PostgreSQL
psql -U amiibot_user -d amiibot -c "SELECT COUNT(*) FROM amiibo_stock;"
Test Notification¶
After first run, you should receive notifications for any amiibo currently in stock!