aboutsummaryrefslogtreecommitdiffstats
path: root/apps/web/components/dashboard/preview/LinkContentSection.tsx
diff options
context:
space:
mode:
authorkamtschatka <simon.schatka@gmx.at>2024-10-28 02:51:00 +0100
committerGitHub <noreply@github.com>2024-10-28 01:51:00 +0000
commit4a13c36da50f6b3171d817edebefe96ba85dc666 (patch)
tree60ff553426493e7ae2460e73c3500a5525ba735c /apps/web/components/dashboard/preview/LinkContentSection.tsx
parent3b7451f4d0727d597c0af0e602f0c74cf58999af (diff)
downloadkarakeep-4a13c36da50f6b3171d817edebefe96ba85dc666.tar.zst
feature: Archive videos using yt-dlp. Fixes #215 (#525)
* Allow downloading more content from a webpage and index it #215 Added a worker that allows downloading videos depending on the environment variables refactored the code a bit added new video asset updated documentation * Some tweaks * Drop the dependency on the yt-dlp wrapper * Update openapi specs * Dont log an error when the url is not supported * Better handle supported websites that dont download anything --------- Co-authored-by: Mohamed Bassem <me@mbassem.com>
Diffstat (limited to 'apps/web/components/dashboard/preview/LinkContentSection.tsx')
-rw-r--r--apps/web/components/dashboard/preview/LinkContentSection.tsx19
1 files changed, 19 insertions, 0 deletions
diff --git a/apps/web/components/dashboard/preview/LinkContentSection.tsx b/apps/web/components/dashboard/preview/LinkContentSection.tsx
index f2069821..bf0d8f90 100644
--- a/apps/web/components/dashboard/preview/LinkContentSection.tsx
+++ b/apps/web/components/dashboard/preview/LinkContentSection.tsx
@@ -60,6 +60,20 @@ function CachedContentSection({ link }: { link: ZBookmarkedLink }) {
return <ScrollArea className="h-full">{content}</ScrollArea>;
}
+function VideoSection({ link }: { link: ZBookmarkedLink }) {
+ return (
+ <div className="relative h-full w-full overflow-hidden">
+ <div className="absolute inset-0 h-full w-full">
+ {/* eslint-disable-next-line jsx-a11y/media-has-caption -- captions not (yet) available */}
+ <video className="m-auto max-h-full max-w-full" controls>
+ <source src={`/api/assets/${link.videoAssetId}`} />
+ Not supported by your browser
+ </video>
+ </div>
+ </div>
+ );
+}
+
export default function LinkContentSection({
bookmark,
}: {
@@ -76,6 +90,8 @@ export default function LinkContentSection({
content = <CachedContentSection link={bookmark.content} />;
} else if (section === "archive") {
content = <FullPageArchiveSection link={bookmark.content} />;
+ } else if (section === "video") {
+ content = <VideoSection link={bookmark.content} />;
} else {
content = <ScreenshotSection link={bookmark.content} />;
}
@@ -101,6 +117,9 @@ export default function LinkContentSection({
>
Archive
</SelectItem>
+ <SelectItem value="video" disabled={!bookmark.content.videoAssetId}>
+ Video
+ </SelectItem>
</SelectGroup>
</SelectContent>
</Select>