File size: 2,083 Bytes
65d68f5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | import { apiGet, apiPost } from "@/lib/api/client";
import type {
GenerateAudioRequest,
GenerateAudioResponse,
RenderFinalVideoRequest,
RenderFinalVideoResponse,
StudyVideoJobRequest,
StudyVideoJobResponse,
StudyVideoPreviewResponse,
VideoRenderJob,
VideoRenderListResponse,
VideoRenderRequest,
VideoRenderStatusResponse,
VideoScenePlanRequest,
VideoScenePlanResponse,
} from "@/lib/api/types";
export async function createVideoScenePlan(payload: VideoScenePlanRequest) {
return apiPost<VideoScenePlanResponse, VideoScenePlanRequest>(
"/video/scene-plan",
payload,
{ timeoutMs: 60000 },
);
}
export async function generateVideoAudio(payload: GenerateAudioRequest) {
return apiPost<GenerateAudioResponse, GenerateAudioRequest>(
"/video/generate-audio",
payload,
{ timeoutMs: 300000 },
);
}
export async function renderFinalVideo(payload: RenderFinalVideoRequest) {
return apiPost<RenderFinalVideoResponse, RenderFinalVideoRequest>(
"/video/render-final",
payload,
{ timeoutMs: 120000 },
);
}
export async function createVideoRenderJob(payload: VideoRenderRequest) {
return apiPost<VideoRenderJob, VideoRenderRequest>(
"/video/render-jobs",
payload,
{ timeoutMs: 60000 },
);
}
export async function createStudyVideoJob(payload: StudyVideoJobRequest) {
return apiPost<StudyVideoJobResponse, StudyVideoJobRequest>(
"/video/study-video-jobs",
payload,
{ timeoutMs: 60000 },
);
}
export async function renderStudyVideoPreview(jobId: string) {
return apiPost<StudyVideoPreviewResponse, Record<string, never>>(
`/video/study-video-jobs/${jobId}/render-preview`,
{},
{ timeoutMs: 60000 },
);
}
export async function getVideoRenderJob(jobId: string) {
return apiGet<VideoRenderStatusResponse>(`/video/render-jobs/${jobId}`);
}
export async function listVideoRenderJobs(limit = 20) {
return apiGet<VideoRenderListResponse>(`/video/render-jobs?limit=${limit}`);
}
export const getVideoJob = getVideoRenderJob;
export const listVideoJobs = listVideoRenderJobs;
|