Speed Modes¶
InstaHarvest v2 provides 4 speed modes that control concurrency, delays, and rate limiting.
Overview¶
| Mode | Concurrency | Delay | Rate/min | Burst | Use Case |
|---|---|---|---|---|---|
π’ safe |
5 | 0.8-2.0s | 30 | 3 | Personal account, ban-proof |
β‘ fast |
15 | 0.2-0.8s | 60 | 8 | Moderate scraping |
π turbo |
50 | 0.05-0.3s | 120 | 20 | Heavy scraping + proxies |
βΎοΈ unlimited |
1000 | 0s | β | 1000 | Anonymous bulk scraping |
Usage¶
Speed modes are async-only
The mode parameter is available only on AsyncInstagram. Sync Instagram always uses safe mode internally.
import asyncio
from instaharvest_v2 import AsyncInstagram
async def main():
# Safe β default, ban-proof
async with AsyncInstagram.from_env(mode="safe") as ig:
user = await ig.users.get_by_username("nike")
# Fast β 3x faster
async with AsyncInstagram.from_env(mode="fast") as ig:
user = await ig.users.get_by_username("nike")
# Turbo β 10x faster with proxies
async with AsyncInstagram.from_env(mode="turbo") as ig:
ig.add_proxies(["http://p1:8080", "http://p2:8080"])
user = await ig.users.get_by_username("nike")
# Unlimited β anonymous, no limits
async with AsyncInstagram.anonymous(unlimited=True) as ig:
profile = await ig.public.get_profile("nike")
asyncio.run(main())
SpeedMode Parameters¶
from instaharvest_v2.speed_modes import SpeedMode
# Each mode is a frozen dataclass:
SpeedMode(
name="safe",
max_concurrency=5, # Max parallel requests
delay_range=(0.8, 2.0), # Random delay between requests
rate_per_minute=30, # Token bucket rate limit
burst_size=3, # Fast requests before delay
proxy_multiplier=3.0, # +N concurrency per proxy
error_backoff=2.0, # Delay multiplier on errors
)
Proxy Scaling¶
When proxies are added, concurrency scales automatically:
| Mode | No proxy | 2 proxies | 5 proxies | 10 proxies |
|---|---|---|---|---|
safe |
5 | 11 | 20 | 35 |
fast |
15 | 25 | 40 | 65 |
turbo |
50 | 70 | 100 | 150 |
unlimited |
1000 | 1000 | 1000 | 1000 |
Hard cap
Proxy-based scaling has a hard cap of 200 concurrent requests (except unlimited).
Error Escalation¶
Speed modes include automatic error handling:
- Rate limit (429) β Escalation level +2
- Challenge/Checkpoint β Escalation level +3
- Other errors β Escalation level +1
- Success (30s streak) β Escalation level -1
Each escalation level increases delays by 30%.