Cover Art / Metadaten aus iTunes im Mediola anzeigen!

Haussteuerung mittels mediola

Moderator: Co-Administratoren

Antworten
Benutzeravatar
eiGelbGeek
Beiträge: 979
Registriert: 24.07.2014, 17:46
Wohnort: Ruhrpottrandgebiet
Hat sich bedankt: 105 Mal
Danksagung erhalten: 19 Mal

Cover Art / Metadaten aus iTunes im Mediola anzeigen!

Beitrag von eiGelbGeek » 19.08.2016, 15:54

Meta2Matic ermöglicht eine Anzeige von Metadaten in Mediola Neo Creator inklusive Cover Art!!!
-- Version 0.1
-- Copyright by eiGelbGeek / Kontakt: geekmatic (at) icloud.com
-------------
-- Lizenz --
-------------
-- Kommerzielle Nutzung oder Veröffentlichen des Codes in diversen AppStores nur mit meiner Zustimmung!
-- Weiterentwicklungen des Codes bitte im Homematic-Forum veröffentlichen!
-- Meine Amazon Wunschliste für freiwillige Donations!
-- https://www.amazon.de/registry/wishlist ... Sxb06GHFC6
---------------------------
-- Vorraussetzungen --
---------------------------
-- iTunes auf einen System mit macOS
-- Ein WebServer, wenn dieser nicht auf dem selben Rechner ist, dann muss ggf. das Kopieren der Dateien vom Local zum WWW Verzeichnis am Ende dieser
-- Datei angepasst werden! z.b. durch SCP oder einen vorherigen SSH Login
-- EventScripts aus den MacAppStore
-------------
-- To Do --
-------------
-- HTML Seite erzeugen für Detail Anzeige der Metadaten
-- Cover für WebRadio Sender konfigurieren
-- Metadaten für WebRadio konfigurieren
-- HTML ggf. noch verbessern, ist erstmal eine Ja es geht Version ;)


Kurze sicherlich nicht komplette Konfiguration:

1. App EventScripts aus dem MacAppStore kaufen und installieren. (Diese lauscht auf die iTunes Events und führt das Script bei Frackwechsel, Pause, Stop etc... aus)
2. Den Code im Apple Script Editor einfügen und den Abschnitt Konfiguration anpassen! speichern und in die EventScript Konfiguration einfügen und auf iTunes track changed stellen.
3. Wenn noch nicht vorhanden, Apache2 installieren oder alternativ den OS X Server installieren (MacAppStore) und konfigurieren.
4. Webseiten-Element in deiner Mediola Fernbedienung hinzufügen und die URL hinzufügen. http://DEINSERVER/html/metadaten_main.html

Wenn man keinen Apache oder OS X Server auf seinen System installieren möchte, kann man das ganze auch auf WebSpace im Internet legen, allerdings muss im Script der letzte Schritt angepasst werden.... weil dann ja nicht nur Local kopiert wird... Lösung wäre z.b. ssh Login zum WebSpace und dann kopieren. Bei mir nicht nötig, denn mein System läuft als OS X Server ;)
Wenn Hilfe benötigt wird versuche ich hier zu helfen, aber habe nicht immer Zeit ;) daher Geduld ;) oder Google....

Ein vollständige Konfiguration liefere ich noch nach ;)
IMG_1797.PNG
IMG_1798.PNG
IMG_1799.PNG

Code: Alles auswählen

-- Meta2Matic ermöglicht eine Anzeige von Metadaten in Mediola Neo Creator inklusive Cover Art!!!
-- Version 0.1
-- Copyright by eiGelbGeek / Kontakt: geekmatic (at) icloud.com
-------------
-- Lizenz  --
-------------
-- Kommerzielle Nutzung oder Veröffentlichen des Codes in diversen AppStores nur mit meiner Zustimmung!
-- Weiterentwicklungen des Codes bitte im Homematic-Forum veröffentlichen!
-- Meine Amazon Wunschliste für freiwillige Donations! 
-- https://www.amazon.de/registry/wishlist/29ZAEZ7Z5VYFE/ref=cm_sw_em_r_mt_ws_jwgSxb06GHFC6
---------------------------
--  Vorraussetzungen  --
---------------------------
-- iTunes auf einen System mit macOS
-- Ein WebServer, wenn dieser nicht auf dem selben Rechner ist, dann muss ggf. das Kopieren der Dateien vom Local zum WWW Verzeichnis am Ende dieser 
-- Datei angepasst werden! z.b. durch SCP oder einen vorherigen SSH Login
-- EventScripts aus den MacAppStore
-------------
-- To Do  --
-------------
-- HTML Seite erzeugen für Detail Anzeige der Metadaten
-- Cover für WebRadio Sender konfigurieren
-- Metadaten für WebRadio konfigurieren
-- HTML ggf. noch verbessern, ist erstmal eine Ja es geht Version ;)



##########################################
# Konfiguration                                                                         #
##########################################


set LocalPfadIMG to "'/Users/itunes/Library/Application Scripts/net.mousedown.EventScripts/Meta2Matic/html/img/'"
set LocalPfadHTML to "'/Users/itunes/Library/Application Scripts/net.mousedown.EventScripts/Meta2Matic/html/'"
set wwwPfad to "'/Volumes/Macintosh HD/Library/Server/Web/Data/Sites/Default/html'"

set no_cover to "default_nocover"
set no_cover_ext to ".png"
set pause_cover to "default_pause"
set pause_cover_ext to ".png"
set stop_cover to "default_stop"
set stop_cover_ext to ".png"

##########################################
#Ab hier müssen keine Änderungen mehr vorgenommen werden! #
##########################################

#Aktuelles Cover in Ordner kopieren
tell application "iTunes"
	--iTunes geöffnet?
	if application "iTunes" is running then
		--Läuft Musik?
		if player state is playing then
			try
				tell application "iTunes" to tell artwork 1 of current track
					set srcBytes to raw data
					if format is «class PNG » then
						set nameCover to "cover"
						set ext to ".png"
					else
						set nameCover to "cover"
						set ext to ".jpg"
					end if
				end tell
				set fileName to (((path to me) as text) & "::" & ":html:img:" & nameCover & ext)
				set outFile to open for access file fileName with write permission
				set eof outFile to 0
				write srcBytes to outFile
				close access outFile
			on error
				try
					do shell script "rm " & LocalPfadIMG & "cover.jpg"
				end try
				try
					do shell script "rm " & LocalPfadIMG & "cover.png"
				end try
				set nameCover to no_cover
				set ext to no_cover_ext
			end try
			--Musik Pausiert?
		else if player state is paused then
			try
				do shell script "rm " & LocalPfadIMG & "cover.jpg"
			end try
			try
				do shell script "rm " & LocalPfadIMG & "cover.png"
			end try
			set nameCover to pause_cover
			set ext to pause_cover_ext
			--Musik gestoppt?
		else if player state is stopped then
			try
				do shell script "rm " & LocalPfadIMG & "cover.jpg"
			end try
			try
				do shell script "rm " & LocalPfadIMG & "cover.png"
			end try
			set nameCover to stop_cover
			set ext to stop_cover_ext
		end if
	end if
end tell


tell application "iTunes"
	--iTunes geöffnet?
	if application "iTunes" is running then
		--Läuft Musik?
		if player state is playing then
			try
				set WebRadio to get kind of current track
			end try
			if WebRadio is not equal to "Internetaudio-Stream" then
				try
					set varArtist to artist of current track
				on error
					set varArtist to "-"
				end try
				try
					set varTrack to name of current track
				on error
					set varTrack to "-"
				end try
				try
					set varAlbum to album of current track
				on error
					set varAlbum to "-"
				end try
				try
					set varAlbumArtist to album artist of current track
				on error
					set varAlbumArtist to "-"
				end try
				try
					set varGenre to genre of current track
				on error
					set varGenre to "-"
				end try
				try
					set varYear to year of current track
				on error
					set varYear to "-"
				end try
				try
					set varTrackNumber to track number of current track
				on error
					set varTrackNumber to "-"
				end try
				try
					set varTrackCount to track count of current track
				on error
					set varTrackCount to "-"
				end try
				try
					set varDiscNumber to disc number of current track
				on error
					set varDiscNumber to "-"
				end try
				try
					set varDiscCount to disc count of current track
				on error
					set varDiscCount to "-"
				end try
				try
					set varCompilation to compilation of current track
				on error
					set varCompilation to "-"
				end try
				try
					set varPlayedCount to played count of current track
				on error
					set varPlayedCount to "-"
				end try
				try
					set varPlayedDate to played date of current track
				on error
					set varPlayedDate to "-"
				end try
				try
					set varTime to time of current track
				on error
					set varTime to "-"
				end try
				try
					set varPlaylist to name of current playlist
				on error
					set varPlaylist to "-"
				end try
				try
					set varPlaylistTime to time of current playlist
				on error
					set varPlaylistTime to "-"
				end try
				
			else
				set varArtist to "Live"
				set varTrack to "WebRadio"
				set varAlbum to "-"
				set varAlbumArtist to "-"
				set varGenre to "-"
				set varYear to "-"
				set varTrackNumber to "-"
				set varTrackCount to "-"
				set varDiscNumber to "-"
				set varDiscCount to "-"
				set varCompilation to "-"
				set varPlayedCount to "-"
				set varPlayedDate to "-"
				set varTime to "-"
				set varPlaylist to "-"
				set varPlaylistTime to "-"
			end if
		else if player state is paused then
			set varArtist to "Pause"
			set varTrack to "-"
			set varAlbum to "-"
			set varAlbumArtist to "-"
			set varGenre to "-"
			set varYear to "-"
			set varTrackNumber to "-"
			set varTrackCount to "-"
			set varDiscNumber to "-"
			set varDiscCount to "-"
			set varCompilation to "-"
			set varPlayedCount to "-"
			set varPlayedDate to "-"
			set varTime to "-"
			set varPlaylist to "-"
			set varPlaylistTime to "-"
		else if player state is stopped then
			set varArtist to "Stop"
			set varTrack to "-"
			set varAlbum to "-"
			set varAlbumArtist to "-"
			set varGenre to "-"
			set varYear to "-"
			set varTrackNumber to "-"
			set varTrackCount to "-"
			set varDiscNumber to "-"
			set varDiscCount to "-"
			set varCompilation to "-"
			set varPlayedCount to "-"
			set varPlayedDate to "-"
			set varTime to "-"
			set varPlaylist to "-"
			set varPlaylistTime to "-"
		end if
	else
		set varArtist to "iTunes nicht gestartet"
		set varTrack to "-"
		set varAlbum to "-"
		set varAlbumArtist to "-"
		set varGenre to "-"
		set varYear to "-"
		set varTrackNumber to "-"
		set varTrackCount to "-"
		set varDiscNumber to "-"
		set varDiscCount to "-"
		set varCompilation to "-"
		set varPlayedCount to "-"
		set varPlayedDate to "-"
		set varTime to "-"
		set varPlaylist to "-"
		set varPlaylistTime to "-"
	end if
end tell

#HTML Code für Main Page
set metadaten_main to "
				<!DOCTYPE html>
				<html>
				<head>
				<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">
					<style>
						div.cover {
    								width:120px;
    								height:120px;
    								margin-left:auto;
    								margin-right:auto;
    								box-shadow: 3px 3px 5px #ccc;
								}
					</style>
				</head>
				<body style=\"background: transparent; margin: 0; padding: 0;\">
						<div class=\"cover\">
  							<img src=\"img/" & nameCover & ext & "\" style=\"width:100%\" >
						</div>
				<br>
						<div align=\"center\" style=\"height: 27px; color:green; font-size:18pt; overflow:hidden;text-overflow:ellipsis;\"><b>Artist</b></div>
						<div align=\"center\" style=\"height: 25px; color:white; font-size:16pt; overflow:hidden;text-overflow:ellipsis;\">" & varArtist & "</div>
				<br>
						<div align=\"center\" style=\"height: 27px; color:green; font-size:18pt; overflow:hidden;text-overflow:ellipsis;\"><b>Track</b></div>
						<div align=\"center\" style=\"height: 25px; color:white; font-size:16pt; overflow:hidden;text-overflow:ellipsis;\">" & varTrack & "</div>
				</body>
				</html>
				"

#HTML erzeugen für Main Page erzeugen
do shell script "printf %s " & quoted form of metadaten_main & " > " & LocalPfadHTML & "metadaten_main.html"

#HTML ins WebSerververzeichnis kopieren
do shell script "cp -R " & LocalPfadHTML & " " & wwwPfad










Nur weil es nicht geht, muss es nicht kaputt sein ^^

Apple for Work, Linux for Network, iOS for Mobility and still Windows for Solitaire

art-audio
Beiträge: 712
Registriert: 13.12.2010, 09:45

Cover Art / Metadaten aus iTunes im Mediola anzeigen!

Beitrag von art-audio » 25.08.2016, 14:30

Hallo,

das finde ich weltklasse!

Funktioniert das nur mit dem Mediola Neo oder auch schon mit dem alten aio Creator?
Gruß

Sven

(aktuell ca. 200 HomeMatic Funk Aktoren und Sensoren und einigen Hundert Kanälen mit steigender Tendenz)

Ritschi
Beiträge: 587
Registriert: 07.11.2012, 08:02
Wohnort: Schweiz, Graubünden
Hat sich bedankt: 25 Mal
Danksagung erhalten: 9 Mal

Re: Cover Art / Metadaten aus iTunes im Mediola anzeigen!

Beitrag von Ritschi » 29.08.2016, 14:00

Hallo eiGelbGeek

Super, vielen dank, auf das habe ich mich schon lange gefreut :)
Nach einigem rumprobieren betreffend der genauen Pfade habe ich es nun hingekriegt.
Was allerdings noch nicht funktioniert ist die Anzeige der Coverbilder.
Kannst du näher erläutern, wie ich diese auslesen muss, oder wie das funktioniert?

Danke schon mal für deine Hilfe
Gruss
Ritschi
Raspberry-Matic auf Tinkerboard, Mediola Gateway V3, Mediola Gateway V2, iobroker, Homebridge-homematic auf Mac, Homeassistant

Antworten

Zurück zu „mediola“