Vor ein paar Wochen (oder schon Monate) hat Init7 ja bekanntlich ihr TV7 Angebot ohne Mehrkosten in ihr Fiber7 oder Crossover7 integriert. Der von Init7 empfohlene Weg TV7 zu beziehen ist über eine AppleTV App. Darauf habe ich aber keine Lust, da ich kein AppleTV habe sondern eine AndroidTV Box. Da Init7 aber extrem offen ist, können die TV Streams mit einem beliebigen anderen Client über einen Multicast Stream ist bester Qualität bezogen werden.
Nun stellt sich aber die Frage, wie kommt der Stream ins Wohnzimmer. Dafür gibt es mehrere Möglichkeiten, eine davon wäre z.B. der IPTV Simple Client mit Kodi zu verwenden. Dazu stellt Init7 ein .m3u File zur Verfügung. Das ganze funktioniert ohne Probleme, mir fehlt aber der bisher bekannte Komfort wie zappen, EPG, „Non-Nerd“-Friendly Bedienung etc. Eine weiter Möglichkeit ist das TVHeadend Plugin für Kodi zu Verwenden. Dazu muss ein TVHeadend Server laufen. Um das auszuprobieren, habe ich auf meinem Synology NAS das ganze mal in einem Docker Container ausprobiert. Auch das funktionierte grundsätzlich. Die Bedienung anschliessend in Kodi ist aber immer noch nicht so ganz 100% zufriedenstellend. Ich hab sogar kurz darüber nachgedacht, eine eigene AndroidTV App zu schreiben:
erste Gehversuche mit AndroidTV SDK. Channels werden via XSPF Playlist geladen. Mit dem Abspielen vom UDP Multicast Stream haperts aber noch. Hat das schon jemand mit Android gemacht? pic.twitter.com/EqmBSSTxm6
— Sebastian Plattner (@SebaPlattner) 23. Mai 2018
Allerdings habe ich damit nicht wirklich Erfahrung und deshalb war mir der Aufwand zu gross.
Kürzlich bin ich dann auf diesen Tweet gestossen:
geht problemlos mit https://t.co/1A6nS1HN0b und https://t.co/6qcOPi8Bxb, beides zb via @Synology und docker nutzbar. habe es selbst am laufen, mit dvr, guide usw.
— boessi (@boessiCH) 6. Juli 2018
und da ich Plex auch verwende, wollte ich das gleich mal ausprobieren. Udpxy und Telly habe ich auf meinen Synlology als Docker Container am laufen.
Telly präsentiert sich Plex als HDHomerun Device, welches kompatibel mit Plex ist.
Damit Telly die TV7 Sender Plex zur Verfügung stellt, benötigt es die URL des .m3u File von TV7. Darin stehen alle vorhandenen TV7 Sender, allerdings mit den Multicast URLs der Streams. Plex kann diese nicht direkt abspielen, deshalb wird Udpxy verwendet um aus dem UDP Multicast Stream einen HTTP Stream zu erstellen. Udpxy hat ein HTTP Interface mit welchem der HTTP Stream geladen wird. Die Multicast URL aus dem .m3u File muss also etwas angepasst werden und dann an Udpxy gesendet werden. Das Format welches Udpxy erwartet sieht so aus:
http://ip:port/cmd/mgroup_address:mgroup_port/
Im m3u File sieht die URL so aus:
udp://@239.77.0.5:5000
Nun wäre es möglich, ein eigenes .m3u File manuell zu erstellen und Telly mitzugeben, ich wollte das aber nicht um nicht bei jeder Änderung von TV7 erneut ein m3u File zu erstellen. Ich hab dann halt einfach Telly ein wenig umgeschrieben um das umformatieren der URL automatisch zu machen. Mein Fork von Telly ist unter meinem Github Account zu finden: https://github.com/splattner/telly. Telly ist in Go geschrieben, die Änderungen die ich gemacht habe, sind relativ klein. Das könnte sicher noch etwas schöner gemacht werden, ich habs halt einfach auf meine Bedürfnisse angepasst. Im Repository befindet sich auch ein Dockerfile und der Docker Container dazu wird automatisch gebaut und steht auf Docker Hub zur Verfügung. Mit meiner Änderung kann dem Container neu die Umgebungsvariable UDPXY mit IP:PORT des udpxy Service angegeben werden und telly wandelt dann automatisch die Multicast URL’s in udpxy URL’s um, die Plex abspielen kann.
Plex verwendet anschliessend EPG Daten und verknüpft diese mit den Kanälen von TV7. Ich verwende hier Quickline als EPG Quelle, Plex findet allerdings auch weitere Anbieter in der Schweiz. Das Mapping zwischen TV7 Kanal und dem Quickline EPG musste ich teilweise manuell anpassen, da die Kanäle nicht immer ganz gleich heissen. Weiter sind in den Quickline EPG Daten auch nicht ganz alle Kanäle von TV7 vorhanden. Hier ist noch Optimierungspotential vorhanden (aber Init7 arbeitet wohl bestimmt schon an offenen EPG Daten 😉 )
Anschliessend zeigt Plex die einzelnen Kanäle mit den dazugehörigen EPG Daten an. Plex kann auch direkt Recordings von Filmen / TV Serien etc erstellen. Man kann z.B. automatisch alle Folgen einer TV-Serie aufnehmen.
Die Programme (oder Aufnahmen) kann ich anschliessen mit einem beliebigen Plex Client anschauen, z.B. auf meinem AndroidTV Player im Wohnzimmer. Allerdings muss man hier sagen, auch hier muss man sich etwas an Plex gewöhnen. Man wählt vielmehr die Sendung aus, die man sehen will und Plex spielt dan den ensprechenden Kanal ab. Wenn euer Plex Server aus dem Internet erreichbar ist, könnt ihr somit auch von überall unterwegs TV7 schauen.
Hier noch ein paar Details wie meine Docker-Container laufen:
Telly, läuft bei mir mit Network = Host. Würde aber auch normal mit Bridge und Port-Mapping gehen. Bei mir verwende ich die folgenden Env Variabeln (ihr müsst das natürlich anpassen).
Mit DIRECTMODE = true sagt ihr telly, dass es direkt die UDPXY URL Plex mitteilen soll, damit wir ein unnötiges HTTP Redirect auf dem telly Server umgangen.
Udpxy muss wegen dem Multicast Stream mit Network = Host laufen. Hier werden keine speziellen env Variabeln verwendet. Ich verwende das folgende Image dafür: vistalba/udpxy
Hallo Sebastian
Leider blicke ich bei dieser installation nicht ganz durch, wäre es möglich dies etwas genauer zu dokumentieren? Würde das Setup gerne für mich übernehmen.
Ich danke dir viel Mals
Wo kommst du nicht weiter?
Das Setup ist halt nicht ganz so User-friendly und setzt gewisses Vorkenntnisse voraus. Eine genauere Anleitung macht auch nicht so viel Sinn, kenne dein Setup nicht. Mit den Infos hier und etwas ausprobieren solltest du es aber eigentlich hinbekommen.
Hast du einen Docker-Host auf dem du Docker-Container laufen lassen kannst?
Du musst 2 Docker Container ausführen:
1. telly, z.b. splattner/telly Dieser „gauckelt“ Plex ein HD-Homerun Server vor und liefert die URLs von TV7 bzw. die Url des udpxy umgewandelten UDP Multicast Stream.
Für telly musst du die im Beitrag genannten Env Variabeln setzen.
2. udproxy z.B. vistalba/udpxy welcher die UDP Multicast Streams in einen HTTP Stream umwandelt.
udproxy muss mit net = host laufen (wegen Multicast). Weiter muss dein Router/Switches auch richtig konfiguriert sein, damit der UDP Stream überhaupt kommt. Dazu findest via Google die Infos.
Danke für deine schnelle Antwort.
Einen Docker Host ansich hatte ich zuvor nicht, habe es auf einem Raspberry Pi Docker Host versucht zu installieren. Denke hier wird aber der ARM Prozessor den Fehler ausgeben haben.
Werde nun mal auf dem Mac mini Docker installieren und es hier versuchen.
Hallo Sebastian, das einzige Problem scheint jetzt nur noch telly zum laufen zu bringen.
Der UDPProxy läuft, jedoch ist mir nicht klar wie ich telly mit den richtigen Parameter befülle wie z.B. der M3U URL.
Docker auf dem Raspi müsste eigentlich schon gehen. Auf die Schnelle habe ich zumindest diverse Anleitungen gefunden. Habs aber noch nie selber gemacht und ob die Performance des Raspi reicht, weiss ich nicht.
Wenn du meinen telly Container verwendest, kannst du mit den im Beitrag genannten ENV Variabeln deine Konfiguration setzen.
z.B.
PLAYLIST=https://api.init7.net/tvchannels.m3u
TZ=Europe/Zurich
STREAMS=6
DIRECTMODE=true
UDPXY=192.168.10.50:9983
BASE=192.168.10.50:6077
LISTEN=192.168.10.50:6077
FRIENDLYNAME=TV7
UDPXY muss aber natürich auf deinen udpxy Container gesetzt sein, Base und Listen auf deinen Telly Container.
Wie du ENV Variabeln setzt findest du in der Docker Dokumentation: https://docs.docker.com/engine/reference/run/#env-environment-variables
Danke für deine Anleitung, welchen Client oder Clients verwendest du am TV? Ist das verwenden der Aufnahmefunktion und sonstige Bedienung einfach zu verstehen? Würde gerne bei meinen Eltern von der Swisscom auf init7 wechseln.
Hallo Josh
Ich habe bei mir ein Minix U9-H am TV im Einsatz (Android) und nutze darauf den Plex Client. Um TV zu schauen, nutze ich allerdings mein Plex/telly/udpxy/tv7 setup aber Momentan gar nicht. Dafür habe ich Wilmaa. Der Hauptgrund dafür ist das fehlende Replay von TV7.
Die Aufnahmefunktion funktioniert aber gut (soweit ich das mit meinen paar wenigen Versuchen beurteilen kann).
Das klassische „Zappen“ (=ChannelUp/Down) geht aber soweit ich weiss in Plex nicht, man hat einen Guide, und kann sich darauf den gewünschten Sender aussuchen oder aber man kann den Guide direkt nach Titel einer Sendung durchsuchen (sofern EPG sauber eingerichtet ist) und die Sendung starten, wenn sie z.Z. läuft oder eine Aufnahme programmieren.
Ich schlage dir vor, das Handling erst ein mal auszuprobieren, ich behaupte, das man sich z.Z. noch etwas daran gewöhnen muss und für den 0815 Zuschauer noch nicht 100% Optimal ist.
Grüsse, sebastian
Hallo Sebastian
Hat sich bei dir etwas getan/geändert betreffend Replay Funktion? Momentan scheint die einzige Lösung welche ich finden kann einen Apple TV zu kaufen, was ich eigentlich vermeiden möchte…
LG
Nein leider nicht, verwende immer noch Wilma auf einem AndroidTV. Init7 hat wohl eine Android Version in der Pipeline, nähere Details gibt es aber nicht.
grüsse, sebastian
Kann ich so bestätigen, gestern (25.06 2019) sagte ihr support dazu: „Unsere Entwickler sind zurzeit an einer TV7 Android App dran. Wenn diese released und ob die App Replay Funktionalitäten haben wird kann ich Ihnen nicht sagen.“
Hi Seb
Danke für die Anleitung. Ich verwende zwar den originalen Telly aber hat trotzdem geholfen (es scheint mir naheliegender, die playlist anzupassen. Mit nem Script, der die playlist von INIT7 holt und umwandelt geht das auch effizient).
Anyway: meine Frage geht eher zur Organisation des EPGs.
Hast Du mal einen passenderen EPG Lieferanten gefunden, als die die im Plex verfügbar sind?
Grüsse
Oli
Hallo Oli, sorry, sehe deinen Kommentar erst gerade jetzt.
EPG ist so ne Sache, irgendwie gibt es wenig vernünftiges. Bin immer noch bei Quickline was in Plex verfügbar ist. Evtl. wäre https://github.com/XMLTV/xmltv interessant, da hat es ein Grabber für search.ch: https://github.com/XMLTV/xmltv/tree/master/grab/ch_search Habs aber selbst noch nicht ausprobiert wie und ob sich das integrieren lässt.
grüsse, sebastian
Wie wäre es ev. damit?
The easyEPG Project // Rytec-Alternative | EPG XMLTV-Dateien zum Download
https://www.kodinerds.net/index.php/Thread/61036-The-easyEPG-Project-Rytec-Alternative-EPG-XMLTV-Dateien-zum-Download/
Hab’s selber noch nicht ausprobiert.
Grüsse Thomas
Auch ich möchte mich für die hilfreiche Anleitung bedanken.
Das mit dem Download Script fand ich auch eleganter und hatte folgendes Script entwickelt:
# cat /etc/cron.weekly/tv7.dl
#!/bin/bash
curl https://api.init7.net/tvchannels.m3u | sed -E ’s/udp\:\/\/@(.*)$/http:\/\/127.0.0.1\:4022\/udp\/\1\//‘ > /opt/telly/tv7.m3u
Das Script schreibt mir die Adresse inline beim herunterladen um 😉
Was ich etwas vermisst hatte, waren die initialen docker commands, um die docker container ‚korrekt‘ zu erstellen… mit etwas üben hab ich’s aber dann hinbekommen…
Grüsse
Christian
Hallo Sebastian
Ich bin gerad über dein Tutorial hier gestolpert und wollte es selbst mal ausprobieren.
Jedoch bekomme ich telly nicht zum laufen… ich bekomme immer die Meldung, dass der -Docker-Container (auf Synology-NAS) unerwartet gestoppt wurde.
Kannst du den Container lokal bei dir starten? Steht etwas in den Logs?
Ich vermute mal, dass Du keine Variablen gesetzt hast.
Hallo Sebastian, hast du eine Idee weshalb meine Synology nur noch wenige kb/s aus dem Internet ziehen kann wenn ich den Directmode verwende?
Was genau meinst du mit Directmode? Meinst du die Env Variable des UDPXY? Da könnte ich mir aber überhaupt keinen Zusammenhang vorstellen. Das ändert einzig die URL die Plex mitgeteilt wird, sprich die direkte Telly Stream URL anstelle von UDPXY der dann ein Redirect auf Telly macht.
Ja genau. Ich sah da auch keinen Zusammenhang und habe herausgefunden, dass ich wohl Opfer von Multicast Flooding bin, trotz IGMP fähiger Switches. 🙁
Super Beitrag, ich verwende das ungefähr so und funktioniert super. UDProxy habe ich direkt auf dem Asus Router aktiviert.
EPG Informationen von hier funktionieren sehr gut, einfach das file downloaden/entpacken und Plex den lokalen Pfad bei Einbindung vom Tuner mitteilen.
https://github.com/mathewmeconry/TV7_EPG_Data
docker run -t –name=“tv7playlist_1″ -p 8000:80 -e „UdpxyUrl=http://192.168.0.1:4000/udp“ -v /volume/docker/tv7playlist_1/data:/data –restart=unless-stopped phaefelfinger/tv7playlist:latest
docker run -t –name=“telly_1″ –network=“host“ -e „TZ=Europe/Zurich“ -v „/volume/docker/telly_1/telly.config.toml:/etc/telly/telly.config.toml“ –restart=unless-stopped tellytv/telly:dev-ffmpeg
telly.config.toml
[Discovery]
Device-Auth = „telly93773z79573789“
Device-Friendly-Name = „TV7“
[IPTV]
Direct = true
Streams = 6
[Web]
Base-Address = „192.168.0.10:6077“
Listen-Address = „192.168.0.10:6077“
[[Source]]
Name = „TV7“
Provider = „Custom“
M3U = „http://192.168.0.10:8000/api/playlist/with-proxy“
Sort = „group-title“
Vielen Dank für den tollen Beitrag, bei mir hat das monatelang super funktioniert!
Doch seit Juli (Plex Version 1.16.5) funktioniert Live TV nicht mehr richtig. Habs auch mal mit „phaefelfinger/tv7playlist“ ausprobiert, aber leider ohne Erfolg.
Nachdem der Tuner von Plex erkannt und erfolgreich hinzugefügt wurde, verliert Plex immer wieder die Sender. Bei manchen Sendern funktioniert Live TV, bei vielen jedoch nicht, dann rädelt es endlos lange oder es kommt gleich die Meldung „Tune in nicht möglich, Channel not on air“. Ein Weilchen später laufen die gleichen Sender wieder, dafür gehen andere nicht mehr… Auch das Aufnehmen klappt mal und mal nicht. Habe auch schon ein Downgrade von Plex gemacht, bei 1.16.0 funktionierte es noch, bei 1.16.5 nicht mehr in einem ansonsten unveränderten Setting (Telly, Udpxy, Netzwerk). Danach habe ich Plex komplett neuinstalliert, was auch nichts brachte…
Wenn ich die von Telly generierten Links in VLC öffne, laufen alle Sender problemlos.
Habt ihr eine Idee, woran das liegen könnte? Habe aktuell Plex 1.18.2.2015 auf einer DS918+ laufen, dort Udpxy und Telly im Docker installiert (wie von dir beschrieben), TV7 via Glas (Multicast), Fritzbox 7490, AppleTV.
Danke…
Habe telly und udpxy auf meiner syno. via docker installiert aber unter plex wird die simulierte HomeRun nicht gefunden… Woran liegt das?
Bekomme jeweils folgende Meldung:
Ein Fehler ist aufgetreten beim Hinzufügen von Gerät: 192.168.1.30:6060
Vielleicht kannst du https://github.com/rbuehlma/pvr.zattoo/ als Basis für eine eigene App nutzen.
Anscheinend gibt es ja Multicast nur bei Fiber7 und Crossover7, geht das dann nicht bei Copper7?
Siehe https://www.init7.net/de/support/faq/TV7-Voraussetzungen/
Ob man auf die Unicast Quellen direkt Zugriff hat, habe ich keine Ahnung. Wenn ja, denke ich lässt sich etwas ähnliches einrichten.
Hi Oli
Es gibt seit nun über einem Jahr eine source für TV7 EPG hier:
https://github.com/mathewmeconry/TV7_EPG_Data
Gruss
Mathias
https://hub.docker.com/r/splattner/telly/ ist nicht mehr verfügbar, 404, kannst das wieder uploaden? oder mir dein fork schicken? Gruss Chris
HalLo Chris. Du findest meine Anpassungen hier: https://github.com/splattner/telly Allerdings verwende ich das Setup schon lange nicht mehr. Habe keine Ahnung ob das so noch funktioniert.
Ich will mich auch mal mit PLEX versuchen. Habe einiges gelesen. Auch immer wieder die Vergleich zu Kodi. PLEX sei da deutlich einfacher zu handhaben. Mag sein, aber was Live TV angeht sehe ich das überhaupt nicht so. Ich wollte keinen Informatik-Kurs durchmachen, um die Öffis in der Rubrik sehen zu können. Das war mit Kodi ein Kinderspiel. Hier verstehe ich rein gar nichts 🙁
Mir fehlt hier kganz einfach der Button (oder Menüpunkt) „Lokale Sender hinzufügen“ (oder suchen oder vergleichbares)