File size: 975 Bytes
846ea5b
 
 
903bee0
846ea5b
 
5443f48
846ea5b
 
 
63ac902
846ea5b
 
63ac902
846ea5b
5443f48
 
 
 
 
 
 
 
 
846ea5b
 
 
 
 
 
63ac902
846ea5b
 
 
 
 
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
"use server"

import { ClapProject } from "@aitube/clap"
import { exportClapToVideo as apiExportClapToVideo } from "@aitube/client"

import { getToken } from "./getToken"
import { removeFinalVideos } from "@/lib/utils/removeFinalVideos"

export async function exportClapToVideo({
  clap,
  turbo = false,
}: {
  clap: ClapProject
  turbo?: boolean
}): Promise<string> {

  // TODO move this safety into apiExportClapToVideo

  // one last precaustion, we make sure to we remove any existing render beforehand, as this eats up space
  clap.segments = removeFinalVideos(clap)

  // we have to leave the rest it, however..
  // ours final render needs all the video and audio clips!

  // TODO: maybe we should return a blob instead,
  // as this could be big eg. a few megabytes
  // or maybe we should convert it to an object id
  const dataUri: string = await apiExportClapToVideo({
    clap,
    format: "mp4",
    turbo,
    token: await getToken()
  })

  return dataUri
}