DocDoeAI / src /lib /api /video.ts
asnannp's picture
deploy: sync backend to Space root (learn-lesson HF cache fix)
65d68f5
Raw History Blame Contribute Delete
2.08 kB
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;