ai-tube / src /app /api /generators /search /getNewMediaInfo.ts
jbilcke-hf's picture
jbilcke-hf HF staff
oh yeah
09a7c47
raw
history blame
No virus
2.28 kB
import { v4 as uuidv4 } from "uuid"
import {
ChannelInfo,
MediaInfo,
} from "@/types/general"
import { defaultChannel } from "./defaultChannel"
export function getNewMediaInfo(params: Partial<MediaInfo> = {}): MediaInfo {
const channel = defaultChannel
const mediaInfo: MediaInfo = {
/**
* UUID (v4)
*/
id: uuidv4(),
/**
* Status of the media
*/
status: "published",
/**
* Human readable title for the media
*/
label: "",
/**
* Human readable description for the media
*/
description: "",
/**
* Content prompt
*/
prompt: "",
/**
* URL to the media thumbnail
*/
thumbnailUrl: "",
/**
* URL to a clap file
*/
clapUrl: "",
assetUrl: "",
/**
* This is contain the storage URL of the higher-resolution content
*/
assetUrlHd: "",
/**
* Counter for the number of views
*
* Note: should be managed by the index to prevent cheating
*/
numberOfViews: 0,
/**
* Counter for the number of likes
*
* Note: should be managed by the index to prevent cheating
*/
numberOfLikes: 0,
/**
* Counter for the number of dislikes
*
* Note: should be managed by the index to prevent cheating
*/
numberOfDislikes: 0,
/**
* When was the media updated
*/
updatedAt: new Date().toISOString(),
/**
* Arbotrary string tags to label the content
*/
tags: Array.isArray(params.tags) ? [
...params.tags,
] : [],
/**
* Model name
*/
model: "SDXL",
/**
* LoRA name
*/
lora: "",
/**
* style name
*/
style: "",
/**
* Music prompt
*/
music: "",
/**
* Voice prompt
*/
voice: "",
/**
* The channel
*/
channel,
/**
* Media duration (in seconds)
*/
duration: 2,
/**
* Media width (eg. 1024)
*/
width: 1024,
/**
* Media height (eg. 576)
*/
height: 576,
/**
* General media aspect ratio
*/
orientation: "landscape",
/**
* Media projection (cartesian by default)
*/
projection: "latent"
}
return mediaInfo
}