import os
import getpass
import asyncio
from blinkpy.blinkpy import Blink
from blinkpy.auth import Auth, BlinkTwoFARequiredError

# --- CONFIG ---
DOWNLOAD_DIR = "blink_downloads"
START_DATE = "2025/01/01"
DL_DELAY = 2

async def main():
    # Prompt for credentials
    username = input("Enter your Blink username (email): ")
    password = getpass.getpass("Enter your Blink password: ")

    # Initialize Blink system
    blink = Blink()
    auth = Auth({"username": username, "password": password}, blink)

    # Login (will request 2FA if needed)
    blink.auth = auth
    try:
        await blink.start()
    except BlinkTwoFARequiredError:
        await blink.prompt_2fa()

    # Ensure download directory exists
    os.makedirs(DOWNLOAD_DIR, exist_ok=True)

    await blink.download_videos(DOWNLOAD_DIR, since=START_DATE, delay=DL_DELAY)

    print("Download complete.")
    return blink

blink = asyncio.run(main())
