1 Commits

Author SHA1 Message Date
45678d7e6a Fixed detection if youtube video is music or not 2023-06-24 03:39:42 +02:00
2 changed files with 34 additions and 11 deletions

View File

@ -4,7 +4,7 @@ import {
ODESLI_API_KEY, ODESLI_API_KEY,
YOUTUBE_API_KEY YOUTUBE_API_KEY
} from '$env/static/private'; } from '$env/static/private';
import { log } from '$lib/log'; import { enableVerboseLog, log } from '$lib/log';
import type { import type {
Account, Account,
AccountAvatar, AccountAvatar,
@ -59,13 +59,17 @@ export class TimelineReader {
} }
const item = respObj.items[0]; 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; return true;
} }
const categorySearchParams = new URLSearchParams([ const categorySearchParams = new URLSearchParams([
['part', 'snippet'], ['part', 'snippet'],
['id', item.categoryId], ['id', item.snippet.categoryId],
['key', YOUTUBE_API_KEY] ['key', YOUTUBE_API_KEY]
]); ]);
const youtubeCategoryUrl = new URL( const youtubeCategoryUrl = new URL(
@ -73,7 +77,25 @@ export class TimelineReader {
); );
const categoryTitle: string = await fetch(youtubeCategoryUrl) const categoryTitle: string = await fetch(youtubeCategoryUrl)
.then((r) => r.json()) .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'; return categoryTitle === 'Music';
} }

View File

@ -11,14 +11,15 @@ const config = {
// adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list. // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list.
// If your environment is not supported or you settled on a specific environment, switch out the adapter. // If your environment is not supported or you settled on a specific environment, switch out the adapter.
// See https://kit.svelte.dev/docs/adapters for more information about adapters. // See https://kit.svelte.dev/docs/adapters for more information about adapters.
adapter: adapter(), adapter: adapter()
},
csp: { csp: {
directives: { directives: {
'script-src': ['self', 'unsafe-inline'], 'script-src': ['self']
'base-uri': ['self'], },
'object-src': ['none'] reportOnly: {
} 'script-src': ['self']
} }
} }
}; };