From ef74dd14d7e47f8f8e45655e59589aa6b8369443 Mon Sep 17 00:00:00 2001 From: ward Date: Mon, 23 Jun 2025 13:02:52 +1200 Subject: [PATCH] Improvements to playlist page --- .../src/lib/components/ContentColumn.svelte | 2 +- materialious/src/lib/components/Player.svelte | 4 +- .../src/lib/components/Thumbnail.svelte | 4 +- materialious/src/lib/patches/youtubejs.ts | 2 +- .../routes/(app)/playlist/[slug]/+page.svelte | 51 +++++++------------ .../src/routes/(app)/playlist/[slug]/+page.ts | 4 +- 6 files changed, 27 insertions(+), 40 deletions(-) diff --git a/materialious/src/lib/components/ContentColumn.svelte b/materialious/src/lib/components/ContentColumn.svelte index 556588c7..54016dce 100644 --- a/materialious/src/lib/components/ContentColumn.svelte +++ b/materialious/src/lib/components/ContentColumn.svelte @@ -10,7 +10,7 @@ async function checkWidth() { if ($isAndroidTvStore) { - mediumCol = '3'; + mediumCol = '4'; } else if (innerWidth <= 1750) { largeCol = '4'; } else { diff --git a/materialious/src/lib/components/Player.svelte b/materialious/src/lib/components/Player.svelte index 9e554104..654a4f97 100644 --- a/materialious/src/lib/components/Player.svelte +++ b/materialious/src/lib/components/Player.svelte @@ -493,7 +493,7 @@ updateSeekBarTheme(); - player.addEventListener('error', async (event) => { + player.addEventListener('error', (event) => { const error = (event as CustomEvent).detail as shaka.util.Error; console.error('Player error:', error); }); @@ -759,7 +759,7 @@ controls={false} autoplay={$playerAutoPlayStore} id="player" - poster={getBestThumbnail(data.video.videoThumbnails, 1251, 781)} + poster={getBestThumbnail(data.video.videoThumbnails, 9999, 9999)} > {#if isEmbed}
diff --git a/materialious/src/lib/components/Thumbnail.svelte b/materialious/src/lib/components/Thumbnail.svelte index 9640615a..efd285d5 100644 --- a/materialious/src/lib/components/Thumbnail.svelte +++ b/materialious/src/lib/components/Thumbnail.svelte @@ -139,7 +139,7 @@ function calcThumbnailPlaceholderHeight() { if ($isAndroidTvStore) { - placeholderHeight = innerWidth / 3; + placeholderHeight = 400; return; } if (!sideways) { @@ -164,7 +164,7 @@ role="button" onclick={async () => { if ($isAndroidTvStore) { - goto(`${location.origin}/embed/${video.videoId}`); + goto(`${location.origin}/tv/${video.videoId}`); } }} > diff --git a/materialious/src/lib/patches/youtubejs.ts b/materialious/src/lib/patches/youtubejs.ts index 5a079d96..9389950c 100644 --- a/materialious/src/lib/patches/youtubejs.ts +++ b/materialious/src/lib/patches/youtubejs.ts @@ -81,7 +81,7 @@ export async function patchYoutubeJs(videoId: string): Promise { let dashUri: string | undefined; if (video.streaming_data) { - video.streaming_data.adaptive_formats = video.streaming_data.adaptive_formats.map((format) => { + video.streaming_data.adaptive_formats.forEach((format) => { const formatKey = fromFormat(format) || ''; format.url = `https://sabr?___key=${formatKey}`; format.signature_cipher = undefined; diff --git a/materialious/src/routes/(app)/playlist/[slug]/+page.svelte b/materialious/src/routes/(app)/playlist/[slug]/+page.svelte index 1adfe044..c62a1730 100644 --- a/materialious/src/routes/(app)/playlist/[slug]/+page.svelte +++ b/materialious/src/routes/(app)/playlist/[slug]/+page.svelte @@ -1,43 +1,24 @@
- {#if videos} + {#if data.playlist.videos} {/if} -

{data.playlist.title}

+

{data.playlist.info.title}

- {cleanNumber(data.playlist.viewCount)} - {$_('views')} • {data.playlist.videoCount} + {cleanNumber(data.playlist.info.viewCount)} + {$_('views')} • {data.playlist.info.videoCount} {$_('videos')}

-

{data.playlist.description}

+

{data.playlist.info.description}

@@ -96,7 +79,7 @@ role="presentation" onclick={async () => { await Clipboard.write({ - string: `https://www.youtube.com/playlist?list=${data.playlist.playlistId}` + string: `https://www.youtube.com/playlist?list=${data.playlist.info.playlistId}` }); (document.activeElement as HTMLElement)?.blur(); }} @@ -107,6 +90,10 @@
-{#if videos} - +{#if data.playlist.videos} + {/if} diff --git a/materialious/src/routes/(app)/playlist/[slug]/+page.ts b/materialious/src/routes/(app)/playlist/[slug]/+page.ts index c87433bf..20422000 100644 --- a/materialious/src/routes/(app)/playlist/[slug]/+page.ts +++ b/materialious/src/routes/(app)/playlist/[slug]/+page.ts @@ -1,11 +1,11 @@ -import { getPlaylist } from '$lib/api/index'; +import { loadEntirePlaylist } from '$lib/playlist.js'; import { error } from '@sveltejs/kit'; export async function load({ params }) { let playlist; try { - playlist = await getPlaylist(params.slug); + playlist = await loadEntirePlaylist(params.slug); } catch (errorMessage: any) { error(500, errorMessage); }