hotfix(downloader): can't get an album title (fix #1313)

This commit is contained in:
JellyBrick
2023-10-14 13:55:57 +09:00
parent 21c45faf20
commit d7b821727d

View File

@ -460,11 +460,18 @@ export async function downloadPlaylist(givenUrl?: string | URL) {
return; return;
} }
let playlistTitle = playlist.header?.title?.text ?? ''; const normalPlaylistTitle = playlist.header?.title?.text;
const isAlbum = playlistTitle?.startsWith('Album - '); const playlistTitle = normalPlaylistTitle ??
if (isAlbum) { playlist
playlistTitle = playlistTitle.slice(8); .page
} .contents_memo
?.get('MusicResponsiveListItemFlexColumn')
?.at(2)
?.as(YTNodes.MusicResponsiveListItemFlexColumn)
?.title
?.text ??
'';
const isAlbum = !normalPlaylistTitle;
let safePlaylistTitle = filenamify(playlistTitle, { replacement: ' ' }); let safePlaylistTitle = filenamify(playlistTitle, { replacement: ' ' });
if (!is.macOS()) { if (!is.macOS()) {
@ -572,8 +579,7 @@ const getMetadata = (info: TrackInfo): CustomSongInfo => ({
videoId: info.basic_info.id!, videoId: info.basic_info.id!,
title: cleanupName(info.basic_info.title!), title: cleanupName(info.basic_info.title!),
artist: cleanupName(info.basic_info.author!), artist: cleanupName(info.basic_info.author!),
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-explicit-any album: info.player_overlays?.browser_media_session?.as(YTNodes.BrowserMediaSession).album?.text,
album: (info.player_overlays?.browser_media_session as any)?.album?.text as string | undefined,
imageSrc: info.basic_info.thumbnail?.find((t) => !t.url.endsWith('.webp'))?.url, imageSrc: info.basic_info.thumbnail?.find((t) => !t.url.endsWith('.webp'))?.url,
views: info.basic_info.view_count!, views: info.basic_info.view_count!,
songDuration: info.basic_info.duration!, songDuration: info.basic_info.duration!,