76de7c7a3a
Route transcript fetching through YOUTUBE_PROXY or Webshare residential config, with clearer errors when YouTube still blocks requests. Co-authored-by: Cursor <cursoragent@cursor.com>
31 lines
1005 B
Python
31 lines
1005 B
Python
from __future__ import annotations
|
|
|
|
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8", extra="ignore")
|
|
|
|
app_pin: str = "1234"
|
|
jwt_secret: str = "dev-secret-change-me"
|
|
jwt_expire_days: int = 90
|
|
|
|
openrouter_api_key: str = ""
|
|
openrouter_model: str = "google/gemini-2.5-flash"
|
|
|
|
db_path: str = "data/ytrecap.sqlite"
|
|
public_dir: str = "public"
|
|
app_url: str = "http://localhost:8000"
|
|
app_version: str = "1.0.0"
|
|
|
|
# YouTube transcript proxy (optional — for IP blocks)
|
|
# Single URL used for HTTP+HTTPS, e.g. http://user:pass@host:port
|
|
youtube_proxy: str = ""
|
|
# Webshare rotating residential (paid package — NOT free "Proxy Server" tier)
|
|
webshare_proxy_username: str = ""
|
|
webshare_proxy_password: str = ""
|
|
webshare_proxy_locations: str = "" # comma-separated, e.g. de,es
|
|
|
|
|
|
settings = Settings() # type: ignore[call-arg]
|