Was macht tsStreamRipper?
===================================================================================================

Mit tsStreamRipper ist es möglich Radiokanäle aufzunehmen, die über das Web-Interface der Dreambox 
gestreamt werden. Haupt Anwendungsfall ist zum Beispiel die Aufnahme eines SKY Musikkanals, der
nahezu unterbrechungsfrei Musikstücke voll ausspielt.

Es wird für jedes Musikstück eine eigene Datei angelegt mit "[Titel] - [Interpret].mp3". Die
Datei selber wird mit ID3v2 Tags versehen (Titel, Interpret, Album, Jahr). Die üblichen
verdächtigen Anwendungen können in der Regel daraufhin ein Cover-Bild des Musikstück laden und
anhängen (z.B. iTunes).

Wird ein Musikstück gerippt das bereits im Zielverzeichnis existiert, wird es übersprungen sofern
der "-overwrite" Switch nicht gesetzt ist. Beschädigte Dateien oder Dateien mit 
Moderator-Ansprachen können also problemlos gelöscht werden, bis eine Variante gespielt wird, die
einem gefällt.

Konvertierung der gerippten MP2-Dateien:
===================================================================================================

Die gerippten Musikstück sind Mpeg1-Layer-2 kodiert (in Wirklichkeit ".mp2" Dateien) und können
von iPod's und iPhone's nicht wiedergegeben werden. Aus diesem Grund kann optional die 
Transkodierung der Musikdatei in das AAC-LC Format (".m4a") mittels "FAAC" oder in das MP3-Format
mittel "LAME" erfolgen. FAAC oder LAME sind vom Anwender selber zu installieren. Das AAC Format
sollte theoretisch eine bessere Audioqualität liefern. Es kann nur entweder nach MP3 oder nach
AAC konvertiert werden, nicht beides gleichzeitig. 

FAAC : Quelle: http://www.audiocoding.com/
LAME : Quelle: http://lame.sourceforge.net/

Verwendung Kommandozeile:
===================================================================================================

tsStreamRipper sollte auf allen Plattformen mit installiertem Java 1.5 oder höher laufen. Getestet
ist es unter Ubuntu Linux 10.04. 

Per Default werden temporäre Dateien im "Temp-Ordner" mit dem Prefix "stream" abgelegt. 

Einen Hilfetext zur Anwendung erhält man beim Aufruf von:

# java -jar tsStreamRipper.jar --help
 
Minimal sind die Parameter -host, -channel oder -channelKd und -musicDir anzugeben. Ist HTTP 
Authentifizierung auf der Dreambox aktiv, müssen die Parameter -user und -pass gesetzt sein.

Folgende SKY Radiosender sind hinterlegt und können mit dem Parameter -channel verwendet werden:
	- 60er_70er
	- 80er_90er
	- country
	- deutsche_charts
	- lovesongs
	- rnb_hiphop
	- rock_hymnen

Möchte man stattdessen einen individuellen Sender aufnehmen, der in der obigen Liste nicht
aufgefürt ist, so ist dessen "sRef"-ID bei dem Parameter -channelId einzutragen. 

Möchte mann die gerippten Musikstücke zu AAC-Dateien konvertieren, ist die Option "-convert" mit 
dem vollqualifizierten Pfad auf "facc" zu setzen. Sollen die gerippten Musikstücke zusätzlich im
MP2-Format (Dateiendung .mp3) erhalten bleiben, ist die Option "-keepOrig" zu setzen.

Möchte mann die gerippten Musikstücke zu richtigen MP3-Dateien konvertieren, ist die Option 
"-convert_mp3" mit dem vollqualifizierten Pfad auf "lame" zu setzen. Sollen die gerippten 
Musikstücke zusätzlich im MP2-Format (Dateiendung .mp2) erhalten bleiben, ist die Option 
"-keepOrig" zu setzen.

Ist der Switch "-switchFilenameFormat" gesetzt, wird der Dateiname in der Form 
"[Interpret] - [Titel].mp3" gespeichert, also gedreht zum Default-Verhalten. 

Ist der Switch "-overwrite" gesetzt, werden vorhande Musikstücke überschrieben. Diese Funktion ist
dafür gedacht, größere Musik-Sammlungen zu aktualisieren, z.B. wegen fehlerhaften Aufnahmen, ohne
die Musik-Bibliothek gleich komlett löschen zu müssen.

Ist das WebInterface nicht über den Standardport (80) erreichbar, ist der Parameter "-webport"
mit der Portnummer zu setzen.

Ist das StreamingInterface nicht über den Standardport (8001) erreichbar, ist der Parameter 
"-streamport" mit der Portnummer zu setzen.

Optional kann der EPG-Typ, das ist die Art und Weise, wie die Liedinformationen aufbereitet sind,
über den Parameter '-epgType' konfiguriert werden. Default ist 'kd'. Als alternativer EPG-Typ ist
derzeit 'swiss' für Swiss Satellite Radio, und 'kd' für KabelDeutschland umgesetzt. Hier werden
teilweise keine Album- und Jahresinformationen mitgesendet. Somit fehlen gerippten Dateien diese
Felder in dessen ID3-Tag Sektion.

Beispiele:
===================================================================================================

Beispiel : Aufnahme des Senders "80er und 90er" 

  - Dreambox IP Adresse 192.168.1.2
  - Aufnahme des SKY Radiosender "80er & 90er"
  - Aufnahmeverzeichnis, in den die fertigen Musikstücke verschoben werden "/Musik/Sky/80er90er"

# java -jar tsStreamRipper.jar -channel 80er_90er -host 192.168.1.2 -musicDir /Musik/Sky/80er90er


Beispiel : Aufnahme des Senders "80er und 90er" und Konvertierung der MP2-Datei zur m4a-Datei.

  - Dreambox IP Adresse 192.168.1.2
  - Aufnahme des SKY Radiosender "80er & 90er"
  - Aufnahmeverzeichnis, in den die fertigen Musikstücke verschoben werden "/Musik/Sky/80er90er"
  - FAAC ist unter dem Pfad "/usr/bin/faac" installiert.
  - MP2-Datei wird nach Konvertierung gelöscht.

# java -jar tsStreamRipper.jar -channel 80er_90er -host 192.168.1.2 -musicDir /Musik/Sky/80er90er
  -convert /usr/bin/faac


Beispiel : Aufnahme des Senders "80er und 90er" und Konvertierung der MP2-Datei zur MP3-Datei.

  - Dreambox IP Adresse 192.168.1.2
  - Aufnahme des SKY Radiosender "80er & 90er"
  - Aufnahmeverzeichnis, in den die fertigen Musikstücke verschoben werden "/Musik/Sky/80er90er"
  - LAME ist unter dem Pfad "/usr/bin/lame" installiert.
  - MP2-Datei wird nach Konvertierung gelöscht.

# java -jar tsStreamRipper.jar -channel 80er_90er -host 192.168.1.2 -musicDir /Musik/Sky/80er90er
  -convert_mp3 /usr/bin/lame


Beispiel : Aufnahme eines individuellen Radiosenders

  - Dreambox IP Adresse 192.168.1.2
  - Aufnahme des Radiosenders mit der sRef id "1:0:2:97:11:85:C00000:0:0:0:"
  - Aufnahmeverzeichnis, in den die fertigen Musikstücke verschoben werden "/Musik/Sky/RockHymnen"

# java -jar tsStreamRipper.jar -channelId 1:0:2:97:11:85:C00000:0:0:0: -host 192.168.1.2 
       -musicDir /Musik/Sky/RockHymnen


Verwendung GUI:
===================================================================================================

Die GUI von tsStreamRipper sollte auf allen Plattformen mit installiertem Java 1.6 oder höher 
laufen. Getestet ist es unter Max OS X und Windows.

Die GUI startet etweder per "Doppelklick" auf die JAR Datei oder von der Kommandozeile aus mit:

# java -jar tsStreamRipper.jar

Die Parameter der Kommandozeile finden sich größtenteils in Menüpunkt "Einstellungen" wieder.
Im Menü-Punkt "Verzeichnisse" können Standard-Verzeichnisse für die jeweiligen Sender definiert
werden, die dann automatisch im Hauptfester als Aufnahmeverzeichnis gesetzt werden. 

Bekannte Probleme :
===================================================================================================

* Wenn bei SKY die Charts "durchgezählt" werden, ist der Moderator am Anfang des Stücks zu höhren.
  Es bietet sich von daher an, die ersten Sekunden des Stücks zu überprüfen und ggf. zu löschen
  oder nur zu Zeiten aufzunehmen, an denen kein "Countdown" stattfindet.
  
* Ich habe derzeit keine Idee, wie man die EPG Daten anderer Musikkanäle auf dem gleichen
  Transponder bekommt, ohne auf diese schalten (zappen) zu müssen. Deshalb wird derzeit das
  parallele rippen aller SKY Musikkanäle des gleichen Transponders nicht unterstützt. Auch wenn
  das "durchzappen" von Kanal zu Kanal vorstellbar wäre.

  
Wunschliste :
===================================================================================================

* Aufzeichnung alternative Radiosender oder Musiksender. Derzeit ist die Auswertung des EPG Strings
  auf SKY Radio eingeschränkt.
  
* Gleichzeitige Aufzeichnung mehrerer SKY Radiosender. Theoretisch könnte man einfach durch die
  jeweiligen Sender "zappen" und die EPG über das WebCommand "/getcurrent" auslesen. Ist aber
  derzeit nicht implementiert. Möglicherweise gibt es zu diesem Vorgehen auch schlauere
  Alternativen.  
  