Add media processing, mine feed filter, and preserve ended streams as videos

- Add ffmpeg-based media asset generation (poster, thumbnail, clip) for previews and videos
- Add GET /media/thumbnails/:filename serving route
- Add filter=mine to feed endpoint for user's own published streams
- Feed response now includes posterUrl, thumbnailUrl, clipUrl
- Deleting an ENDED plan with preview preserves it as a Video record
- Add sourcePlanId to Video schema
This commit is contained in:
2026-03-04 21:07:18 +01:00
parent 36dce50b64
commit a814dd3387
11 changed files with 458 additions and 9 deletions

View File

@@ -149,6 +149,9 @@ export interface PublicUserResponse {
export interface FeedItemResponse {
plan: StreamPlanResponse & { user: { id: string; displayName: string; avatarUrl: string | null } };
previewUrl: string | null;
posterUrl: string | null;
thumbnailUrl: string | null;
clipUrl: string | null;
likeCount: number;
commentCount: number;
isLiked: boolean;