from fastapi import FastAPI, HTTPException from pydantic import BaseModel import uvicorn from metaai_api import MetaAI app = FastAPI(title="Silent Tech Meta Video Generator") # Your Exact Cookies META_COOKIES = { "datr": "Wv2jaWio7_2h3E0yZB5fbz3s", "dpr": "3", "ecto_1_sess": "e58541eb-55fd-4367-b630-853bf41e7a17.v1%3AAdHoLa7Vo-ZY5ezFMfr7_hitC5upsHNSEjEYsayZNUo0nKpTJSOlcNcCu9-BWterAZBeapJ-V9Vb4dlcHNHoGFgHvdJgA_OKomecN6VPJfUTH06OciWEHRc4YyAXnHIXfVVWw7Wg9qr2ULdSgFz9H9LNJL5YOX4nVyxjXTqiiBb-38E78QU6py5EafxSqBq1wSrRF3gQWALxF9RLMSPUALiZ9UmsWsvo6vP_xm0Pn9hp8IiYoAcleZozzwlePWaW0mwTTOc5H_UQ0xwqvb0ntBulIeDP8lt7raYOzG7buhWH1rnkfM12ntcU7DwsljjxBVKn7U4B3cDd8w6II-gwFpwndPgQS_jaPkAyDkfS8FMJH6r2X3hoFEuhWG6jLGsz3mtlxuA0X8J3_Z5NIsBKQ3NOwa5NjMSePkk0OkIwBsajX8MylhpqSkqhFqlj801_bn-ew7BnUI2bBOhojD9i28SQwFgWoWvuEaiKSH3z2A4RN3P_mzD0poAP7czXDQA%3AHQBFsl4Dw3bWUvc4%3A7XYmm8AF1efOtD6bQTI90A.Od_wAJscdmt3QR1D_v0INxAw5VPwMTQQSKxL9Rk_xoI", "rd_challenge": "Q_6hBQMc98dAqeBJVgVSShGkptT5sw8jm-GX08RULgqOBAwvOuquZJXo69k9un17x1s-EDkHPtPePFTIadnpmqwNhYe-gggaMLCkU5zE", "wd": "360x728", "abra_sess": "dummy_value" } # 🟢 THE FIX: A reliable public proxy to bypass Meta IP blocking # We use a standard US proxy so Meta doesn't realize it's a Hugging Face server. PROXY_DICT = { "http": "http://18.212.164.214:80", "https": "http://18.212.164.214:80" } class VideoRequest(BaseModel): prompt: str @app.post("/video") def generate_meta_video(req: VideoRequest): if not req.prompt: raise HTTPException(status_code=400, detail="Prompt is required") try: # 🟢 Pass the proxy to MetaAI so it connects securely ai = MetaAI(cookies=META_COOKIES, proxy=PROXY_DICT) result = ai.generate_video_new(req.prompt) if result and isinstance(result, dict) and result.get("success") and result.get("video_urls"): return {"success": True, "video_urls": result["video_urls"]} else: return {"success": False, "error": result.get("error", "Meta AI refused to generate this prompt.")} except Exception as e: print(f"Meta AI Error: {str(e)}") raise HTTPException(status_code=500, detail=str(e)) @app.get("/") def home(): return {"status": "Silent Tech Meta Video Generator is Online"} if __name__ == "__main__": uvicorn.run(app, host="0.0.0.0", port=7860)