From 5ec7c346ca0eaeca821717130b47e2260b497de2 Mon Sep 17 00:00:00 2001 From: JellyBrick Date: Sun, 17 Dec 2023 15:51:35 +0900 Subject: [PATCH] fix(song-info-front): fix parser to parse album name --- src/providers/song-info-front.ts | 7 +++++-- src/types/player-api-events.ts | 2 -- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/providers/song-info-front.ts b/src/providers/song-info-front.ts index d4fbe1fe..d99a0fc1 100644 --- a/src/providers/song-info-front.ts +++ b/src/providers/song-info-front.ts @@ -2,7 +2,7 @@ import { singleton } from './decorators'; import type { YoutubePlayer } from '@/types/youtube-player'; import type { GetState } from '@/types/datahost-get-state'; -import type { VideoDataChangeValue } from '@/types/player-api-events'; +import type { AlbumDetails, VideoDataChangeValue } from '@/types/player-api-events'; import type { SongInfo } from './song-info'; import type { VideoDataChanged } from '@/types/video-data-changed'; @@ -155,7 +155,10 @@ export default (api: YoutubePlayer) => { const data = api.getPlayerResponse(); data.videoDetails.album = - videoData?.Hd?.playerOverlays?.playerOverlayRenderer?.browserMediaSession?.browserMediaSessionRenderer?.album.runs?.at( + ( + Object.entries(videoData) + .find(([, value]) => value && Object.hasOwn(value, 'playerOverlays')) as AlbumDetails | undefined + )?.playerOverlays?.playerOverlayRenderer?.browserMediaSession?.browserMediaSessionRenderer?.album?.runs?.at( 0, )?.text; data.videoDetails.elapsedSeconds = 0; diff --git a/src/types/player-api-events.ts b/src/types/player-api-events.ts index 533a552a..b9baddb8 100644 --- a/src/types/player-api-events.ts +++ b/src/types/player-api-events.ts @@ -246,8 +246,6 @@ export type VideoDataChangeValue = Record & { title: string; author: string; - Hd?: AlbumDetails; - playlistId: string; isUpcoming: boolean; loading: boolean;