Jellyfin Forum
Can't play m38u files - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: Troubleshooting (https://forum.jellyfin.org/f-troubleshooting)
+--- Thread: Can't play m38u files (/t-can-t-play-m38u-files)



Can't play m38u files - gartiol - 2025-01-28

I am trying to get Jellyfin to play (stream) m3u8 files from an external online source.

An example of a file I would like Jellyfin to play is this file: https://drod20m.akamaized.net/all/clear/none/36/6732040cc1baac3e44fd4336/00572215010/stream_fmp4/master_manifest.m3u8

When downloaded the file looks like this:
Quote:#EXTM3U
#EXT-X-VERSION:6
#EXT-X-INDEPENDENT-SEGMENTS


#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio_low",NAME="English",LANGUAGE="en",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="Bag-enhver-mand_DRTV-20240300_FullHD_16x9_VideoMain_audio_128kbps.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio_medium",NAME="English",LANGUAGE="en",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="Bag-enhver-mand_DRTV-20240300_FullHD_16x9_VideoMain_audio_192kbps.m3u8"

#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Fremmedsprogstekster",DEFAULT=YES,AUTOSELECT=YES,FORCED=NO,LANGUAGE="da",URI="../subtitles/Foreign-Bag-enhver-mand_DRTV-20240300_FullHD_16x9_VideoMain/playlist.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Dansk",DEFAULT=NO,AUTOSELECT=NO,FORCED=NO,LANGUAGE="da",URI="../subtitles/Foreign_HardOfHearing-Bag-enhver-mand_DRTV-20240300_FullHD_16x9_VideoMain/playlist.m3u8"

#EXT-X-I-FRAME-STREAM-INF:AVERAGE-BANDWIDTH=15432,BANDWIDTH=25520,VIDEO-RANGE=SDR,CODECS="avc1.42C01E",RESOLUTION=640x360,URI="Bag-enhver-mand_DRTV-20240300_FullHD_16x9_VideoMain_video_500_iframe.m3u8"
#EXT-X-I-FRAME-STREAM-INF:AVERAGE-BANDWIDTH=35846,BANDWIDTH=63332,VIDEO-RANGE=SDR,CODECS="avc1.64001F",RESOLUTION=852x480,URI="Bag-enhver-mand_DRTV-20240300_FullHD_16x9_VideoMain_video_1100_iframe.m3u8"
#EXT-X-I-FRAME-STREAM-INF:AVERAGE-BANDWIDTH=55768,BANDWIDTH=92302,VIDEO-RANGE=SDR,CODECS="avc1.640028",RESOLUTION=960x540,URI="Bag-enhver-mand_DRTV-20240300_FullHD_16x9_VideoMain_video_2000_iframe.m3u8"
#EXT-X-I-FRAME-STREAM-INF:AVERAGE-BANDWIDTH=85514,BANDWIDTH=140880,VIDEO-RANGE=SDR,CODECS="avc1.640029",RESOLUTION=1280x720,URI="Bag-enhver-mand_DRTV-20240300_FullHD_16x9_VideoMain_video_3500_iframe.m3u8"
#EXT-X-I-FRAME-STREAM-INF:AVERAGE-BANDWIDTH=130569,BANDWIDTH=221388,VIDEO-RANGE=SDR,CODECS="avc1.640029",RESOLUTION=1920x1080,URI="Bag-enhver-mand_DRTV-20240300_FullHD_16x9_VideoMain_video_5500_iframe.m3u8"

#EXT-X-STREAM-INF:BANDWIDTH=706330,AVERAGE-BANDWIDTH=629515,FRAME-RATE=25.000,CODECS="avc1.42C01E,mp4a.40.2",RESOLUTION=640x360,VIDEO-RANGE="SDR",AUDIO="audio_low",SUBTITLES="subs"
Bag-enhver-mand_DRTV-20240300_FullHD_16x9_VideoMain_video_500.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=1396820,AVERAGE-BANDWIDTH=1226412,FRAME-RATE=25.000,CODECS="avc1.64001F,mp4a.40.2",RESOLUTION=852x480,VIDEO-RANGE="SDR",AUDIO="audio_low",SUBTITLES="subs"
Bag-enhver-mand_DRTV-20240300_FullHD_16x9_VideoMain_video_1100.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2522305,AVERAGE-BANDWIDTH=2186176,FRAME-RATE=25.000,CODECS="avc1.640028,mp4a.40.2",RESOLUTION=960x540,VIDEO-RANGE="SDR",AUDIO="audio_medium",SUBTITLES="subs"
Bag-enhver-mand_DRTV-20240300_FullHD_16x9_VideoMain_video_2000.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4234290,AVERAGE-BANDWIDTH=3673027,FRAME-RATE=25.000,CODECS="avc1.640029,mp4a.40.2",RESOLUTION=1280x720,VIDEO-RANGE="SDR",AUDIO="audio_medium",SUBTITLES="subs"
Bag-enhver-mand_DRTV-20240300_FullHD_16x9_VideoMain_video_3500.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=6447199,AVERAGE-BANDWIDTH=5655913,FRAME-RATE=25.000,CODECS="avc1.640029,mp4a.40.2",RESOLUTION=1920x1080,VIDEO-RANGE="SDR",AUDIO="audio_medium",SUBTITLES="subs"
Bag-enhver-mand_DRTV-20240300_FullHD_16x9_VideoMain_video_5500.m3u8

If I try to play that file with Jellyfin, Jellyfin won't play the best version/resolution of the file (1920x1080). Jellyfin will only play the first version listen (640x360).

To fix that error i have made a new m3u8 file with links to audio and video sources.

This file looks like this:
Quote:#EXTM3U

#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",NAME="English",LANGUAGE="en",AUTOSELECT=YES,DEFAULT=YES,URI="{censored IPTV URL - TDP}-20240300_FullHD_16x9_VideoMain_audio_192kbps.mp4"

#EXT-X-STREAM-INF:BANDWIDTH=6447199,RESOLUTION=1920x1080,CODECS="avc1.640029,mp4a.40.2",AUDIO="audio"
{censored IPTV URL - TDP}-20240300_FullHD_16x9_VideoMain_video_5500.mp4

When I try to play that with Jellyfin, Jellyfin just stops.

The following errors shows up in the logs:
Quote:FFmpeg exited with code 234
[2025-01-28 16:56:54.174 +01:00] [ERR] Error processing request. URL "GET" "/videos/3428acde-9c9a-4b29-e7b9-7847a945c0dd/live.m3u8".
MediaBrowser.Common.FfmpegException: FFmpeg exited with code 234

From ffmpegs log:
Quote:[hls @ 0x654170639440] Opening '{censored IPTV URL - TDP}-20240300_FullHD_16x9_VideoMain_audio_192kbps.mp4' for reading
[https @ 0x6541706468c0] Protocol 'https' not on whitelist 'file,crypto,data'!
[hls @ 0x654170639440] parse_playlist error Invalid argument [{censored IPTV URL - TDP}-20240300_FullHD_16x9_VideoMain_audio_192kbps.mp4]
[hls @ 0x654170639440] Opening '{censored IPTV URL - TDP}-20240300_FullHD_16x9_VideoMain_video_5500.mp4' for reading
[https @ 0x6541706468c0] Protocol 'https' not on whitelist 'file,crypto,data'!
[hls @ 0x654170639440] parse_playlist error Invalid argument [{censored IPTV URL - TDP}-20240300_FullHD_16x9_VideoMain_video_5500.mp4]
[hls @ 0x654170639440] Empty segment [{censored IPTV URL - TDP}-20240300_FullHD_16x9_VideoMain_video_5500.mp4]

It is my understanding that protocols can be added to ffmpegs whitelist. But I still have to figure out if that is the actual problem.

Can the problems be fixed, or am I simply trying to get Jellyfin to play something, that it just cant do?

Pointers and help will be greatly appreciated.


RE: Can't play m38u files - TheDreadPirate - 2025-01-28

Try creating an m3u without the EXT headers. Just a link to the MP4.

If that doesn't work, consider using an IPTV proxy with the original M3U. Something like TVHeadend or Threadfin.


RE: Can't play m38u files - gartiol - 2025-01-28

I removed the headers, but that didn't seem to work.

Is both TVHeadend and Threadfin used for livetv? If I am able to use TVHeadend or Threadfin to play the original m3u8 file, i would have to import 100's of files..But how would that work? Is the layout like livetv EPG?


RE: Can't play m38u files - TheDreadPirate - 2025-01-28

They are IPTV proxies. You feed IPTV into each and then those apps send the video to Jellyfin. You'd still have to setup liveTV in Jellyfin, but the provider would be TVHeadend/Threadfin. TVHeadend has a plugin you install in Jellyfin to automate that setup.