Hey folks, I finally managed to make Zattoo work again on my VPN+tvheadend setup, even living 9 time zones (that is, with high latency) away!
First of all, thank you so much to stones who first made the suggestion to try streamlink. It works so well, I even managed to make the setup work without telerising (except for setup)!
As he mentioned, it's really important to follow this guide to setup streamlink within the tvheadend docker. The m3u playlist looks something like this (2 channels example):
#EXTM3U
#EXTINF:0001 tvg-id="BBC4.uk" tvg-chno="22" group-title="General Interest" tvg-logo="https://images.zattic.com/logos/d2a47198bc1c7a8a5123/white/210x120 .png", BBC Four HD
pipe:///usr/bin/streamlink --config /config/streamlink.config --url https://zattoo.com/live/bbc-four
#EXTINF:0001 tvg-id ="CNN.nws" tvg-chno="23" group-title="News" tvg-logo="https://images.zattic.com/logos/313c55f90368cad92afc/white/210x120. png", CNN International HD
pipe:///usr/bin/streamlink --config /config/streamlink.config --url https://zattoo.com/live/cnn-international
A few important differences with the original guide:
- I use pipe:///usr/bin/streamlink rather than pipe:///usr/bin/env
- I rely on --config to avoid passing all streamlink's arguments, and there's many! (see below)
The only annoying part is that I needed to find the url for each channel, but a simple trick is to download telerising m3u and take the hint from there: just replace http://<telerising_ip>:port/api/ zch with https://zattoo.com , et voila!
Here's the critical bit, though. Streamlink configuration is really important to make things work! It took me a while to find a satisfactory setup and you might have a different setup, in particular regarding stream-segment-threads, hls-live-edge , and [tt ]ringbuffer-size[/tt].
Here's what works for me:
# How to run
# pipe:///usr/bin/streamlink --config /config/streamlink.config --url https://zattoo.com/live/cnn-international
#
# general
stdout
locale=de_CH
# zattoo
zattoo-email=your_zattoo_email
zattoo-password=your_zattoo_password
zattoo-stream-types=hls7
# stream
hls-live-edge=4
stream-segment-threads=4
default-stream=720p,best
ringbuffer-size=32M
# ffmpeg
# saves tons of CPU since it doesn't need to mux (?)
ffmpeg-fout=mpegts
# solves audio sync issues when piping to file
ffmpeg-copyts
# other
# only enable if you want to see what's going on
#loglevel=debug
Alles anzeigen
Note: the location of the configuration ( /config/streamlink.config ) is within the docker and it's the same tvheadend uses. I just put it there because it was convenient and it's stable across docker updates.