import { GoogleGenAI, GenerateVideosOperation } from "@google/genai"; import { NextRequest, NextResponse } from "next/server"; const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY, httpOptions: { headers: { 'User-Agent': 'aistudio-build' } } }); export async function POST(req: NextRequest) { try { const { operationName } = await req.json(); if (!operationName) return NextResponse.json({ error: "Missing operationName" }, { status: 400 }); const op = new GenerateVideosOperation(); op.name = operationName; const updated = await ai.operations.getVideosOperation({ operation: op }); if (!updated.done) { return NextResponse.json({ error: "Not done yet" }, { status: 400 }); } const uri = updated.response?.generatedVideos?.[0]?.video?.uri; if (!uri) { return NextResponse.json({ error: "No video URI found" }, { status: 404 }); } const videoRes = await fetch(uri, { headers: { 'x-goog-api-key': process.env.GEMINI_API_KEY! }, }); return new NextResponse(videoRes.body, { headers: { 'Content-Type': 'video/mp4' }, }); } catch (error: any) { console.error("Video Download Error:", error); return NextResponse.json({ error: error.message }, { status: 500 }); } }