Initial open-source self-hosted Songs2YT edition
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
import { Privacy } from "@prisma/client";
|
||||
|
||||
export type ItemMetadata = {
|
||||
title: string;
|
||||
description: string;
|
||||
tags: string;
|
||||
privacy: Privacy;
|
||||
categoryId: string;
|
||||
resolution: string;
|
||||
notifySubscribers: boolean;
|
||||
madeForKids: boolean;
|
||||
embeddable: boolean;
|
||||
creativeCommons: boolean;
|
||||
includeWatermark: boolean;
|
||||
/** YouTube playlist ID (Pro only). Video is added after upload. */
|
||||
playlistId?: string | null;
|
||||
};
|
||||
|
||||
export type UploadedAudio = {
|
||||
path: string;
|
||||
filename: string;
|
||||
metadata: ItemMetadata;
|
||||
};
|
||||
|
||||
export type CreatePlaylistRequest = {
|
||||
title: string;
|
||||
description?: string;
|
||||
privacy?: "public" | "unlisted" | "private";
|
||||
};
|
||||
|
||||
export type CreateJobPayload = {
|
||||
imagePath: string;
|
||||
items: Array<{
|
||||
audioPath: string;
|
||||
audioFilename: string;
|
||||
metadata: ItemMetadata;
|
||||
}>;
|
||||
/** Create a new playlist and attach its ID to every item (Pro). */
|
||||
createPlaylist?: CreatePlaylistRequest | null;
|
||||
};
|
||||
|
||||
export type JobItemResponse = {
|
||||
id: string;
|
||||
audioFilename: string;
|
||||
title: string;
|
||||
status: string;
|
||||
youtubeVideoId: string | null;
|
||||
error: string | null;
|
||||
};
|
||||
|
||||
export type JobResponse = {
|
||||
id: string;
|
||||
status: string;
|
||||
createdAt: string;
|
||||
completedAt: string | null;
|
||||
items: JobItemResponse[];
|
||||
};
|
||||
|
||||
export type VideoJobData = {
|
||||
jobItemId: string;
|
||||
userId: string;
|
||||
jobId: string;
|
||||
};
|
||||
Reference in New Issue
Block a user