- Registriert
- 18. Februar 2017
- Beiträge
- 1.822
- Lösungen
- 3
- Reaktionspunkte
- 1.644
- Punkte
- 1.970
Moin zusammen,
aus Neugierde und Interesse mehr zu verstehen, wie die ganze Stalker Geschichte funktioniert, habe ich mir ein eigenes Stalker Portal gebaut. Das ist natürlich deutlich inspiriert von @clever999 und @salidos, ist aber schlanker aufgebaut. Und auch Dankeschön an beide, bei Fragen immer geholfen.
Kurz zusammengefasst könnt ihr Portale hinzufügen, Kategorien auswählen und euch daraus eine Playlist erstellen lassen. Diese erstellte Playlist verweist auf einen nginx Webserver, welcher dann eine passende MAC auswählt und dem Player den passenden Link zurück sendet.
Getestet habe ich die ganze Sache auf einer Ubuntu VM. Ich bin kein Sicherheitsexperte, die ganze Sache gehört somit nicht auf öffentliche Server, sondern ins eigene Heimnetz. Am besten noch in Verbindung mit einem VPN, aber das kann jeder halten, wie er möchte.
Zum Starten das Archiv auf den Server kopieren, entpacken und das Hauptskript ausführen:
Nginx-Konfiguration
Der nginx‑Webserver kann über den Menüpunkt „3. Proxy Settings“ automatisch installiert und konfiguriert werden. Dabei werden die benötigten Konfigurationsdateien erstellt bzw. angepasst. Diese Option sollte nur verwendet werden, wenn die VM ausschließlich für diesen Zweck genutzt wird. Erfahrene Nutzer können die notwendigen Anpassungen auch manuell vornehmen und die Konfiguration in eine bestehende nginx‑Installation integrieren.
Grundablauf
Im „Portal Menu“ empfiehlt sich folgender Ablauf:
„7. Check MACs“ muss immer ausgeführt werden, sobald neue MAC‑Adressen hinzugefügt oder Kategorien geändert wurden.
Hintergrund: Beim Aufruf eines Kanals prüft das Skript, ob
Playlist abrufen
Nach der Generierung kann die Playlist auf zwei Arten genutzt werden:
Webinterface
Es gibt eine simple Website, die über
aus Neugierde und Interesse mehr zu verstehen, wie die ganze Stalker Geschichte funktioniert, habe ich mir ein eigenes Stalker Portal gebaut. Das ist natürlich deutlich inspiriert von @clever999 und @salidos, ist aber schlanker aufgebaut. Und auch Dankeschön an beide, bei Fragen immer geholfen.
Kurz zusammengefasst könnt ihr Portale hinzufügen, Kategorien auswählen und euch daraus eine Playlist erstellen lassen. Diese erstellte Playlist verweist auf einen nginx Webserver, welcher dann eine passende MAC auswählt und dem Player den passenden Link zurück sendet.
Getestet habe ich die ganze Sache auf einer Ubuntu VM. Ich bin kein Sicherheitsexperte, die ganze Sache gehört somit nicht auf öffentliche Server, sondern ins eigene Heimnetz. Am besten noch in Verbindung mit einem VPN, aber das kann jeder halten, wie er möchte.
Zum Starten das Archiv auf den Server kopieren, entpacken und das Hauptskript ausführen:
Code:
unzip portal-manager-tem_invictus.zip
cd portal-manager-tem_invictus/
./main.sh
Nginx-Konfiguration
Der nginx‑Webserver kann über den Menüpunkt „3. Proxy Settings“ automatisch installiert und konfiguriert werden. Dabei werden die benötigten Konfigurationsdateien erstellt bzw. angepasst. Diese Option sollte nur verwendet werden, wenn die VM ausschließlich für diesen Zweck genutzt wird. Erfahrene Nutzer können die notwendigen Anpassungen auch manuell vornehmen und die Konfiguration in eine bestehende nginx‑Installation integrieren.
Grundablauf
- „3. Set Proxy Hostname“
- Zuerst den Proxy‑Hostname setzen.
- Dieser Wert wird später zur Erstellung der Playlist verwendet.
- „1. Add new portal“
- Neues Portal anlegen (Name, URL usw.).
- Die Eingaben sind weitgehend selbsterklärend.
- „2. Edit Portal“
- Das gewünschte Portal auswählen und bei Bedarf anpassen.
Im „Portal Menu“ empfiehlt sich folgender Ablauf:
- „3. Select Categories“
- Zuerst die gewünschten Kategorien auswählen.
- Andere Funktionen hängen von dieser Auswahl ab.
- „6. Add MAC address“
- Pro Zeile eine MAC‑Adresse eintragen.
- Doppelte Einträge werden automatisch entfernt.
- Ungültige MAC‑Formate werden verworfen.
- „7. Check MACs“
- Führt verschiedene Prüfungen gegen das Portal durch:
- Gültigkeit der MAC‑Adresse
- Ablaufdatum der MAC
- Anzahl der für diese MAC freigeschalteten Kategorien
- Abgleich, ob die ausgewählten Kategorien für diese MAC verfügbar sind
- Führt verschiedene Prüfungen gegen das Portal durch:
- „5. Generate M3u“
- Erstellt die Playlist (.m3u) mit den zuvor ausgewählten Kategorien.
„7. Check MACs“ muss immer ausgeführt werden, sobald neue MAC‑Adressen hinzugefügt oder Kategorien geändert wurden.
Hintergrund: Beim Aufruf eines Kanals prüft das Skript, ob
- die MAC noch gültig ist (Ablaufdatum) und
- die Kategorie für diese MAC freigeschaltet ist.
Playlist abrufen
Nach der Generierung kann die Playlist auf zwei Arten genutzt werden:
- Direkt vom Server-Dateisystem, z.B. aus
/var/www/stalker/PORTAL/
Die Dateien heißen:
proxy_PORTAL.m3u
(wobei PORTAL durch den jeweiligen Portalnamen ersetzt wird). - Per HTTP-Aufruf, z.B. in VLC:
Sie müssen registriert sein, um Links zu sehen.
Sie müssen registriert sein, um Links zu sehen.
Webinterface
Es gibt eine simple Website, die über
Sie müssen registriert sein, um Links zu sehen.
aufgerufen werden kann.
Du musst Regestriert sein, um das angehängte Bild zusehen.
Du musst Regestriert sein, um das angehängte Bild zusehen.
Du musst Regestriert sein, um das angehängte Bild zusehen.
Du musst Regestriert sein, um das angehängte Bild zusehen.
VERSION:
- 1.0
- base version
- 1.1
- kleine Anpassung an den Scripten
- "7. Check MACs" kann man jetzt auswählen, ob "All MACs" oder "Only new MACs". Bei "Only new MACs", werden nur MACs geprüft, die vorher noch nicht geprüft worden sind. Sprich, wenn man neue MACs hinzufügt müssen nicht alle alten noch mal den Check durchlaufen.
- 1.2
- hatte den check nach Doppelten MACs beim hinzufügen neuer MACs kaputt gemacht in der letzten Version. fixed
- außerdem hatte ich auch die Anzeige der MAC Adressen im Portal Menu zerstört. fixed
- 1.3
- Skripte laufen jetzt größtenteils ohne "sudo" Rechte, was die Sache sicherer macht. Um dies zu erreichen, wird der User zur Gruppe www-data hinzugefügt. Das wird durch das main.sh Script beim Start gecheckt.
- 1.4
- noch mal an den Berechtigungen rumgebastelt, sollte jetzt noch mal "besser" sein
- iptv_proxy.sh Script angepasst. Es wird jetzt ein Logfile geschrieben, um besser zu verstehen, was das Portal an Rückmeldung gibt. Außerdem die Überprüfung der Stream Links ausgebaut. Einen gültigen Stream Link bekommt man jetzt mit deutlich höherer Wahrscheinlichkeit.
- 1.41
- vergessen was vom testen rauszunehmen, wodurch bei einigen Portalen nicht mehr alles funktioniert. fixed
- 1.5
- main.sh Script checkt am Anfang wieder die benötigten Pakete und fragt, ob diese installiert werden sollen, wenn nicht vorhanden
- 1.6
- ein paar kleinere Anpassung, wo ich schon wieder vergessen habe, was es genau war
- das iptv_proxy.sh Script angepasst. Bisher hat das script so lange zufällig MAC Adressen ausgewählt, bis es eine funktionierende hat. Das kann zu Situationen führen, wo so viele Adressen probiert werden, bis man vom server gesperrt wird. Jetzt werden Standardmäßig nur 5 MAC Adressen probiert. Im Menü gibt es eine neue Option "Proxy Script Setup", hier kann man diesen Wert (Max MAC Attempts per request) abändern.
Außerdem neu, es wird pro MAC Adresse eine Art Statistik angelegt in der Datei "mac_stats.txt. Hier wird festgehalten, bei wie vielen Anfragen eine MAC benutzt wurde und wie viele davon erfolgreich waren. Daraus wird ein Wert ermittelt und "erfolgreiche" MACs werden bevorzugt benutzt. Dazu kann man einstellen, ab wann dieser Wert benutzt werden soll. Standardmäßig erst wenn eine MAC für mindestens 10 Anfragen genutzt wurde. Auch diesen Wert (Min Stats Attempts Threshold) kann man ändern unter "Proxy Script Setup".
- 1.7
- ein paar Optische Anpassungen. (am besten die Datei dialogrc_custom löschen)
- neue Option, um ein paar System Informationen anzuzeigen
- neue Option, Portal Statistiken anzuzeigen
- neue Option, pro Portal kann man sich ansehen, wie "erfolgreich" eine MAC Adresse ist
- 1.8
- Wieder ein paar optische Anpassungen. Vor allem Portal Info mit mehr Informationen ausgestattet.
- Das erstellen der m3u Playlist angepasst. Zum einem ist die Erstellung jetzt schneller, da immer 5 Kanäle parallel abgefragt werden.
Manche Portale antworten anders auf die Kanal Abfrage, so dass die Erstellung manchmal nicht klappt. Eine Überprüfung hinzugefügt, die jetzt hoffentlich immer erkennt, wie die Daten vom Portal bereitgestellt werden und darauf reagiert.
- 1.81
- Portal Info Anzeige korrigiert
- 1.82
- wenn keine Kanäle gefunden werden, wird keine Playlist mehr erstellt
- 1.90
- hier und da Bugs entfernt, kann mich aber nicht an alle erinnern
- VOD hinzugefügt
- Man kann sich jetzt pro Portal auch M3U Listen für VOD Inhalte erstellen lassen. Ich habe das nur rudimentär mit 2 Portalen getestet. Die VOD M3U ist dann erreichbar unter "
Sie müssen registriert sein, um Links zu sehen."
- Man kann sich jetzt pro Portal auch M3U Listen für VOD Inhalte erstellen lassen. Ich habe das nur rudimentär mit 2 Portalen getestet. Die VOD M3U ist dann erreichbar unter "
- Ablaufdatum
- es gibt wohl Portale die ein hartes Limit haben, was Anfragen zu verschiedenen MACs und deren Ablaufdatum haben. Beim erstellen von einem Portal, wird man jetzt nach einem "MAC check delay" gefragt. Hier muss man ausprobieren, wie tief man damit gehen kann. Bei vielen Portalen ist auch 0 kein Problem.
- um das für vorhandene Portale zu aktiveren, entweder einmal Portal löschen und neu hinzufügen oder die eigene "portals.list" anpassen. Und zwar ganz am Ende, hinter der MAC, folgendes einfügen "|1" (die 1 würde hier jetzt für 1 Sekunde Delay stehen)
- wenn vom Portal keine Infos zum Ablaufdatum kommt, wird die MAC jetzt trotzdem berücksichtigt, solange weiterhin die Kategorie verfügbar ist
- Routing durch ein bestimmtes Netzwerkinterface
- ACHTUNG -> die Funktion funktioniert zwar, aber ob dann wirklich alles sauber durch das bestimmte Interface läuft, garantiere ich nicht
- im gleichen Ordner, wie das Script eine Datei erstellen "vpn_interface.conf". Hier dann einfach sein gewünschtes Netzwerk Interface reinschreiben
- die Funktion ist völlig optional, man kann die Datei auch einfach weglassen oder leer lassen
- 1.91
- XMLTV Funktion hinzugefügt.
- Live TV M3U wird jetzt mit tvg-id="" und tvg-chno="" erstellt, wenn die Daten beim Portal vorhanden sind
- VOD M3U wird jetzt mit vg-logo="" erstellt, wenn die Daten beim Portal vorhanden sind
- XMLTV Funktion hinzugefügt.
- 2.00
- alle scripts noch mal angepasst und aufgeräumt
- simples Webinterface hinzugefügt
- aufrufbar über den eingestellten Proxy Hostname (Beispiel
Sie müssen registriert sein, um Links zu sehen.)
- aufrufbar über den eingestellten Proxy Hostname (Beispiel
- 2.01
- kleiner hotfix
- 2.10
- kleine Anpassungen Log Ausgabe
- Für die Auswahl der MACs stehen jetzt drei Verschiedene Verfahren zur Auswahl, diese werden automatisch vom iptv_proxy.sh ausgewählt. Diese sind aufgeteilt in Q > B > R. Um die Systemlast zu mindern, wurde dafür ein kleines Python helper script erstellt.
- Q = Qualifizierte MACs, die sowohl die Schwellenwerte für die Anzahl der Versuche als auch für die Erfolgsquote erfüllen; sie werden nach der Quote absteigend sortiert und zuerst ausgegeben.
- B = Best-Effort-MACs: Sobald keine Q-Einträge mehr vorhanden sind (Schwellenwerte nicht erreicht), versucht der Proxy diese nach Erfolgsquote geordnete B-Liste als Fallback, bevor er auf die reine Zufallsliste zurückgreift.
- R = Zufällige Fallback-MACs, denen entweder Statistiken fehlen oder die die Schwellenwerte nicht erreicht haben; sie werden dennoch ausgegeben, damit der Proxy sie gemischt anhängen kann, wenn keine qualifizierten MACs funktionieren.
- iptv_proxy.sh sammelt die Q-Zeilen und mischt sie pro Anfrage. Wenn die Q-Liste leer ist, aber B-Einträge vorhanden sind, behandelt es diese als geordnete Liste. Unabhängig davon werden R-Zeilen immer gemischt und nach dem priorisierten Satz angehängt, wodurch sichergestellt wird, dass jede Anfrage zuerst die besten MACs ausprobiert, aber dennoch über einen deterministischen Fallback-Pfad verfügt.
- "3. Proxy Settings" -> "4. Proxy Script Setup" ->
- "Min Stats Attempts Threshold", hier wird ein Minimum festgelegt, ab wie vielen Abfragen die Statistik rangezogen wird.
- "Min Success Rate (0-1)", hier wird in Prozent angegeben, wie erfolgreich eine MAC sein soll, um berücksichtigt zu werden. (z.B. 0.8 = 80%)
- 2.20
- Anpassungen an der stats website
- div. Scripte noch mal angepasst und mögliche Fehler Quellen beseitigt
- die Auswahl der MAC Adresse angepasst
- die Änderungen in der letzten Version konnten dazu führen, dass sich Clients gegenseitig aus dem Stream werfen, da dieselbe MAC für jede Anfrage genommen wurde. Hier einige Funktionen eingebaut, die das verhindern sollten
- 2.21
- Berechtigungen werden jetzt vom main.sh script "besser" geprüft und ggf. angepasst
- "Configure Nginx for Proxy" fixed
- hier waren Fehler drin
- Logging verbessert, damit man direkt sieht, wenn es Fehler in der Ausführung gibt
- "Proxy Script Setup" überarbeitet und mehr Einstellmöglichkeiten hinzugefügt
- über "MAC Cooldown seconds" kann man die Zeit einstellen, wie lange MACs nach einem Erfolg gesperrt werden sollen. Mit 0 Sekunden deaktiviert man die Funktion
- "MAC Usage Stats" hat eine neue Funktion "Remove Low Success MACs"
- hiermit kann man MACs aus seiner Liste (pro Portal) entfernen, die nicht gut genug performen
- man kann angeben, mit welcher Erfolgsquote und wie vielen Versuchen eine MAC entfernt werden soll
Anhänge
Du musst angemeldet sein, um die Anhangsliste zu sehen.
Zuletzt bearbeitet:
