How to install an IPTV playlist without addons … and more
Reminder and brief review of the installation of IPTV lists in CE/LE including the use of automatically generated piped streams in tvheadend
When we handle IPTV lists we immediately think of addons like PVR IPTV Simple Client, we also think of the tvheadend server that will allow us to make recordings and organize extensive TV channel libraries, and we forget that there are other methods that are easier to use or test. , or we find that tvheadend is unable to handle streams in m3u8 format.
As an exercise we are going to install the list of FTA channels https://iptv-org.github.io/iptv/countries/de.m3u (I recommend taking a look at GitHub - iptv-org/iptv: Collection of publicly available IPTV channels from all over the world</ti because It contains IPTV lists from almost every place in the world).
Quick mode: adding IPTV playlist to Kodi:
Add this command in /storage/.config/autostart.sh:
wget -qO /storage/.kodi/userdata/playlists/video/FreeTV_DE.m3u "https://iptv-org.github.io/iptv/countries/de.m3u"
After restarting CE we already have the FreeTV_DE playlist available in the Videos playlists section … and it works, but we cannot make recordings or reorder the channels. If we want a step further we could create something that tvheadend names as IPTV Network and add it to the rest of our TV services.
Complex mode: adding piped playlist to tvheadend:
I recommend first of all adding the following commands in /storage/.config/autostart.sh:
# allow us to see the playlist on Kodi
wget -qO /storage/.kodi/userdata/playlists/video/FreeTV_DE.m3u "https://iptv-org.github.io/iptv/countries/de.m3u"
# copy the playlist somewhere else before generating piped streams because
# tvheadend is unable to play m3u8 streams
mkdir -p /storage/playlists
cp /storage/.kodi/userdata/playlists/video/FreeTV_DE.m3u /storage/playlists/FreeTV_DE.m3u
# convert normal playlist into piped streams playlist
/storage/playlists/pipedm3u.sh /storage/playlists/FreeTV_DE.m3u
from now on we have the file “file:///storage/playlists/FreeTV_DE.m3u.piped.m3u” to add to tvheadend piped streams
The executable script /storage/playlists/pipedm3u.sh can have the following content:
#!/bin/sh
if [[ -z $1 ]]; then
echo "PLAYLIST ERROR!"
else
sed '/#EXTM3U/s/http/TEMP/' $1 > $1.piped.m3u
sed -i '/#EXTINF/!s/http/pipe:\/\/\/usr\/bin\/ffmpeg -hide_banner -loglevel error -i "http/' $1.piped.m3u
sed -i '/#EXTINF/!s/$/" -c copy -f mpegts pipe:1/' $1.piped.m3u
sed -i '/#EXTM3U/s/TEMP/http/' $1.piped.m3u
sed -i '/#EXTM3U/s/" -c copy -f mpegts pipe:1//' $1.piped.m3u
fi
Notes.-
-
I am using docker tvheadend 4.3 and inside the container ffmpeg is in /usr/bin/ffmpeg. Modify this at your convenience, you can find your ffmpeg with the command “which ffmpeg”.
-
The piped settings are good for converting hls streams according to IPTV wurl standards (pluto tv, samsung tv, …) to ts streams manageable by tvheadend.