A hard drive price aggregator that scrapes prices from multiple sources and generates a static HTML comparison page. Perfect for finding the best deals on external HDDs for shucking.
- Multi-source scraping: Aggregates prices from shucks.top and diskprices.com
- Price per TB calculations: Automatically calculates and displays $/TB for easy comparison
- Best deal highlights: Shows the best available price for each capacity tier
- Color-coded pricing: Visual indicators for deal quality based on $/TB
- Automatic updates: GitHub Actions workflow updates prices every 12 hours
- Static hosting: Deploy for free on GitHub Pages
- Python 3.12+
- uv (Python package manager)
Install uv:
# Linux/macOS
curl -sSL https://install.uv.sh | bash
# macOS with Homebrew
brew install uv# Clone the repository
git clone https://github.com/yourusername/shuck-stop.git
cd shuck-stop
# Install dependencies
uv syncRun the scraper and generate the HTML:
uv run python main.pyThe output will be generated at docs/index.html.
To test locally, you can serve the generated HTML:
# Python's built-in server
uv run python -m http.server --directory docs 8000Then open http://localhost:8000 in your browser.
- Push your code to GitHub
- Go to repository Settings → Pages
- Set Source to "Deploy from a branch"
- Select the
masterbranch and/docsfolder - Save
The GitHub Actions workflow will automatically update prices every 12 hours.
You can manually trigger an update:
- Go to Actions tab in your repository
- Select "Update Prices" workflow
- Click "Run workflow"
shuck_stop/
├── main.py # Main entry point
├── scrape_shucks.py # Scraper for shucks.top
├── scrape_diskprices.py # Scraper for diskprices.com
├── generate_html.py # HTML generator
├── docs/
│ └── index.html # Generated output (for GitHub Pages)
├── .github/
│ └── workflows/
│ └── update-prices.yml # Scheduled update workflow
├── scripts/
│ └── check-uv.sh # Preflight check script
├── pyproject.toml # Project configuration
├── uv.lock # Lock file
└── README.md
Based on the shucks.top scale where $17/TB is average and $15/TB is ideal:
| $/TB Range | Grade | Meaning |
|---|---|---|
| ≤$12 | 🔥 Excellent | Incredible deal - buy immediately |
| ≤$13 | 💸 Great | Great price |
| ≤$15 | ✅ Good | Good deal |
| ≤$17 | ➖ Fair | Fair/average price |
| ≤$20 | Below average | |
| >$20 | ❌ Bad | Overpriced |
- shucks.top: WD external drive price tracker with historical data
- diskprices.com: Aggregated disk prices from Amazon
MIT License - see LICENSE file for details.
- shucks.top for the original price tracking
- diskprices.com for Amazon price data
- The r/DataHoarder community for inspiring this project