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:
Songs2YT
2026-07-25 03:50:06 +02:00
co-authored by Cursor
parent bcca0a6e6f
commit d951ecb489
53 changed files with 3258 additions and 1977 deletions
+42 -2
View File
@@ -65,11 +65,51 @@ async function processJobItem(data: VideoJobData) {
});
await encodeVideo({
imagePath: item.job.imagePath,
imagePath: item.itemImagePath || item.job.imagePath,
audioPath: item.audioPath,
outputPath,
resolution: item.resolution,
includeWatermark: item.includeWatermark,
title: item.title,
artist: item.artist,
layout: item.layoutTemplate
? {
template: item.layoutTemplate as
| "COVER_LEFT_TEXT_RIGHT"
| "COVER_TOP_TEXT_BOTTOM"
| "COVER_RIGHT_TEXT_LEFT"
| "CENTERED_COMPACT",
blurAmount: item.blurAmount ?? 55,
blurOpacity: item.blurOpacity ?? 100,
textPadding: item.textPadding ?? 48,
titleArtistGap: item.titleArtistGap ?? 10,
textOffsetX: item.textOffsetX ?? 0,
textOffsetY: item.textOffsetY ?? 0,
}
: null,
watermark: {
mode: (item.watermarkMode as "none" | "default" | "text" | "logo") || "default",
text: item.watermarkText,
logoPath: item.watermarkLogoPath,
fontKey: (item.watermarkFontKey as
| "system"
| "custom"
| "inter"
| "montserrat"
| "roboto"
| "oswald"
| "playfair") || "system",
fontPath: item.watermarkFontPath,
position:
(item.watermarkPosition as
| "top-left"
| "top-right"
| "bottom-left"
| "bottom-right"
| "center") || "bottom-right",
offsetX: item.watermarkOffsetX ?? 20,
offsetY: item.watermarkOffsetY ?? 20,
},
});
await prisma.jobItem.update({
@@ -123,4 +163,4 @@ worker.on("failed", (job, err) => {
console.error(`Job item ${job?.data.jobItemId} failed:`, err.message);
});
console.log(`Songs2YT worker started (ffmpeg: ${getFfmpegPath()}), waiting for jobs...`);
console.log(`Songs2VID worker started (ffmpeg: ${getFfmpegPath()}), waiting for jobs...`);