Script für “Music on Console” überarbeitet (jetzt mit Free Music Charts)

Inspiriert durch diesen Artikel hier: http://www.darkerradio.com/news/free-music-charts-im-neuen-vlc-media-player/.

Das Script wurde überarbeitet und verwendet jetzt keine KDE/Gnome Popups mehr (Nachrichten werden nur noch im Terminal angezeigt) … einige Dinge sind vereinfacht worden und das Ding ist übersichtlicher.

Neu ist, dass man damit in Moc die FreeMusicCharts Playliste einfügen, anhören und Stücke herunterladen kann.

Die ganze Beschreibung und das Script selbst gibt es im Wiki: http://wiki.natenom.de/sammelsurium/moc_scripte/moc_extend.

Für Alle ohne Moc lohnt sich das Herunterladen vom im oben genannten Artikel beschriebenen VLC Media Player, in dem die Free Music Charts nun integriert sind.

Zu einem Icecast Server streamen auf der Konsole

Ins Wiki übertragen: http://wiki.natenom.de/sammelsurium/scripte/icecast.

Irgendwie bin ich in der letzten Zeit durch “Sielenc” auf die Idee gekommen, einen Icecast Server testweise zu betreiben :)

Zum Testen wollte ich natürlich auch meine Musik an den Server senden.

Da ich ja unter Linux arbeite, war die Programmauswahl etwas schwieriger; zum Senden der Daten an den Server benutze ich Ices2. Ausserdem wollte ich das komplett auf der Konsole machen können und eine gute Integration in den Music-On-Console Player haben.

In der Konfiguration von Ices2 stellt man entweder eine Playlist ein oder ein Script, welches genau einen Dateienamen zurückliefert.
Ich benutze letzteres und habe mir hierfür ein kleines Hilfs-Script geschrieben.

Aus Sicht von Ices gibt dieses Script jedes mal nur einen Dateinamen aus der aktuellen Wartschlange zurück.
Falls die Warteschlange leer ist, wird solange automatisch ein Lied aus der “Notfall-Warteschlange” (manche nennen das AutoDJ) geliefert, bis die Warteschlange wieder was zu bieten hat.

Der größere Teil des Scriptes kümmert sich um das Auffüllen der beiden Warteschlangen (Queues).
Beim Aufruf gibt es folgende Möglichkeiten:

  • showqueue – Zeigt die aktuelle Warteschlange an
  • showequeue – Zeigt die Auto-DJ-Warteschlange an
  • addtoqueue file/dir – fügt die Datei oder das Verzeichnis zur Warteschlange hinzu
  • addtoequeue file/dir – wie oben, aber zur Auto-DJ Warteschlange
  • get – Auf diese Weise ruft Ices2 das Script auf, um eine Datei zu bekommen
  • played – Liefert eine Liste aller bisher gespielter Dateien
  • help – Zeigt eine kurze Hilfe an

In moc kann man damit sehr einfach eine Datei oder ein ganzes Verzeichnis in die Warteschlange übernehmen.
Dabei wird für jede einzelne Datei geprüft, ob sie als Ogg vorliegt und falls nicht, automatisch encodiert (Ices2 mag nur Ogg streamen :)).
Sollte die Datei bereits encodiert worden sein (im temporären Feed-Ices Verzeichnis), entfällt das Encodieren.

Es wird auch überprüft, ob die Datei, die aktuell zur Queue hinzugefügt werden soll, mit der letzten auf der Warteschlange übereinstimmt und verweigert dann das Hinzufügen.
Dies liegt daran, dass Ices2 sich weigert dieselbe Datei mehrmals hintereinander abzuspielen und sich irgendwann wegen zu vieler Fehler beendet.

Eine Besonderheit:
Ices2 überprüft vor dem Abspielen der Dateien die Seriennummer. Diese wird wohl vom Encoder zufällig oder sonst wie erzeugt.
Ffmpeg tut dies leider nicht, im Zusammenspiel mit Ices2 fällt es also weg. Es gibt wohl eine Lösung, nachträglich mit vorbiscomment diese Seriennummer in die Datei zu schreiben. Ixquick.com hilft bestimmt.
Sox macht es richtig und es funktioniert somit auch mit Ices2.

Dieses Script ist mal wieder so ein “es reicht mir aus”-Fall, es gibt mit Sicherheit bessere.

Ich werde auch nicht wirklich streamen sondern wollte mich nur mal mit dem Thema auseinandersetzen. Zur Not kann man so mal dem einen oder anderen seine Musik nahe bringen :)

Hier die aktuelle Version des Scripts zum Download: Bitte im Wiki nachsehen…

Oder hier als Quellcode (Bash); wie man sieht sind noch einige Debug Sachen drin …

Bitte im Wiki nachsehen wegen des Quellcodes…

Streamtuner und (M)usic (O)n (C)onsole

Streamtuner ist ein Linuxprogramm zum anzeigen diverser Streams.

Um diese direkt in mocp abzuspielen, muss man in den Einstellungen entsprechend diese Zeile einfügen:
mocp -c && mocp –append %q && mocp -p
Das bewirkt: Playliste löschen, aktuellen Stream zur Playliste hinzufügen und Playliste abspielen.