Overview
The Streaming API provides endpoints for direct playback of audio and video content. These endpoints support both static streaming (direct file access) and dynamic transcoding based on client capabilities.Audio Stream
Stream audio content with optional transcoding.Get Audio Stream
string
required
The unique identifier of the audio item
string
The audio container format (e.g., mp3, aac, flac, opus)
boolean
default:"false"
If true, streams the original file without encoding. Use either no extension or the original file extension
string
The media version id, if playing an alternate version
string
The device id of the client requesting. Used to stop encoding processes when needed
string
Specify an audio codec to encode to (e.g., mp3, aac, opus). If omitted, the server will auto-select using the URL’s extension
integer
Specify an audio bitrate to encode to (e.g., 128000). If omitted, this will be left to encoder defaults
integer
Specify a specific number of audio channels to encode to (e.g., 2)
integer
Specify a maximum number of audio channels to encode to (e.g., 2)
integer
Specify a specific audio sample rate (e.g., 44100)
integer
The maximum audio bit depth
integer
Specify a starting offset, in ticks. 1 tick = 10000 ms (0.01ms)
boolean
default:"true"
Whether to allow automatic stream copy if requested values match the original source
boolean
default:"true"
Whether to allow copying of the audio stream URL
boolean
default:"true"
Whether to enable Audio VBR (Variable Bit Rate) Encoding
binary
Audio file stream with appropriate MIME type
200 OK- Audio stream returned successfully401 Unauthorized- Authentication required404 Not Found- Item not found
Example Request
Video Stream
Stream video content with optional transcoding.Get Video Stream
string
required
The unique identifier of the video item
string
The video container. Possible values: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wtv, m2ts, mov, iso, flv
boolean
default:"false"
If true, streams the original file without encoding
string
The media version id, if playing an alternate version
string
The device id of the client requesting
string
Specify a video codec to encode to (e.g., h264, hevc, vp9). If omitted, the server will auto-select
string
Specify an audio codec to encode to (e.g., aac, mp3, opus)
integer
Specify a video bitrate to encode to (e.g., 5000000). If omitted, left to encoder defaults
integer
Specify an audio bitrate to encode to (e.g., 128000)
integer
The fixed horizontal resolution of the encoded video
integer
The fixed vertical resolution of the encoded video
integer
The maximum horizontal resolution of the encoded video
integer
The maximum vertical resolution of the encoded video
number
A specific video framerate to encode to (e.g., 23.976). Generally should be omitted unless device has specific requirements
number
A specific maximum video framerate to encode to
integer
Specify a starting offset, in ticks. 1 tick = 10000 ms
integer
The index of the subtitle stream to use. If omitted, no subtitles will be used
string
Specify the subtitle delivery method:
Encode, Embed, External, Hlsbinary
Video file stream with appropriate MIME type
200 OK- Video stream returned successfully400 Bad Request- Invalid parameters or unsupported protocol401 Unauthorized- Authentication required404 Not Found- Item not found
Example Request
Universal Audio Stream
Intelligent audio streaming endpoint that automatically selects the best streaming method based on device capabilities.Get Universal Audio Stream
string
required
The unique identifier of the audio item
array
Comma-delimited list of supported containers (e.g., “mp3,aac,flac”)
string
The media version id, if playing an alternate version
string
The device id of the client requesting
string
The user id (optional, defaults to authenticated user)
string
The audio codec to transcode to
integer
The maximum number of audio channels
integer
The number of audio channels to transcode to
integer
The maximum streaming bitrate
integer
Specify an audio bitrate to encode to (e.g., 128000)
integer
Specify a starting offset, in ticks
string
The container to transcode to
string
The transcoding protocol:
http or hlsinteger
The maximum audio sample rate
integer
The maximum audio bit depth
boolean
Whether to enable remote media
boolean
default:"true"
Whether to enable Audio VBR Encoding
boolean
default:"true"
Whether to enable redirection for remote streams
200 OK- Audio stream returned302 Found- Redirected to remote audio stream404 Not Found- Item not found
Example Request
Notes
Ticks
Jellyfin uses “ticks” as a time unit where 1 tick = 0.01 milliseconds = 10000 ticks per millisecond. This allows for high-precision timing. Conversion:- Milliseconds to Ticks:
milliseconds * 10000 - Seconds to Ticks:
seconds * 10000000 - Ticks to Milliseconds:
ticks / 10000
Static vs Dynamic Streaming
Static Streaming:- Serves the original file without modification
- Requires client to support the native format
- Lower server resource usage
- Faster startup time
- Transcodes content on-the-fly
- Adapts to client capabilities and network conditions
- Higher server resource usage
- More compatible with diverse clients
HTTP Methods
Most streaming endpoints support both:GET- Returns the actual streamHEAD- Returns headers only (useful for checking availability and getting metadata)