[Modul] Plex Mediathek

Hallo zusammen,

ich habe mich mal an mein erstes Modul heran getraut.
Ich lese mit dem Modul meine digitalisierten BluRays aus den Plex Mediatheken aus und stelle diese in einer HTML Box dar. Über einen Button kann die Mediathek gewechselt werden. Es ist ein weiterer Button zum Seitenblättern vorhanden, weil sonst bei zu vielen Filmen die HMTLBox voll läuft.
In der HTML Tabelle wird Cover, Filmname, Jahr, Zusammenfassung und das Plex hinzugefügt Datum angezeigt. Die Tabelle kann im Konfigurationsformular angepasst werden.

Vielleicht kann es jemand gebrauchen.

https://github.com/Housemann/PlexMediathek

Gruß
Oli

Danke für die grundsätzliche Idee und das zur Verfügung stellen. Ich wollte das aus Neugierde gelich mal näher anschauen, allerdings scheitere ich bei mir schon bei der Inbetriebnahme des Moduls weil die Authentifizierung nicht funktioniert bzw. komplett fehlt.

Ich bekomme bei mir nur als Fehlermeldung ein
simplexml_load_file(http://192.168.55.10:32400/library/sections): failed to open stream: HTTP request failed! HTTP/1.1 401 Unauthorized

Das kann so wohl auch nicht einfach gehen weil kein Plex Token mit übergeben wird. Zumindest bei mir geht das so nicht.

Hallo Fonzo,

du hast recht. Den Token habe ich bei mir nicht. Ich glaube das hat in Plex was mit den Netzwerkeinstellungen zu tun. Ich habe bei mir unter LAN Netzwerke und Liste der IP-Adressen und Netzwerke, die keine Authentifizierung benötigen mein Netz stehen 192.168.11.0/24.
Kannst du mir sagen was du in den Einstellungen hast? Dann kann ich es bei mir mal so einrichten und versuchen den Token einzubauen.

Gruß
Oli

Das ist der Punkt „Liste der IP-Adressen und Netzwerke, die keine Authentifizierung benötigen“. Wenn ich hier mein Netz nicht eintrage, bekomme ich den selben fehler.

Ich hab nun mal schnell den Token mit als Feld ins Formular gepackt und an die Aufrufe gehangen.
Vielleicht magst du noch mal probieren. Bei mir werden nun Daten angezeigt.

Wie man nen Token bekommt kennst du vermutlich :slight_smile:
Token

Ich habe dafür einen neuen Branch erstellt (PlexMediathek_20210225).

Gruß
Oli

Danke, den Punkt kannte ich noch nicht, bzw. versteckt sich bei mir unter Erweitere Optionen in Plex. Wenn ich dort einen passenden Eintrag mache, geht das jetzt auch bei mir ohne Übergabe des Tokens.

Vielleicht kann man ja Dein Modul mit dem anderen Plex Modul bzw. weiteren Skripten zu Plex zusammenführen und später als ein einziges Plex Modul im Module Store stellen, dann hätte man alles an einem Ort für Plex zusammen.

Ich löse bei mir nach wie vor vieles mit Skripten bei Plex, ich hatte noch nicht den Nerv und die Zeit Plex komplett in ein Modul zu packen.

Ja, da bin ich bei dir ein komplettes Modul fände ich auch klasse.

Ich habe auch noch ein riesen Skript, was ich vor einigen Jahren dank deiner Hilfe mit dem Abrufen der Daten aus Plex erstellt habe. Dort lese ich alle Player aus, und erstelle pro Player ein DummyModul mit diversen Informationen bis hin zu den Schauspielern und Covern von Film,Serie,Musik. Das ganze wird über den WebHook aus Plex getriggert. Das wollte ich irgendwann auch mal angehen.

grafik

Weiter habe ich noch ein Script, wo ich eine Mediathek aus dem WebFront heraus aktualisieren kann.
Was stellst du bei dir so an mit den Scripten.

Dann lass uns doch am besten das in einem Modul zusammen fassen dann kann man gemeinsam Dinge mit Pull Request ergänzen. Ich müsste mal schauen was ich hier so rumliegen habe und ob das schon für ein Beta Modul als Grundlage dienen könnte. Da komme ich aber frühestens mal am Wochenende dazu.

Nicht so viel, die Übersicht der Filme lasse ich mir einfach anzeigen indem in Plex.tv als Oberfläche eingebunden habe. Auswerten tue ich nur die Bildschirmauflösung, danach fahre ich Maskierung der Leinwand automatisch in das passende Format. Ansonsten nutzte ich das um eben Befehle abzusetzen wie Play, Pause usw., dazu nutzte ich aber inzwischen ein PHP Modul. Ich werte die Information die einem Plex per Webhook schickt aus, was man davon aber jetzt wie sinnvoll nutzten kann ist wohl individuell unterschiedlich. Aktiv auswerten selber tue ich wie gesagt nur das Format des Films.
Mein Problem ist eher das ich inzwischen zunehmend mehr Streaming Dienste nutzte, seitdem zunehmend absehbar ist, dass immer weniger Neuerscheinungen noch auf Ultra HD Blueray incl. Digital Copy veröffentlich werden.
Daher wäre für mich zur Zeit eher mit relevant das Format aus Streaming Diensten auszulesen, diese stellen das aber leider meist nicht wie Plex zur Verfügung.

Jo, wäre ich dabei. Muss mich nur mal mit Pull Request auseinander setzten. :slight_smile: Das hab ich noch nicht gemacht da ich noch nicht lang mit Git arbeite.

Finde ich klasse, dass könnte man ja auch mit rein bauen.

Wir sollten vielleicht mal eine Liste der Funktionen aufstellen, die man gebauchen kann. Eventuell haben ja andere noch Ideen / Wünsche, die man mit unterbringen kann.

Ja, dass stimmt. Leider geht da der Sammlergeist verloren, wenn man sich die Scheiben nicht mehr ins Regal stellen kann. :frowning:

@Housemann Kannst Du oder jemand anders mal gerade helfen, ich stehe irgendwie auf dem Schlauch. Ich will mit einem Konfigurator die Geräte auslesen und will dazu auch die IP-Adresse auslesen. Nur irgendwie bekomme ich das nicht hin. Weist Du wie ich Connection ansprechen muss im XML um die IP Adresse auszulesen?

$string = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<MediaContainer publicAddress="XX.XXX.XX.X">
  <Device name="Wohnzimmer Apple TV" publicAddress="XXX.XXX.XX.XX" product="Plex for Apple TV" productVersion="7.11" platform="tvOS" platformVersion="14.3" device="Apple TV" model="6,2" vendor="Apple" provides="client,player,pubsub-player,provider-playback" clientIdentifier="XXX-XXX" version="7.11" id="XXX" token="XXXX" createdAt="1609450984" lastSeenAt="1609451048" screenResolution="3840x2160" screenDensity="2">
    <Connection uri="http://192.168.55.144:32500"/>
  </Device>
</MediaContainer>
XML;

$xml = simplexml_load_string($string);
// var_dump($xml);

$devices = $xml->Device;
// var_dump($devices);

foreach($devices as $device)
{
    $name = strval($device['name']);
    var_dump($name);

// geht nicht
    //$connection = $device->Connection;
    //var_dump($connection);
    
}

Schau mal…
So bekomme ich was raus…


$connection = $xml->Device->Connection;
 var_dump($connection);

object(SimpleXMLElement)#5 (1) {
["@attributes"]=>
array(1) {
[„uri“]=>
string(27) „http://192.168.55.144:32500
}
}

Danke für die Antwort, ich habe den Fehler gefunden, ich hatte innerhalb der Schleife auch device=„Apple TV“
auslesen und die Variable dummerweise auch $device genannt, das geht dann natürlich in die Hose wenn die Variable der Schleife schon device heißt.
Dann kann ich jetzt dann mal weiter den Konfigurator fertig machen, ich melde mich sobald ich was habe das man nutzen könnte.

Hallo Fonzo,

hast du hier schon was gemacht?
Da ich krank geschrieben bin, hab ich mal was angefangen…


Gruß
Oli

Ja ich hatte schon was gemacht, habe das aber noch nicht im Detail ausgearbeitet und diese Woche auch wenig Zeit. Wo es ein wenig hängt ich wollte gerne die Registrierung am Plex Server über Plex.tv durchführen, das ist aber nicht ganz so einfach oder intuitiv wie ich mir das gedacht Hatte. Ein Grundgerüst des Moduls kann ich frühestens mal am Wochenende zum Testen online stellen.

Ich schätze aber Du hast wohl teilweise schon mehr Variablen angelegt. In sofern kann man am Schluss einfach alle möglichen Methoden in ein Modul Grundgerüst kippen.

Wäre hier auch an Updates interessiert :slight_smile:

Hols mal wieder hoch! Danke.

Hallo Housemann,
ich habs jetzt hinbekommen die Datenbank auszulesen.
Es werden aber keine Cover angezeigt!

Danke und lg

Guten Morgen,

sorry Arbeitsbedingt die letzten Monate wenig Zeit gehabt.

Ich nehme an du hast den IP, Port und Token hinzugefügt im Modul?
Wenn ja, musste man glaube ich noch was in Plex->Einstellungen->Netzwerk->Button erweiterte Einstellungen ändern.
Ich habe dort bei „LAN Netzwerke“ mein Netz „192.168.11.0/24“ hinterlegt. Weiter bei „Liste der IP-Adressen und Netzwerke, die keine Authentifizierung benötigen“ ebenfalls „192.168.11.0/24“. Weiter habe ich noch relay angeklickt und eine eigene Domain hinterlegt, was man aber nur braucht, wenn man die Cover ausserhalb seines Netzwerks anzeigen will.

Gruß
Oli

Danke Oli, werd ich mal probieren!

Frage: Macht Ihr ein Modul daraus?
Frage: Ist es auch möglich aus der Mediathek einen Film zu starten? Das wäre der Oberhammer…

DANKE und lg

UPDATE: Hat jetzt funktioniert! Danke Oli

Theoretisch machbar in ein Modul zu packen. Ob man einen Film starten kann weiß ich gerade nicht.

Ich hatte für mich vor einigen Monaten ein Modul zur Anzeige was auf welchem Gerät läuft fertig gestellt. Hier gibt es nur keine Plex.tv Authentifizierung, dafür bin ich zu sehr Hobby Programmierer. Ich weiß nicht wie der Stand bei Fonzo ist. Aber du kannst hier auch gern rein schauen: GitHub - Housemann/PlexHomeCinema

Gruß
Oli