This project contains two image downloading applications that use environment variables for configuration:
pixels.py- Downloads nature images from Pexels APIapp.py- Downloads cat images from The Cat API
-
Install dependencies:
pip install -r requirements.txt
-
Configure environment variables:
cp .env.example .env
Then edit
.envwith your actual API keys.
PEXELS_API_KEY- Your Pexels API key (required)PEXELS_BASE_URL- Pexels API endpoint (default: https://api.pexels.com/v1/curated)PEXELS_MAX_IMAGE- Number of images to download (default: 10)PEXELS_SAVE_DIR- Directory to save images (default: natures)
CAT_API_KEY- Your Cat API key (required)CAT_BASE_URL- Cat API endpoint (default: https://api.thecatapi.com/v1/images/search)CAT_MAX_IMAGE- Number of images to download (default: 10)CAT_SAVE_DIR- Directory to save images (default: cats)CAT_SEMAPHORE_LIMIT- Concurrent request limit (default: 10)
python pixels.pypython app.py- Environment-based configuration - All settings managed through
.envfile - Async/await support - Concurrent downloads for better performance
- Error handling - Retry logic with exponential backoff
- Flexible file naming - Supports multiple image formats
- Directory management - Automatically creates output directories
- API keys are stored in environment variables
.envfile is gitignored to prevent accidental commits- Use
.env.exampleas a template for required variables