NewTube/src/models/video.model.ts

55 lines
1.0 KiB
TypeScript

export interface Video {
url: string;
type: string;
title: string;
thumbnail: string;
uploaderName: string;
uploaderUrl?: string;
uploaderAvatar: string;
uploadedDate: string;
shortDescription?: string | null;
duration: number;
views: number;
uploaded: number;
videoId: string;
providerUrl?: string; // URL complète de la vidéo sur le site du fournisseur
}
export interface VideoDetail extends Video {
description: string;
subscribers: number;
likes: number;
dislikes: number;
videoStreams: VideoStream[];
audioStreams: AudioStream[];
relatedStreams: Video[];
comments: Comment[];
}
export interface VideoStream {
url: string;
format: string;
quality: string;
mimeType: string;
codec: string;
videoOnly: boolean;
}
export interface AudioStream {
url: string;
format: string;
quality: string;
mimeType: string;
codec: string;
}
export interface Comment {
author: string;
thumbnail: string;
commentText: string;
commentedTime: string;
likeCount: number;
replies?: Comment[];
}