A reliable Python script to download all your DeviantArt favorites using the official DeviantArt API with OAuth 2.0 authentication.
- ✅ Official API - Uses DeviantArt's official API (no web scraping!)
- 🔐 OAuth 2.0 Authentication - Secure, authorized access
- 📥 Full Collection Download - Downloads all your favorites with pagination
- 🖼️ High Quality Media - Gets the best available resolution for images and videos
- 🎬 Video Support - Downloads MP4, WebM, MOV, and other video formats
- 📊 Progress Tracking - Shows download progress and summary
- 🛡️ Rate Limited - Respectful to DeviantArt's servers
- 💾 Token Persistence - Saves authentication for future runs
pip install requests
- Go to DeviantArt Developer Portal
- Click "Register Application"
- Fill in the form:
- Application Name:
My Favorites Downloader
- Description:
Personal tool to download my DeviantArt favorites
- Redirect URI:
http://localhost:8080/callback
- Application Name:
- Save your Client ID and Client Secret
python api_downloader.py
The script will guide you through:
- OAuth application setup
- Browser-based authentication
- Automatic downloading of all favorites
Downloaded media files are saved to DeviantArt_API_Downloads/
with descriptive filenames:
{artist}_{title}_{deviation_id}.{extension}
Supported formats:
- Images: JPG, PNG, GIF, WebP
- Videos: MP4, WebM, MOV, AVI, MKV, FLV, M4V, WMV
- OAuth Setup: Registers your application with DeviantArt
- Authentication: Opens browser for secure login and authorization
- Token Management: Saves access tokens for future use
- Collection Fetch: Uses
/collections/all
API endpoint with pagination - Download: Gets highest quality images available for each favorite
In testing, the downloader achieved a 99.7% success rate (1,141 out of 1,145 favorites downloaded successfully). Failed downloads are typically due to:
- Deleted content
- Premium/restricted access content
- Network timeouts
See API_SETUP_GUIDE.md for:
- Detailed setup instructions
- Troubleshooting tips
- API documentation links
- OAuth flow explanation
- Uses official DeviantArt OAuth 2.0 flow
- Tokens are stored locally in
deviantart_tokens.json
- No credentials are hardcoded or transmitted insecurely
- Respects DeviantArt's rate limits and terms of service
Feature | Web Scraping | Official API |
---|---|---|
Reliability | ❌ Breaks with site changes | ✅ Stable interface |
Authentication | ❌ Cookie-based, fragile | ✅ OAuth 2.0, secure |
Rate Limiting | ❌ Manual implementation | ✅ Built-in respect |
Content Access | ❌ Limited by restrictions | ✅ Proper access levels |
Image Quality | ❌ Often just previews | ✅ Best available quality |
Maintenance | ❌ Requires constant updates | ✅ Self-maintaining |
- Python 3.6+
requests
library- DeviantArt account
- Registered OAuth application
This project successfully downloaded 1,141 high-quality media files from a large DeviantArt favorites collection, including:
- Full-resolution images (when available)
- High-quality videos in various formats
- Animated GIFs
- High-quality previews for restricted content
- Proper file naming and organization
This is a personal tool, but feel free to fork and adapt for your needs!
Apache-2.0 license - Feel free to use and modify as needed.