feat(video): link and stream Immich videos in the journey gallery

Immich timeline and album listings no longer filter out videos; each asset now carries its media type, which the provider picker forwards when linking. A linked video streams through Immich's transcoded /video/playback endpoint, and the asset proxy forwards the viewer's Range header (and passes 206/Content-Range back) so the player can seek. Synology video stays excluded until its stream API is verified.

Adds media_type/media_types to the provider-photos request contract.
This commit is contained in:
Maurice
2026-06-30 11:05:07 +02:00
committed by Maurice
parent 8713443665
commit 1abc9b2bc7
13 changed files with 80 additions and 45 deletions
+3
View File
@@ -42,6 +42,9 @@ export const journeyProviderPhotosRequestSchema = z.object({
asset_ids: z.array(z.union([z.string(), z.number()])).optional(),
caption: z.string().optional(),
passphrase: z.string().optional(),
// Per-asset 'image' | 'video' discriminator, parallel to asset_ids (#823).
media_type: z.string().optional(),
media_types: z.array(z.string()).optional(),
});
export type JourneyProviderPhotosRequest = z.infer<typeof journeyProviderPhotosRequestSchema>;