export interface VideoMetadata { id: string title: string thumbnail: string duration?: number | null uploader?: string | null url?: string | null } export interface SelectableVideoMetadata extends VideoMetadata { selected: boolean } export interface PlaylistMetadata { id: string title: string entries: SelectableVideoMetadata[] } export type AnalysisMetadata = VideoMetadata | PlaylistMetadata export function isPlaylistMetadata(metadata: AnalysisMetadata | null): metadata is PlaylistMetadata { return !!metadata && Array.isArray((metadata as PlaylistMetadata).entries) }