From 45678d7e6a65fec0fc367d4e9f92b4baebac7e02 Mon Sep 17 00:00:00 2001 From: Max Nuding Date: Sat, 24 Jun 2023 03:39:42 +0200 Subject: [PATCH] Fixed detection if youtube video is music or not --- src/lib/server/timeline.ts | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/src/lib/server/timeline.ts b/src/lib/server/timeline.ts index 680dff3..f079018 100644 --- a/src/lib/server/timeline.ts +++ b/src/lib/server/timeline.ts @@ -4,7 +4,7 @@ import { ODESLI_API_KEY, YOUTUBE_API_KEY } from '$env/static/private'; -import { log } from '$lib/log'; +import { enableVerboseLog, log } from '$lib/log'; import type { Account, AccountAvatar, @@ -59,13 +59,17 @@ export class TimelineReader { } const item = respObj.items[0]; - if (item.tags?.includes('music')) { + if (!item.snippet) { + console.warn('Could not load snippet for video', videoId, item); + return false; + } + if (item.snippet.tags?.includes('music')) { return true; } const categorySearchParams = new URLSearchParams([ ['part', 'snippet'], - ['id', item.categoryId], + ['id', item.snippet.categoryId], ['key', YOUTUBE_API_KEY] ]); const youtubeCategoryUrl = new URL( @@ -73,7 +77,25 @@ export class TimelineReader { ); const categoryTitle: string = await fetch(youtubeCategoryUrl) .then((r) => r.json()) - .then((r) => r.items[0]?.title); + .then((r) => r.items[0]?.snippet?.title); + if (enableVerboseLog) { + log.verbose( + 'Video', + videoId, + 'category', + categoryTitle, + 'tags', + item.snippet.tags, + 'category id', + item.snippet.categoryId, + 'response', + respObj, + 'snippet', + item.snippet + ); + } else { + log.debug('Video', videoId, 'category', categoryTitle); + } return categoryTitle === 'Music'; }