Heute bauen wir uns einen iTunes Server… auf dem OSX Server.
Das Ärgerliche am Apple TV ist seine eingeschränkte Nutzbarkeit, wenn man von AirPlay einmal absieht. Ich hatte mir das kleine schwarze Kästchen hinter meinen Fernseher geklemmt, weil ich dachte, ich könnte damit ganz einfach auf meine Sammlung an Filmen und Videos zugreifen, die auf meinem Server bzw. auf meiner Synology lagern.
Doch weit gefehlt: Apple schränkt uns in den Möglichkeiten wieder einmal stark ein. Natürlich wäre das leicht möglich, aber AppleTV “versteht” sich nur mit einer im Netzwerk freigegebenen iTunes Mediathek. Ein Zugriff auf etwa einen iTunes Server auf einer Synology ist schlichtweg nicht möglich. Der Name “iTunes Server” auf den Verpackungen von Synology, QNap und anderen sind schlicht Mogelpackungen… es sind eben nicht wirklich iTunes Server, sondern Medien-Streaming-Dienste, die ein iTunes simulieren, aber keines sind.
Und da liegen das Problem und die Lösung. Damit das kleine schwarze Kästchen nun endlich Filme und Musik auf Fernseher und Verstärker bringt, braucht es einen Zugriff auf ein laufendes, echtes iTunes, welches über eine Freigabe im lokalen Netzwerk versehen ist. Es führt kein Weg an einer iTunes-Installation vorbei. Und dieses iTunes muss laufen, wenn man via Apple TV (oder Mac, iPad & Co.) auf die Mediathek zugreifen will.
Das heißt, ich muss einen Rechner starten, iTunes starten… damit ich dann via Apple TV oder Mac, iPad etc. auf die Medien zugreifen kann. Das ist recht umständlich. Dann stellen ich mir doch gleich einen MacMini neben Fernseher und Stereo-Anlage… gesagt, getan. Aber auch immer etwas geärgert, denn ich musste immer erst den MacMini anschalten, so auch den Fernseher, um einfach nur Musik zu hören… nächster Schritt war auf dem MacMini ein Auto-Log-On einzurichten und iTunes als Start-Objekt zu definieren. Super!? Nein. Es war nicht wirklich zufriedenstellend… insbesondere das Aufspielen neuer Dateien nervte.
Es wäre doch viel praktischer, wenn ein iTunes immer im Netzwerk präsent wäre, auf das ich mit beliebigen Endgeräten zugreifen kann – auch mit dem Apple TV. Ich möchte einen richtigen iTunes Server haben! Und wie? Nun, ich habe ohnehin einen MacMini Server mit OSX Mavericks Server laufen. (update: OSX Yosemite Server) Dieser dient als Datenspeicher, Mail-Server und mehr. Warum sollte er nicht auch noch als iTunes Server dienen?
Da es ein Server ist, läuft er als Headless System. Kein Bildschirm, keine Tastatur, keine Maus. Er steht irgendwo in einem Regal an einer Netzwerkdose. Man muss nie ran und sich um nichts kümmern. Super. Nun müssen wir dem OSX Server beibringen, dass er ein iTunes am Laufen hält und eine Freigabe für eine Mediathek bereitstellt. Hier gibt es ein Problem mit iTunes. Dieses verlangt einen eindeutigen (und angemeldeten) Nutzer, der seine spezifische Mediathek im Netzwerk freigibt. Hm… Sinn eines Servers ist es ja, dass eben kein User angemeldet ist.
Was müssen wir tun?
Wir loggen uns auf dem Server ein mit dem User, dessen Mediathek wir später im Netzwerk freigeben wollen. Wir installieren auf dem Server iTunes für alle Nutzer und starten iTunes. Wir richten das Programm nach unseren Wünschen ein, und spielen unsere Medien auf. (in meinem Fall einfach, da ich sie ja auf dem Server lagere) Wir geben unsere Mediathek im Netzwerk frei und richten die Privatfreigabe ein. Wir beenden iTunes und loggen uns aus.
Nun loggen wir uns als Administrator ein und schreiben einen LaunchDaemon. Dazu nehmen wir ein Tool wie TextWrangler oder Lingon. Diese Plist sieht z.B. so aus:
<?xml version=”1.0″ encoding=”UTF-8″?>
<!DOCTYPE plist PUBLIC “-//Apple//DTD PLIST 1.0//EN” “http://www.apple.com/DTDs/PropertyList-1.0.dtd”>
<plist version=”1.0″>
<dict>
<key>KeepAlive</key>
<false/>
<key>Label</key>
<string>com.itunes_starter.launchd</string>
<key>OnDemand</key>
<false/>
<key>ProgramArguments</key>
<array>
<string>/Applications/iTunes.app/Contents/MacOS/iTunes</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>ServiceDescription</key>
<string>iTunes</string>
<key>UserName</key>
<string>username</string></dict>
</plist>
Den username bitte durch den User ersetzen, für den wir die iTunes Library erstellt haben. Dann die plist (root/wheel) in den Ordner LaunchDaemons kopieren. Nun müssen wir noch den Ordner “Automatisch in iTunes importieren” aus dem iTunes Ordner des Users im Netzwerk freigeben und mit den passenden Zugriffsrechten versehen. Damit können wir neue Tracks, Medien, … einfach auf den Server bringen. Einfach dort reinkopieren. Unser iTunes Server wird die Medien selbst verwalten und im Netzwerk zur Verfügung stellen.
Nun starten wir unseren Daemon. Entweder per Re-Boot oder im Terminal durch
cd /Library/LaunchDaemons
sudo launchctl load -w com.itunesstarter.launchd.plist
Das war es… iTunes läuft als Dienst im Hintergrund und stellt die Mediathek des User username als Privatfreigabe im Netzwerk zur Verfügung. Apple TV, iPad, Mac können über WLAN oder LAN darauf zugreifen und die Medien streamen. Und so haben wir endlich einen “echten” iTunes Server und können auch unser Apple TV wirklich als StreamingBox für lokale Medien nutzen.
Update plist – Stand 15. Januar 2015:
<?xml version=”1.0″ encoding=”UTF-8″?>
<!DOCTYPE plist PUBLIC “-//Apple//DTD PLIST 1.0//EN” “http://www.apple.com/DTDs/PropertyList-1.0.dtd”>
<plist version=”1.0″>
<dict>
<key>EnableTransactions</key>
<true/>
<key>KeepAlive</key>
<false/>
<key>Label</key>
<string>com.itunesstarter.launchd</string>
<key>Program</key>
<string>/Applications/iTunes.app/Contents/MacOS/iTunes</string>
<key>RunAtLoad</key>
<true/>
<key>ThrottleInterval</key>
<integer>30</integer>
<key>UserName</key>
<string>Tunes</string>
</dict>
</plist>
ACHTUNG! Das neueste Update für Apple TV (7.02) ist leider mit einigen Bugs versehen. So funktioniert das Wake-On-LAN leider nicht mehr zuverlässig und das Apple TV lässt einen laufenden iTunes Deamon im Netzwerk abstürzen.
Ich hoffe auf ein rasches Update seitens Apple…
16 Comments
Leave your reply.