I just checked again what happened.
http://blabla/manifest.m3u8?blabla
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:BANDWIDTH=2628000
QualityLevels(2628000,as=video)/Fragments(video=i,format=hls).m3u8
http://blabla/QualityLevels(2628000,as=video)/Fragments(video=i,format=hls).m3u8
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:2265165
#EXTINF:5.472133,title
Fragments(video=15028949089894986,format=hls)
#EXTINF:5.372033,title
Fragments(video=15028949144616319,format=hls)
#EXTINF:4.337667,title
Fragments(video=15028949198336653,format=hls)
#EXTINF:5.605600,title
Fragments(video=15028949241713319,format=hls)
#EXTINF:5.005000,title
Fragments(video=15028949297769319,format=hls)
...
tvh works very well if there isn't #EXT-X-DISCONTINUITY tag.
tvh loads each track url after m3u duration one by one.
But there is #EXT-X-DISCONTINUITY tag like this
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:2265218
#EXTINF:4.904900,title
Fragments(video=15028951740876653,format=hls)
...
#EXTINF:2.002000,title
Fragments(video=15028952040509319,format=hls)
#EXT-X-DISCONTINUITY <--- tvh ignores m3u duration after this line
#EXTINF:5.605600,title
Fragments(video=15028952084529319,format=hls)
#EXTINF:5.205200,title
Fragments(video=15028952140585319,format=hls)
#EXTINF:4.204200,title
Fragments(video=15028952192637319,format=hls)
tvh starts to ignore m3u duration since met #EXT-X-DISCONTINUITY.
So, tvh loads every track urls asap and then refetch m3u8.
If m3u8 has new next track, tvh loads every tracks asap and again and again...
Finally, new track isn't ready yet and tvh got "iptv: m3u contents parsing failed" error