From a07870c82c4ba936750d04e6fac3e975408d58c9 Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Mon, 15 Jun 2026 06:14:51 +0200 Subject: [PATCH] Feat: Add robust support for video content in LibraryManager Updates the library manager to handle videos alongside websites and text. This includes updating input fields, adding dedicated video summary metadata display (transcription details), expanding searchable content types, and providing specific action buttons for opening or reprocessing video items. --- src/LibraryManager.jsx | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/src/LibraryManager.jsx b/src/LibraryManager.jsx index 78d1a42..55d4883 100644 --- a/src/LibraryManager.jsx +++ b/src/LibraryManager.jsx @@ -440,28 +440,32 @@ export default function LibraryManager({ apiBase, library, jobs, onOpenChatMessa {formMode === 'website' && (
- Add website + Add website or video
+

+ Supported video links are detected automatically, downloaded temporarily, transcribed with Whisper, and summarized locally. Video and audio files are discarded afterwards. +

-

Heimgeist saves a local text snapshot of this page. It will not crawl linked pages.

+

Normal webpages are saved as one local text snapshot. Heimgeist will not crawl linked pages.

- +
+ {websiteProcessing &&
Video processing can take several minutes. Heimgeist is downloading audio, transcribing it, and generating a local summary.
}
)}

Contents

-

Files, texts, and website snapshots are searched together when this database is selected.

+

Files, texts, website snapshots, videos, and saved chat messages are searched together when this database is selected.

{item.enrich_enabled ? 'Deep enrichment' : 'Standard'}
+ {item.kind === 'video' && item.video_summary && ( +
+
Video summary
+

{item.video_summary}

+
+ {item.transcription_model && Whisper: {item.transcription_model}} + {item.transcription_workers && Workers: {item.transcription_workers}} + {item.summary_model && Summary: {item.summary_model}} + {item.yt_dlp_version && yt-dlp: {item.yt_dlp_version}} +
+
+ )}
{metadata.headline &&

{metadata.headline}

} {metadata.summary ? ( @@ -555,7 +573,7 @@ export default function LibraryManager({ apiBase, library, jobs, onOpenChatMessa {isExpanded && (
- {item.kind === 'website' ? 'Saved website text' : item.kind === 'chat_message' ? 'Stored chat knowledge' : item.kind === 'text' ? 'Stored text' : 'Extracted text used by RAG'} + {item.kind === 'website' ? 'Saved website text' : item.kind === 'video' ? 'Video summary and transcript' : item.kind === 'chat_message' ? 'Stored chat knowledge' : item.kind === 'text' ? 'Stored text' : 'Extracted text used by RAG'}
{preview?.loading &&
Loading content…
} {preview?.error &&
{preview.error}
} @@ -575,6 +593,8 @@ export default function LibraryManager({ apiBase, library, jobs, onOpenChatMessa {item.kind === 'chat_message' && } {item.kind === 'website' && } {item.kind === 'website' && } + {item.kind === 'video' && } + {item.kind === 'video' && } {(!item.kind || item.kind === 'file') && }