diff --git a/src/parser/classes/PlaylistPanel.ts b/src/parser/classes/PlaylistPanel.ts index e97508f7..4c0c8c56 100644 --- a/src/parser/classes/PlaylistPanel.ts +++ b/src/parser/classes/PlaylistPanel.ts @@ -4,6 +4,7 @@ import PlaylistPanelVideo from './PlaylistPanelVideo'; import { YTNode } from '../helpers'; import AutomixPreviewVideo from './AutomixPreviewVideo'; +import PlaylistPanelVideoWrapper from './PlaylistPanelVideoWrapper'; class PlaylistPanel extends YTNode { static type = 'PlaylistPanel'; @@ -22,7 +23,7 @@ class PlaylistPanel extends YTNode { super(); this.title = data.title; this.title_text = new Text(data.titleText); - this.contents = Parser.parseArray(data.contents, [ PlaylistPanelVideo, AutomixPreviewVideo ]); + this.contents = Parser.parseArray(data.contents); this.playlist_id = data.playlistId; this.is_infinite = data.isInfinite; this.continuation = data.continuations?.[0]?.nextRadioContinuationData?.continuation || data.continuations?.[0]?.nextContinuationData?.continuation; diff --git a/src/parser/classes/PlaylistPanelVideoWrapper.ts b/src/parser/classes/PlaylistPanelVideoWrapper.ts new file mode 100644 index 00000000..47166e8c --- /dev/null +++ b/src/parser/classes/PlaylistPanelVideoWrapper.ts @@ -0,0 +1,18 @@ +import Parser from '..'; +import { YTNode } from '../helpers'; +import PlaylistPanelVideo from './PlaylistPanelVideo'; + +class PlaylistPanelVideoWrapper extends YTNode { + static type = 'PlaylistPanelVideoWrapper'; + + primary: PlaylistPanelVideo | null; + counterpart: Array; + + constructor(data: any) { + super(); + this.primary = Parser.parseItem(data.primaryRenderer); + this.counterpart = data.counterpart?.map((item: any) => Parser.parseItem(item.counterpartRenderer)) || []; + } +} + +export default PlaylistPanelVideoWrapper; \ No newline at end of file diff --git a/src/parser/map.ts b/src/parser/map.ts index 903cb1cd..01ca67af 100644 --- a/src/parser/map.ts +++ b/src/parser/map.ts @@ -184,6 +184,7 @@ import { default as PlaylistInfoCardContent } from './classes/PlaylistInfoCardCo import { default as PlaylistMetadata } from './classes/PlaylistMetadata'; import { default as PlaylistPanel } from './classes/PlaylistPanel'; import { default as PlaylistPanelVideo } from './classes/PlaylistPanelVideo'; +import { default as PlaylistPanelVideoWrapper } from './classes/PlaylistPanelVideoWrapper'; import { default as PlaylistSidebar } from './classes/PlaylistSidebar'; import { default as PlaylistSidebarPrimaryInfo } from './classes/PlaylistSidebarPrimaryInfo'; import { default as PlaylistSidebarSecondaryInfo } from './classes/PlaylistSidebarSecondaryInfo'; @@ -450,6 +451,7 @@ const map: Record = { PlaylistMetadata, PlaylistPanel, PlaylistPanelVideo, + PlaylistPanelVideoWrapper, PlaylistSidebar, PlaylistSidebarPrimaryInfo, PlaylistSidebarSecondaryInfo,