diff --git a/maze-utils b/maze-utils index f12ac4f5f..b7cc06c9d 160000 --- a/maze-utils +++ b/maze-utils @@ -1 +1 @@ -Subproject commit f12ac4f5f8c0dd073426a413568bcdd58ccbf8ef +Subproject commit b7cc06c9d5f95db346984c38c346eba7e83e5d58 diff --git a/src/utils/thumbnails.ts b/src/utils/thumbnails.ts index 0fb2579e0..68ad8169b 100644 --- a/src/utils/thumbnails.ts +++ b/src/utils/thumbnails.ts @@ -64,8 +64,18 @@ function thumbnailHoverListener(e: MouseEvent) { } } +function getLink(thumbnail: HTMLImageElement): HTMLAnchorElement | null { + if (isOnInvidious()) { + return thumbnail.parentElement as HTMLAnchorElement | null; + } else if (thumbnail.nodeName.toLowerCase() === "yt-thumbnail-view-model") { + return thumbnail.closest("yt-lockup-view-model")?.querySelector("a.yt-lockup-metadata-view-model-wiz__title"); + } else { + return thumbnail.querySelector("#thumbnail"); + } +} + function extractVideoID(thumbnail: HTMLImageElement): VideoID | null { - const link = (isOnInvidious() ? thumbnail.parentElement : thumbnail.querySelector("#thumbnail")) as HTMLAnchorElement + const link = getLink(thumbnail); if (!link || link.nodeName !== "A" || !link.href) return null; // no link found return parseYouTubeVideoIDFromURL(link.href)?.videoID;