# utils.py from flask import request, jsonify from functools import wraps import os from dotenv import load_dotenv load_dotenv() def getenv_bool(name: str, default: bool = False) -> bool: return os.getenv(name, str(default)).lower() in ("yes", "y", "true", "1", "t") API_KEY = os.getenv('API_KEY', 'your_api_key_here') REQUIRE_API_KEY = getenv_bool('REQUIRE_API_KEY', True) def require_api_key(f): @wraps(f) def decorated_function(*args, **kwargs): if not REQUIRE_API_KEY: return f(*args, **kwargs) auth_header = request.headers.get('Authorization') if not auth_header or not auth_header.startswith('Bearer '): return jsonify({"error": "Missing or invalid API key"}), 401 token = auth_header.split('Bearer ')[1] if token != API_KEY: return jsonify({"error": "Invalid API key"}), 401 return f(*args, **kwargs) return decorated_function # Mapping of audio format to MIME type AUDIO_FORMAT_MIME_TYPES = { "mp3": "audio/mpeg", "opus": "audio/ogg", "aac": "audio/aac", "flac": "audio/flac", "wav": "audio/wav", "pcm": "audio/L16" }