Download Configuration
0 CamerasDownload Status
Activity Log
Blinkpy Bulk Downloader Guide
Everything you need to know about downloading historical Blink clips, 2FA, rate limiting, and local storage.
🔐 Authentication & 2FA
Blink uses OAuth 2.0 with Two-Factor Authentication. When you log in with your email and password:
- Blink will send a 6-digit PIN to your phone (SMS) or email address.
- Enter the PIN in the 2FA prompt modal to finish connecting.
- Your session token is saved locally to
blink_session.jsonso you don't need to re-enter your password or 2FA next time!
⚡ Overcoming the 10-Page Limit
In the standard blinkpy library, download_videos() defaults to stopping after only 10 pages (~250 clips) and only checks the last 30 seconds if no date is specified!
- Our downloader queries from epoch 0 (or your selected date range).
- It continuously paginates until no more clips exist, ensuring your complete video history is retrieved.
⏱️ Rate Limiting & Throttling
Blink aggressively rate limits accounts that make rapid automated requests:
- A delay of 1.5 to 2.5 seconds between clip downloads is community-recommended.
- If Blink returns HTTP 429 (Too Many Requests), our engine automatically applies exponential backoff and retries safely.
💾 Cloud vs. Sync Module 2 USB Storage
Blink saves videos either to Cloud Subscription or Local USB Storage:
- Cloud Subscription (Plus/Basic): Downloaded directly via Blink's cloud video endpoints.
- Sync Module 2 Local USB Storage: Downloaded by requesting the Sync Module to upload the clip manifest and stream each file. Both storage types are supported seamlessly.
🔄 Pause, Resume & Persistent Ledger
You can pause and resume downloads at any time, even across sessions:
- The app maintains a persistent ledger (
.blink_download_manifest.json) inside your destination folder tracking all completed clips. - Pause / Resume: Hit Pause during a download to hold progress safely, and click Resume when you're ready to proceed.
- New Sessions: If you close the app or return days later, the ledger remembers which clips are already completed and skips them instantly.
- Redownload Everything: Need a fresh copy of everything? Click the Redownload Everything button to bypass the ledger and force-download all clips.
💻 Headless CLI Mode
Prefer running via the command line or scheduled cron jobs?
# Run interactively in the terminal:
./run.sh --cli
# Or run with custom arguments:
./venv/bin/python main.py --cli --dest ~/BlinkClips --since 2024-01-01 --delay 2