25 lines
600 B
TypeScript
25 lines
600 B
TypeScript
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)
|
|
}
|