Sync layouts, typography, and watermark studio for self-hosted OSS.
Unlock features without credits/Stripe, point docs to docs.songs2vid.com, and drop leftover billing admin surfaces. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
import { Privacy } from "@prisma/client";
|
||||
import type { LayoutSettings } from "./layout";
|
||||
import type { WatermarkSettings } from "./watermark";
|
||||
|
||||
export type ItemMetadata = {
|
||||
title: string;
|
||||
@@ -11,9 +13,48 @@ export type ItemMetadata = {
|
||||
madeForKids: boolean;
|
||||
embeddable: boolean;
|
||||
creativeCommons: boolean;
|
||||
/** Legacy Free toggle default Songs2VID branding when watermark.mode is omitted. */
|
||||
includeWatermark: boolean;
|
||||
/** YouTube playlist ID (Pro only). Video is added after upload. */
|
||||
playlistId?: string | null;
|
||||
/**
|
||||
* Optional per-item cover image path (Pro / perItemImages).
|
||||
* When omitted, the job-level shared imagePath is used.
|
||||
*/
|
||||
imagePath?: string | null;
|
||||
/** Pro custom branding. Free may only use mode none|default at bottom-right. */
|
||||
watermark?: Partial<WatermarkSettings> | null;
|
||||
/** Artist line for art-track layouts (optional). */
|
||||
artist?: string | null;
|
||||
/**
|
||||
* Pro art-track layout. Prefer camelCase; snake_case aliases accepted:
|
||||
* layout_template, blur_amount, text_padding.
|
||||
*/
|
||||
layout?: Partial<LayoutSettings> & {
|
||||
layoutTemplate?: string | null;
|
||||
layout_template?: string | null;
|
||||
blur_amount?: number;
|
||||
blur_opacity?: number;
|
||||
text_padding?: number;
|
||||
title_artist_gap?: number;
|
||||
text_offset_x?: number;
|
||||
text_offset_y?: number;
|
||||
} | null;
|
||||
/** Flat aliases (also accepted). */
|
||||
layoutTemplate?: string | null;
|
||||
layout_template?: string | null;
|
||||
blurAmount?: number;
|
||||
blur_amount?: number;
|
||||
blurOpacity?: number;
|
||||
blur_opacity?: number;
|
||||
textPadding?: number;
|
||||
text_padding?: number;
|
||||
titleArtistGap?: number;
|
||||
title_artist_gap?: number;
|
||||
textOffsetX?: number;
|
||||
text_offset_x?: number;
|
||||
textOffsetY?: number;
|
||||
text_offset_y?: number;
|
||||
};
|
||||
|
||||
export type UploadedAudio = {
|
||||
@@ -29,6 +70,7 @@ export type CreatePlaylistRequest = {
|
||||
};
|
||||
|
||||
export type CreateJobPayload = {
|
||||
/** Shared cover for Free / default when items omit imagePath. */
|
||||
imagePath: string;
|
||||
items: Array<{
|
||||
audioPath: string;
|
||||
|
||||
Reference in New Issue
Block a user