apix/app/api/video/generate/route.ts
Khoa.vo 8741e3b89f
Some checks are pending
CI / build (18.x) (push) Waiting to run
CI / build (20.x) (push) Waiting to run
feat: Initial commit with multi-provider image generation
2026-01-05 13:50:35 +07:00

47 lines
1.5 KiB
TypeScript

import { NextRequest, NextResponse } from 'next/server';
import { WhiskClient } from '@/lib/whisk-client';
export async function POST(req: NextRequest) {
try {
const { prompt, imageBase64, imageGenerationId, cookies: clientCookies } = await req.json();
if (!prompt) {
return NextResponse.json({ error: 'Missing prompt' }, { status: 400 });
}
// Get cookies from request or use provided cookies
const cookieString = clientCookies || req.cookies.get('whisk_cookies')?.value;
if (!cookieString) {
return NextResponse.json(
{ error: "Whisk cookies not found. Please configure settings." },
{ status: 401 }
);
}
console.log(`[Video API] Generating video for prompt: "${prompt.substring(0, 50)}..."`);
const client = new WhiskClient(cookieString);
// Generate video using WhiskClient
// Pass imageGenerationId if available, otherwise pass base64 to upload first
const result = await client.generateVideo(
imageGenerationId || '',
prompt,
imageBase64
);
return NextResponse.json({
success: true,
id: result.id,
url: result.url,
status: result.status
});
} catch (error: any) {
console.error("Video Generation API failed:", error);
return NextResponse.json({
error: error.message || 'Video generation failed'
}, { status: 500 });
}
}