Jellyfin Forum
Specify m3u8 stream to use from a m3u8 - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Development (https://forum.jellyfin.org/f-development)
+--- Forum: Plugin Development (https://forum.jellyfin.org/f-plugin-development)
+--- Thread: Specify m3u8 stream to use from a m3u8 (/t-specify-m3u8-stream-to-use-from-a-m3u8)



Specify m3u8 stream to use from a m3u8 - Misom - 2024-02-06

Hello Jellyfin community!
I am currently working on writing a Plugin for ARD (a German broadcaster) but I noticed that the video stream played by Jellyfin always defaults to the first entry in the original m3u8 stream, which is low quality. Is there some way of specifying either the audio and video stream directly or to set which stream inside the original m3u8 stream should be used for audio/video?


RE: Specify m3u8 stream to use from a m3u8 - TheDreadPirate - 2024-02-06

m3u8 files are just plain text. Couldn't you just reorder the file?

Otherwise, I am not aware of a way to set a default stream.


RE: Specify m3u8 stream to use from a m3u8 - axute - 2024-03-28

I have the same issue with m3u8 files.


for example:
Code:
#EXTM3U
#EXTINF:-1,3sat
https://zdf-hls-18.akamaized.net/hls/live/2016501/dach/high/master.m3u8
if you follow this link, you will get the following list:
Code:
#EXTM3U

#EXT-X-INDEPENDENT-SEGMENTS

#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="A1.1+A2.1+A3.1-3211583617",NAME="TV Ton",LANGUAGE="deu",DEFAULT=YES,URI="https://zdf-hls-18.akamaized.net/hls/live/2016501/dach/4c5a14a9d03ced57f8e34f50c0bfebd2/5/5.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="A1.1+A2.1+A3.1-3211583617",NAME="Klare Sprache / Originalton",LANGUAGE="mul",URI="https://zdf-hls-18.akamaized.net/hls/live/2016501/dach/4c5a14a9d03ced57f8e34f50c0bfebd2/6/6.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="A1.1+A2.1+A3.1-3211583617",NAME="Audio-Deskription",LANGUAGE="deu",URI="https://zdf-hls-18.akamaized.net/hls/live/2016501/dach/4c5a14a9d03ced57f8e34f50c0bfebd2/7/7.m3u8"

#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="A1.1+A2.1+A3.1-1566965899",NAME="TV Ton",LANGUAGE="deu",DEFAULT=YES,URI="https://zdf-hls-18.akamaized.net/hls/live/2016501-b/dach/4c5a14a9d03ced57f8e34f50c0bfebd2/5/5.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="A1.1+A2.1+A3.1-1566965899",NAME="Klare Sprache / Originalton",LANGUAGE="mul",URI="https://zdf-hls-18.akamaized.net/hls/live/2016501-b/dach/4c5a14a9d03ced57f8e34f50c0bfebd2/6/6.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="A1.1+A2.1+A3.1-1566965899",NAME="Audio-Deskription",LANGUAGE="deu",URI="https://zdf-hls-18.akamaized.net/hls/live/2016501-b/dach/4c5a14a9d03ced57f8e34f50c0bfebd2/7/7.m3u8"

#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="T1-3211583617",NAME="Untertitel deutsch",CODECS="wvtt",LANGUAGE="deu",DEFAULT=YES,AUTOSELECT=YES,URI="https://zdf-hls-18.akamaized.net/hls/live/2016501/dach/4c5a14a9d03ced57f8e34f50c0bfebd2/8/8.m3u8"

#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="T1-1566965899",NAME="Untertitel deutsch",CODECS="wvtt",LANGUAGE="deu",DEFAULT=YES,AUTOSELECT=YES,URI="https://zdf-hls-18.akamaized.net/hls/live/2016501-b/dach/4c5a14a9d03ced57f8e34f50c0bfebd2/8/8.m3u8"

#EXT-X-STREAM-INF:CODECS="avc1.4d401f,mp4a.40.2",BANDWIDTH=671111,AVERAGE-BANDWIDTH=581111,AUDIO="A1.1+A2.1+A3.1-3211583617",SUBTITLES="T1-3211583617",FRAME-RATE=25.000,RESOLUTION=480x270
https://zdf-hls-18.akamaized.net/hls/live/2016501/dach/4c5a14a9d03ced57f8e34f50c0bfebd2/1/1.m3u8
#EXT-X-STREAM-INF:CODECS="avc1.4d401f,mp4a.40.2",BANDWIDTH=671111,AVERAGE-BANDWIDTH=581111,AUDIO="A1.1+A2.1+A3.1-1566965899",SUBTITLES="T1-1566965899",FRAME-RATE=25.000,RESOLUTION=480x270
https://zdf-hls-18.akamaized.net/hls/live/2016501-b/dach/4c5a14a9d03ced57f8e34f50c0bfebd2/1/1.m3u8
#EXT-X-STREAM-INF:CODECS="avc1.4d401f,mp4a.40.2",BANDWIDTH=1173371,AVERAGE-BANDWIDTH=969371,AUDIO="A1.1+A2.1+A3.1-3211583617",SUBTITLES="T1-3211583617",FRAME-RATE=25.000,RESOLUTION=640x360
https://zdf-hls-18.akamaized.net/hls/live/2016501/dach/4c5a14a9d03ced57f8e34f50c0bfebd2/2/2.m3u8
#EXT-X-STREAM-INF:CODECS="avc1.4d401f,mp4a.40.2",BANDWIDTH=1173371,AVERAGE-BANDWIDTH=969371,AUDIO="A1.1+A2.1+A3.1-1566965899",SUBTITLES="T1-1566965899",FRAME-RATE=25.000,RESOLUTION=640x360
https://zdf-hls-18.akamaized.net/hls/live/2016501-b/dach/4c5a14a9d03ced57f8e34f50c0bfebd2/2/2.m3u8
#EXT-X-STREAM-INF:CODECS="avc1.4d401f,mp4a.40.2",BANDWIDTH=2257198,AVERAGE-BANDWIDTH=1807198,AUDIO="A1.1+A2.1+A3.1-3211583617",SUBTITLES="T1-3211583617",FRAME-RATE=25.000,RESOLUTION=960x540
https://zdf-hls-18.akamaized.net/hls/live/2016501/dach/4c5a14a9d03ced57f8e34f50c0bfebd2/3/3.m3u8
#EXT-X-STREAM-INF:CODECS="avc1.4d401f,mp4a.40.2",BANDWIDTH=2257198,AVERAGE-BANDWIDTH=1807198,AUDIO="A1.1+A2.1+A3.1-1566965899",SUBTITLES="T1-1566965899",FRAME-RATE=25.000,RESOLUTION=960x540
https://zdf-hls-18.akamaized.net/hls/live/2016501-b/dach/4c5a14a9d03ced57f8e34f50c0bfebd2/3/3.m3u8
#EXT-X-STREAM-INF:CODECS="avc1.640028,mp4a.40.2",BANDWIDTH=4504154,AVERAGE-BANDWIDTH=3544154,AUDIO="A1.1+A2.1+A3.1-3211583617",SUBTITLES="T1-3211583617",FRAME-RATE=50.000,RESOLUTION=1280x720
https://zdf-hls-18.akamaized.net/hls/live/2016501/dach/4c5a14a9d03ced57f8e34f50c0bfebd2/4/4.m3u8
#EXT-X-STREAM-INF:CODECS="avc1.640028,mp4a.40.2",BANDWIDTH=4504154,AVERAGE-BANDWIDTH=3544154,AUDIO="A1.1+A2.1+A3.1-1566965899",SUBTITLES="T1-1566965899",FRAME-RATE=50.000,RESOLUTION=1280x720
https://zdf-hls-18.akamaized.net/hls/live/2016501-b/dach/4c5a14a9d03ced57f8e34f50c0bfebd2/4/4.m3u8


It is possible to switch the resolution, but there is no audio or subtitle.
Any ideas?


RE: Specify m3u8 stream to use from a m3u8 - Misom - 2024-04-08

(2024-03-28, 07:43 PM)axute Wrote: I have the same issue with m3u8 files.


for example:
Code:
#EXTM3U
#EXTINF:-1,3sat
https://zdf-hls-18.akamaized.net/hls/live/2016501/dach/high/master.m3u8
if you follow this link, you will get the following list:
Code:
#EXTM3U

#EXT-X-INDEPENDENT-SEGMENTS

#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="A1.1+A2.1+A3.1-3211583617",NAME="TV Ton",LANGUAGE="deu",DEFAULT=YES,URI="https://zdf-hls-18.akamaized.net/hls/live/2016501/dach/4c5a14a9d03ced57f8e34f50c0bfebd2/5/5.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="A1.1+A2.1+A3.1-3211583617",NAME="Klare Sprache / Originalton",LANGUAGE="mul",URI="https://zdf-hls-18.akamaized.net/hls/live/2016501/dach/4c5a14a9d03ced57f8e34f50c0bfebd2/6/6.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="A1.1+A2.1+A3.1-3211583617",NAME="Audio-Deskription",LANGUAGE="deu",URI="https://zdf-hls-18.akamaized.net/hls/live/2016501/dach/4c5a14a9d03ced57f8e34f50c0bfebd2/7/7.m3u8"

#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="A1.1+A2.1+A3.1-1566965899",NAME="TV Ton",LANGUAGE="deu",DEFAULT=YES,URI="https://zdf-hls-18.akamaized.net/hls/live/2016501-b/dach/4c5a14a9d03ced57f8e34f50c0bfebd2/5/5.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="A1.1+A2.1+A3.1-1566965899",NAME="Klare Sprache / Originalton",LANGUAGE="mul",URI="https://zdf-hls-18.akamaized.net/hls/live/2016501-b/dach/4c5a14a9d03ced57f8e34f50c0bfebd2/6/6.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="A1.1+A2.1+A3.1-1566965899",NAME="Audio-Deskription",LANGUAGE="deu",URI="https://zdf-hls-18.akamaized.net/hls/live/2016501-b/dach/4c5a14a9d03ced57f8e34f50c0bfebd2/7/7.m3u8"

#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="T1-3211583617",NAME="Untertitel deutsch",CODECS="wvtt",LANGUAGE="deu",DEFAULT=YES,AUTOSELECT=YES,URI="https://zdf-hls-18.akamaized.net/hls/live/2016501/dach/4c5a14a9d03ced57f8e34f50c0bfebd2/8/8.m3u8"

#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="T1-1566965899",NAME="Untertitel deutsch",CODECS="wvtt",LANGUAGE="deu",DEFAULT=YES,AUTOSELECT=YES,URI="https://zdf-hls-18.akamaized.net/hls/live/2016501-b/dach/4c5a14a9d03ced57f8e34f50c0bfebd2/8/8.m3u8"

#EXT-X-STREAM-INF:CODECS="avc1.4d401f,mp4a.40.2",BANDWIDTH=671111,AVERAGE-BANDWIDTH=581111,AUDIO="A1.1+A2.1+A3.1-3211583617",SUBTITLES="T1-3211583617",FRAME-RATE=25.000,RESOLUTION=480x270
https://zdf-hls-18.akamaized.net/hls/live/2016501/dach/4c5a14a9d03ced57f8e34f50c0bfebd2/1/1.m3u8
#EXT-X-STREAM-INF:CODECS="avc1.4d401f,mp4a.40.2",BANDWIDTH=671111,AVERAGE-BANDWIDTH=581111,AUDIO="A1.1+A2.1+A3.1-1566965899",SUBTITLES="T1-1566965899",FRAME-RATE=25.000,RESOLUTION=480x270
https://zdf-hls-18.akamaized.net/hls/live/2016501-b/dach/4c5a14a9d03ced57f8e34f50c0bfebd2/1/1.m3u8
#EXT-X-STREAM-INF:CODECS="avc1.4d401f,mp4a.40.2",BANDWIDTH=1173371,AVERAGE-BANDWIDTH=969371,AUDIO="A1.1+A2.1+A3.1-3211583617",SUBTITLES="T1-3211583617",FRAME-RATE=25.000,RESOLUTION=640x360
https://zdf-hls-18.akamaized.net/hls/live/2016501/dach/4c5a14a9d03ced57f8e34f50c0bfebd2/2/2.m3u8
#EXT-X-STREAM-INF:CODECS="avc1.4d401f,mp4a.40.2",BANDWIDTH=1173371,AVERAGE-BANDWIDTH=969371,AUDIO="A1.1+A2.1+A3.1-1566965899",SUBTITLES="T1-1566965899",FRAME-RATE=25.000,RESOLUTION=640x360
https://zdf-hls-18.akamaized.net/hls/live/2016501-b/dach/4c5a14a9d03ced57f8e34f50c0bfebd2/2/2.m3u8
#EXT-X-STREAM-INF:CODECS="avc1.4d401f,mp4a.40.2",BANDWIDTH=2257198,AVERAGE-BANDWIDTH=1807198,AUDIO="A1.1+A2.1+A3.1-3211583617",SUBTITLES="T1-3211583617",FRAME-RATE=25.000,RESOLUTION=960x540
https://zdf-hls-18.akamaized.net/hls/live/2016501/dach/4c5a14a9d03ced57f8e34f50c0bfebd2/3/3.m3u8
#EXT-X-STREAM-INF:CODECS="avc1.4d401f,mp4a.40.2",BANDWIDTH=2257198,AVERAGE-BANDWIDTH=1807198,AUDIO="A1.1+A2.1+A3.1-1566965899",SUBTITLES="T1-1566965899",FRAME-RATE=25.000,RESOLUTION=960x540
https://zdf-hls-18.akamaized.net/hls/live/2016501-b/dach/4c5a14a9d03ced57f8e34f50c0bfebd2/3/3.m3u8
#EXT-X-STREAM-INF:CODECS="avc1.640028,mp4a.40.2",BANDWIDTH=4504154,AVERAGE-BANDWIDTH=3544154,AUDIO="A1.1+A2.1+A3.1-3211583617",SUBTITLES="T1-3211583617",FRAME-RATE=50.000,RESOLUTION=1280x720
https://zdf-hls-18.akamaized.net/hls/live/2016501/dach/4c5a14a9d03ced57f8e34f50c0bfebd2/4/4.m3u8
#EXT-X-STREAM-INF:CODECS="avc1.640028,mp4a.40.2",BANDWIDTH=4504154,AVERAGE-BANDWIDTH=3544154,AUDIO="A1.1+A2.1+A3.1-1566965899",SUBTITLES="T1-1566965899",FRAME-RATE=50.000,RESOLUTION=1280x720
https://zdf-hls-18.akamaized.net/hls/live/2016501-b/dach/4c5a14a9d03ced57f8e34f50c0bfebd2/4/4.m3u8


It is possible to switch the resolution, but there is no audio or subtitle.
Any ideas?
I have not found a solution and probably won't be trying anything else since I have other stuff to do, but if you find anything I would be pleased to know how to fix this.