Skip to main content

## begin_video_play_session

# Function begin_video_play_session

Source

    pub fn begin_video_play_session() -> (String, Option<String>)

Expand description

Claim a transcode identity for a stream about to be opened, returning the new `PlaySessionId` and the one it replaces (if any).

Jellyfin keys a transcode job by device and play session. Without a session id every open of the same item on this device looked like the same job, so re-opening a stream — a quality switch, a transcoded seek, an audio-track switch — left the old ffmpeg running and the server intermittently rejected segment requests for the new one (`400` on `hls1/main/0.ts`) while the two fought over one transcode path. The caller stops the returned previous session before the new stream’s segments are fetched.

TRACES: UR-074 | DR-177 | UT-173