Vielleicht kurz vorweg, was und warum ich es versuche: Ich habe im Wohnzimmer einen PC stehen. Dieser hat einen Kabel-Receiver (mit DVBViewer Server und DVR) und externe USB-Festplatten mit Videos, Audios usw. Dieser PC ist an einen Multimedia-Receiver (Onkyo) angeschlossen, parallel zu einer X-Box und einer Playstation. Der Receiver wiederum hängt dann an einem LCD-TV (Samsung). So kann ich TV, XB oder PS auf dem Fernseher sehen. Ausserdem streamt der DVB sein Programm auch über's Netz an andere Clients. (Zusätzlich erledigt der Server auch andere Dienste, wie z.B. Web-Server mittels WAMP usw.)
Vor einiger Zeit hatte ich mal mit MediaMonkey, 4 glaube ich, herumgespielt und auch mit der Script-Schnittstelle in VBS ein bisschen was gemacht. Jetzt hab ich mir 2 lifetime Lizenzen geholt und versuch mich am MM5. Und ich bin ein kleines wenig kurz am Überlegen, ob Verzweifeln eine Option ist.

Im VBS hab ich seinerzeit sowas wie
Code: Select all
Set obj_ItemList = SDB.SelectedSongList
For i = 0 to obj_ItemList.Count - 1
Set obj_ItemDetails = obj_ItemList.Item( i )
str_user5 = obj_ItemDetails.Custom5
[ . . . ]
Code: Select all
obj_ItemDetails.Date = str_Year
Code: Select all
obj_Itemlist.UpdateAll
Jetzt versuche ich Ähnliches mit MM5. Allerdings würde ich jetzt gerne eine GUI bauen. Ich benutze MM hauptsächlich für meine Videos. Ich habe z.B. einen Haufen Videos aus meinen DVDs des TV-Movie-Abo extrahiert. Die Dateinamen sind recht "sauber" strukturiert und beinhalten eigentlich immer ein "{tt......}" im Dateinamen mit der IMDB-ID. Über TMDB hole ich mir dann weiterführende Details als JSON und würde die dann gerne in die DB von MM schreiben. Aber ich komm einfach nicht so recht voran.
a) Wenn ich versuche, MediaMonkey als Referenz für COM zu setzen, schmiert mir Visual Studio 19 "still" weg, also ohne Fehlermeldung. Das passiert bei VB und bei C#. Ich krieg das Ding von dort also nicht als COM angesprochen.
b) Inspiriert von MediaMonkeyNet (/mmuffins/MediaMonkeyNet auf github), mit dem ich ein kurzes Erfolgserlebnis mit der Beispiel-Konsolenanwendung hatte, hab ich versucht, eine Klasse für eine GUI-Anwendung zu basteln. Aber da klappt auch irgendwie nix.
c) Mit WebSocketSharp (/sta/websocket-sharp auf github) krieg ich MM gerade noch verbunden, aber ich weiss eigentlich überhaupt nicht, was ich dort schicken soll. Bislang krieg ich nur 'n Fehler mit dem JSON Element 0 oder so ähnlich.
d) Das Geraffel mit JS in der PowerShell wuchert auch langsam wie ein Tumor. Erst Visual Studio Code, dann NodeJS dazu, dann noch Electron für die GUI. ein "hello world" hat laut dir /s jetzt 17377 Dateien in 7073 Verzeichnissen. Krank...

e) Ein VBS-Dreizeiler über cscript in der Shell (hier aus dem Forum) scheint mir bislang noch der vielversprechendste Ansatz zu sein. Hier wird mit
Code: Select all
Set SDB = CreateObject("SongsDB5.SDBApplication")
SLText = SDB.runJSCode( "( function() { return app.db.getTracklist( 'SELECT * FROM Songs', -1 ).asJSON; } )()", True )

So, wie ich das sehe, kann ich mittels executeQueryAsync und getQueryResultAsync auch Operationen auf der DB ausführen. Aber hier bräuchte ich mal Starthilfe. Denn da krieg ich ja nicht, wie o.a. beschrieben, mit .asJSON direkt die Antwort.
Wer mag mir hier mal ein bisschen helfen, ob nun mit e) oder einem der anderen Punkte, vielleicht auch ganz anderem Ansatz?
Michael