- Login check uses /friendships/{ds_user_id}/following/ (works reliably)
- Store own_user_id from cookies to avoid extra API call
- Skip separate user info fetch
- /users/self/info/ for profile info (not /accounts/current_user/)
- /friendships/{user_id}/following/ for followees list
- Added own_user_id fetch before followees
- Better debug logging for response structure
instaloader blocked by Instagram GraphQL 403. Using mobile API instead:
- i.instagram.com/api/v1 endpoints (same as Android app)
- Direct cookie loading from cookies.txt
- Stories, posts, albums, videos
- Random delays between requests
- Removed instaloader dependency, using requests directly
- iPhone Safari user-agent + X-IG-App-ID header
- 2-6s random delay between profile checks
- 1-3s delay between media downloads
- RateController for built-in throttling
- Try/except per followee to not stop on errors
- Add _verify_session() to check profile exists after loading session
- Skip session files from wrong accounts
- Clear cookies before trying next auth method
- Try instaloader session file first
- Then cookies.txt (Mozilla format from browser extension)
- Then cookies.json (from browser extensions)
- Direct login as last resort with clear instructions
- aiogram 3 bot with commands /start /check /status /stop
- InstagramMonitor: periodic check of followees stories and posts
- Docker deployment with docker-compose
- State tracking to avoid duplicate sends
- Auto-cleanup of old media files