Shiva: Musik mit Python organisieren und teilen
Der Softwareentwickler Alvaro Mourino stellt mit Shiva eine RESTful API für Musiksammlungen bereit. In Zukunft soll es damit möglich sein, ohne kommerzielle Musikdienste von unterwegs auf die eigene Sammlung zuzugreifen und sie mit Freunden zu teilen.
- Julia Schmidt
Musikliebhaber und Softwareentwickler Alvaro Mourino gibt mit Shiva eine RESTful API für private Musiksammlungen frei. Er möchte damit Gleichgesinnten unter anderem die Möglichkeit geben, auch von unterwegs auf die eigene Sammlung zuzugreifen, ohne kommerziellen Musikdiensten private Informationen oder Nutzungsgewohnheiten offenlegen zu müssen.
Das nach einem Krater benannte Shiva soll es grundlegend ermöglichen, Musik zu indizieren und die entstandenen Metadaten über eine API verfügbar zu machen, sodass sie sich dann nach Belieben durchsuchen und organisieren lassen. Außerdem sollen Nutzer Freunden Zugriff gewähren und verschiedene Shiva-Instanzen miteinander kommunizieren lassen können.
Eine der beiden für den Dienst nötigen Komponenten ist der Shiva-Server. Er ist in Python geschrieben und nutzt SQLAlchemy als objektrelationale Abbildungen und Flask zur HTTP-Kommunikation. Seine Aufgabe ist laut Mourinos Ausführungen das Indizieren der Musik und das Offenlegen der API. Die Installation des Servers ist in einem Guide beschrieben.
Um zusätzliche Informationen in Shiva einzubinden, lassen sich momentan die BandsInTown-API für Konzerte und Scraping-Module zum Finden von Liedtexten auf festgelegten Websites nutzen. Da die API während des Abspielens einer Datei nicht blockieren soll, beschreibt Mourino darüber hinaus noch, wie sich ein dezidierter File-Server für das eigene Projekt aufsetzen lässt. Die zweite wichtige Shiva-Komponente ist der Client, der als einseitige Anwendung mit AngularJS und HTML5 Möglichkeiten zum Anschauen der Sammlung, Zusammenstellen und Abspielen einer Playlist bietet. Der Client nutzt einen mitgelieferten Proxy auf der Serverseite, um auf die Musik zuzugreifen.
Momentan befindet sich das Projekt noch in den Anfängen, weshalb zur Zeit noch nicht viele Codebeispiele zur Verfügung stehen und in der Umsetzung beispielsweise nur MP3-Dateien akzeptiert werden. Geplant sind laut GitHub-Projektbeschreibung allerdings unter anderem die Möglichkeit, andere Audioformate und Videos zu nutzen, ein Radiomodus zum Streamen der Daten und das Teilen von Musik mit Freunden – unabhängig davon, ob die Stücke auf dem eigenen oder dem Server eines Freundes liegen. Auf der Agenda für die Entwicklungen der nächsten Zeit stehen wohl konkret eine JavaScript-Bibliothek zum Kapseln der API-Aufrufe und ein Shiva-Client für Firefox OS. Darüber hinaus finden Arbeiten an Shiva2Shiva-Kommunikation statt, um Musik auch zwischen zwei Shiva-Instanzen teilen zu können .
Interessierte sind aufgerufen, Shiva auszuprobieren, Kritik und Verbesserungsvorschläge einzubringen und sich an der Weiterentwicklung des Projekts zu beteiligen. Der Quellcode des Projekts ist auf GitHub zu finden - mit einem Verweis auf die geltenden Gesetze, da Mourino wohl auch das Potenzial zum illegalen Gebrauch bewusst zu sein scheint. (jul)