Skip to content
Valdas Vaitiekaitis edited this page Jan 2, 2018 · 8 revisions

Playlist

Sample playlist is located in IPTV.bundle\Content\Resources\playlist.m3u, you can specify other file name in preferences, but You can not specify a path outside resources folder because Plex prohibits it. Remote playlist is also supported, You just need to specify a direct link to it, with http part included. Playlist should be encoded in UTF-8 without BOM, I recommend using Notepad++ to check and convert if needed.

Included sample playlist is for testing purposes only, some streams might be dead by now, here is a short list of resources to get started, however please keep in mind, I am not associated with them and not responsible for their content, try it at Your own risk:

To force playlist reload You need to set automatic M3U reload time to "never" in plug-ins preferences and restart the server or wait for playlist to reload automatically on set time.

Attributes

Playlist supports additional attributes that can be optionally defined in line after #EXTINF:0 and before the name of the media:

  • tvg-id - used to identify channel in XMLTV;
  • tvg-name - alternative way to identify channel by name in XMLTV;
  • tvg-logo or logo - stream logo or icon, can use remote media (url must include http part) or stored images from \IPTV.bundle\Content\Resources folder (file name must include extension);
  • art - stream background art, works same as logo;
  • group-title - category name (for a channel to be visible in multiple categories just make a copy of an entry in the playlist with different category name);
  • group-logo - category logo, only counts what is defined in first line where specific category is first time spotted, that means if You have two channels with same category name, logo and art supplied in first line of those two will be used;
  • group-art - category background art, works same as group-logo.

Attribute value must be surrounded by quotation marks like this:

#EXTM3U
#EXTINF:0 tvg-id="Cartoon Network" tvg-logo="icon-default.png" group-title="Cartoons" group-logo="icon-folder.png",Cartoon Network
http://192.168.1.1:1111/udp/224.3.3.112:1234
#EXTINF:-1 tvg-logo="http://www.lyngsat-logo.com/hires/mm/mtv_dance_us.png" group-title="Music",MTV Dance
http://192.168.1.1:1111/udp/224.3.3.113:1234

See included sample playlist for a bigger example.

Advanced attributes

It is possible to define a specific protocol, audio codec, video codec and container using respective M3U attributes protocol, audio_codec, video_codec and container. Possible values could be found in file \Plex\Plex Media Server\Resources\Plug-ins-...\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\api\constkit.py, however some users report other values that are very useful for iOS devices (issue #81).

It is also possible to define a specific user agent string for a stream using attribute user_agent that would be used instead of the default one or the one defined in preferences.

Another advanced attribute is optimized_for_streaming. It is meant to override 17th option in preferences. When set to 1 it says Plex to play stream directly without transcoding and 0 should force it to transcode disregarding Direct Play and Direct Stream settings.

  • #EXTM3U - File header. Must be the first line of the file.
  • #EXTINF - Stream information, including runtime that has no effect but is required, any of the attributes listed above and a title (example is provided above).
  • #EXTIMPORT - Used to import entries from other playlist (sample).
  • #EXTGRP - Might be used instead of group-title attribute.
  • #EXTVLCOPT:http-user-agent - Might be used instead of user_agent attribute.
  • Any other comments starting with # (like #EXTVLCOPT) can be present in playlist, but will have no effect on playlist or playback.

Read further for more information about supported protocols and required configurations.