diff --git a/attached_assets/image_1756823508255.png b/attached_assets/image_1756823508255.png new file mode 100644 index 0000000..7cca946 Binary files /dev/null and b/attached_assets/image_1756823508255.png differ diff --git a/server/aiService.ts b/server/aiService.ts index 4cee24e..b429f1d 100644 --- a/server/aiService.ts +++ b/server/aiService.ts @@ -29,6 +29,7 @@ export interface DescriptionGenerationOptions { includeArtistInfo?: boolean; includeLabelInfo?: boolean; customInstructions?: string; + contentType?: string; } export async function generateVideoDescription( @@ -40,7 +41,8 @@ export async function generateVideoDescription( language = "slovenian", includeArtistInfo = true, includeLabelInfo = true, - customInstructions = "" + customInstructions = "", + contentType = "music_video" } = options; try { @@ -52,11 +54,19 @@ export async function generateVideoDescription( ? `\n\nWICHTIG: Für diesen Künstler wurden bereits folgende Beschreibungen erstellt:\n${previousDescriptions.map((desc, i) => `${i+1}. ${desc.substring(0, 100)}...`).join('\n')}\n\nErstelle eine VÖLLIG ANDERE Beschreibung mit anderen Worten, Fokus und Stil.` : ''; - const prompt = `Analysiere diesen Musikvideo-Titel: "${title}" + // Determine content type specific instructions + const isShow = contentType === 'oddaja'; + const contentTypeText = isShow ? 'Show/Sendung-Titel' : 'Musikvideo-Titel'; + const contentDescription = isShow + ? `WICHTIG: Dies ist eine TV-SENDUNG/SHOW (oddaja), NICHT ein Musikvideo! -Schreibe auf DEUTSCH eine informative Beschreibung. - -Aus dem Titel extrahieren: +Analysiere den Show-Titel und beschreibe: +- Die Show/Sendung und ihr Format +- Die Gastgeber oder Moderatoren +- Das Thema oder den Inhalt der Episode +- Für wen die Show gedacht ist (Zielgruppe) +- Art der Sendung (Talk-Show, Musiksendung, Unterhaltung, etc.)` + : `Aus dem Titel extrahieren: - Name des Interpreten/Künstlers - Titel des Liedes/Stücks - Art des Inhalts (Lied, Instrumental, Live-Auftritt, etc.) @@ -65,7 +75,13 @@ Erstelle eine informative Beschreibung, die Folgendes beinhaltet: ${includeArtistInfo ? '- Informationen über den Interpreten (Musikstil, kurze Geschichte, bekannte Stücke)' : ''} - Beschreibung des Musikstils und Genres - Kurzer Hintergrund zum Stück, falls bekannt -- Wofür es gedacht ist (Tanz, Zuhören, Konzert, etc.) +- Wofür es gedacht ist (Tanz, Zuhören, Konzert, etc.)`; + + const prompt = `Analysiere diesen ${contentTypeText}: "${title}" + +Schreibe auf DEUTSCH eine informative Beschreibung. + +${contentDescription} NUR wenn du SICHERE Informationen hast, erwähne: ${includeLabelInfo ? '- Label/Plattenfirma (nur wenn du es sicher weißt)' : ''} @@ -74,7 +90,7 @@ Wenn du keine sicheren Informationen zu einem Punkt hast, lasse ihn WEG. Schreib Die Beschreibung soll maximal ${maxCharacters} Zeichen lang sein. Schreibe in einem freundlichen, informativen Ton. -Verwende nicht die Wörter "Video" oder "Aufnahme" - schreibe über die Musik selbst. +${isShow ? 'Beschreibe die Show/Sendung, nicht die Musik.' : 'Verwende nicht die Wörter "Video" oder "Aufnahme" - schreibe über die Musik selbst.'} ${customInstructions ? `\nZUSÄTZLICHE ANWEISUNGEN: ${customInstructions}` : ''} Schreibe nur die Beschreibung, keine zusätzlichen Erklärungen.${avoidRepetition}";` @@ -85,7 +101,7 @@ Schreibe nur die Beschreibung, keine zusätzlichen Erklärungen.${avoidRepetitio messages: [ { role: "system", - content: "Du bist ein Musikexperte und hilfst bei der Erstellung hochwertiger Beschreibungen für Musikinhalte. Du antwortest immer auf Deutsch und vermeidest Wiederholungen." + content: `Du bist ein ${isShow ? 'Medien- und TV-Show-Experte' : 'Musikexperte'} und hilfst bei der Erstellung hochwertiger Beschreibungen für ${isShow ? 'TV-Sendungen und Shows' : 'Musikinhalte'}. Du antwortest immer auf Deutsch und vermeidest Wiederholungen.` }, { role: "user", diff --git a/server/routes.ts b/server/routes.ts index 170ad09..fc17268 100644 --- a/server/routes.ts +++ b/server/routes.ts @@ -1108,7 +1108,8 @@ export async function registerRoutes(app: Express): Promise { language: "german", includeArtistInfo, includeLabelInfo, - customInstructions + customInstructions, + contentType: video.contentType || 'music_video' }); console.log("Generated description:", description); // Debug log