diff options
Diffstat (limited to 'server/src/routes/compat/jellyfin')
-rw-r--r-- | server/src/routes/compat/jellyfin/mod.rs | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/server/src/routes/compat/jellyfin/mod.rs b/server/src/routes/compat/jellyfin/mod.rs index ddbd410..9c0c6fb 100644 --- a/server/src/routes/compat/jellyfin/mod.rs +++ b/server/src/routes/compat/jellyfin/mod.rs @@ -437,17 +437,25 @@ pub fn r_jellyfin_items_playbackinfo( } #[get("/Videos/<id>/stream.webm")] -pub fn r_jellyfin_video_stream(_session: Session, id: &str) -> Redirect { - Redirect::temporary(rocket::uri!(r_stream( +pub fn r_jellyfin_video_stream( + _session: Session, + database: &State<Database>, + id: &str, +) -> MyResult<Redirect> { + let node = database + .get_node_slug(id)? + .ok_or(anyhow!("node does not exist"))?; + let media = node.media.as_ref().ok_or(anyhow!("node has no media"))?; + Ok(Redirect::temporary(rocket::uri!(r_stream( id, StreamSpec { format: StreamFormat::Matroska, webm: Some(true), - track: vec![0, 1], + track: (0..media.tracks.len()).collect(), index: None, profile: None, } - ))) + )))) } #[derive(Deserialize)] |