RAML in OpenAPI konvertieren

Bei der Entwicklung oder Nutzung von REST-APIs wird der eine oder andere schon von Beschreibungssprachen wie OpenAPI (respektive Swagger) gehört haben. Eine weitere solcher Sprachen ist RAML, was für RESTful API Modeling Language steht. Soll mit einer solchen Datei ein Client generiert werden, kann hierfür unterschiedliches Tooling eingesetzt werden.

Manchmal ist es allerdings nötig, eine solche RAML-Datei in eine OpenAPI-Spezifikation zu konvertieren. Hierfür kann unter anderem der OAS RAML Converter genutzt werden, welcher über das Terminal installiert werden kann:

yarn global add oas-raml-converter-cli

Alternativ ist auch eine Installation über NPM möglich:

npm install -g oas-raml-converter-cli

Nach der Installation kann die Applikation mittels:

oasraml-cli

gestartet werden. Folgend müssen einige Fragen zur Konvertierung beantwortet werden, anschließend wird diese vorgenommen und als Datei hinterlegt. Lizenziert ist der Konverter unter der MIT-License und damit freie Software.

Spotify- und Apple-Playlisten konvertieren

Wer von Spotify zu Apple Music oder umgekehrt wechselt, der hat das Problem, das er in diesem Fall Playlisten beim jeweils neuen Dienst wieder erstellt werden müssen. Alternativ können unterschiedlichste Dienste genutzt werden, um diese Playlisten zu konvertieren.

playlistor.io

Einer Dienste ist Playlistor. Über die Webseite kann eine Spotify– und Apple Music-Playlist angegeben werden und anschließend für den anderen Dienst konvertiert werden.

M4A-Dateien im Terminal zu MP3-Dateien umwandeln

Mittels FFmpeg und dem find-Kommando lassen sich M4A-Dateien schnell in MP3-Dateien umwandeln. Dazu muss im gewünschten Verzeichnis der Befehl:

find . -iname '*.m4a' -exec bash -c 'directory=$(dirname "{}"); base=$(basename "{}"); ffmpeg -i "{}" -ab 192k "$directory/${base%.*}.mp3"' \;

im Terminal ausgeführt werden. Anschließend können die M4A-Dateien auf Wunsch gelöscht werden:

find . -type f -name '*.m4a' -delete

Damit ist die Konvertierung abgeschlossen und die MP3-Dateien sind dort zu finden, wo vorher die M4A-Dateien lagen.

Audio-Dateien mittels ffmpeg normalisieren

Für einen Audio-Workflow wollte ich unter anderem Audio-Dateien normalisieren, damit diese mit einer identischen Lautheit verfügbar sind. Dazu kann das freie ffmpeg genutzt werden:

ffmpeg -i local.flac -filter:a loudnorm local.wav

Allerdings wird bei der Normalisierung eine 2-Pass-Lösung empfohlen. Dabei wird im ersten Durchlauf die Datei analysiert, um die entsprechenden Werte für die qualitativ hochwertige Normalisierung zu ermitteln:

ffmpeg -i local.flac -filter:a loudnorm=print_format=json -f null NULL

Für die entsprechende Datei wird dann eine Ausgabe erzeugt:

{
	"input_i" : "-33.65",
	"input_tp" : "-8.11",
	"input_lra" : "7.10",
	"input_thresh" : "-44.96",
	"output_i" : "-25.28",
	"output_tp" : "-2.00",
	"output_lra" : "4.50",
	"output_thresh" : "-36.36",
	"normalization_type" : "dynamic",
	"target_offset" : "1.28"
}

Mithilfe dieser Informationen kann dann der zweite Durchlauf gestartet werden:

ffmpeg -i local.flac -filter:a loudnorm=linear=true:i=-16:lra=7.0:tp=-2.0:offset=0.50:measured_I=-33.65:measured_tp=-8.11:measured_LRA=7.10:measured_thresh=-44.96 -ar 44100 local.wav

Da die Lösung mittels ffmpeg etwas umständlich ist, wurde ffmpeg-normalize entwickelt. Dieses Python-Tool kann über den Python-Paketmanager installiert werden:

pip3 install ffmpeg-normalize

Anschließend kann die Normalisierung und Konvertierung vorgenommen werden:

ffmpeg-normalize local.flac -o local.wav -ar 44100

In diesem Fall wird die FLAC-Datei normalisiert und in eine Wave-Datei konvertiert und die entsprechende Samplerate auf 44100 gestellt. Um das Kommando einfacher zugänglich zu machen, kann eine Bash-Funktion definiert werden. Unter macOS muss diese in der entsprechenden Konfigurationsdatei der Z shell angelegt werden:

nano ~/.zshrc

Anschließend kann die entsprechende Funktion in der Datei definiert werden:

normalize ()
{
  ffmpeg-normalize "$1" -o "$1".wav -ar 44100
}

Nachdem das Terminal neu gestartet wurde, kann das Kommando wie folgt benutzt werden:

normalize local.flac

mov-Dateien mittels ffmpeg zu mp4-Dateien konvertieren

Im Internet und den Appstores existieren eine Reihe unzählige Anzahl von Konvertierungstools für Video- und Audiodateien. Und meist sind diese Werkzeuge aufgeblasen oder schlimmer mit unerwünschter Software versehen. Glücklicherweise kann die Konvertierung mittels ffmpeg auch einfach von der Hand gehen. Dazu muss ffmpeg im ersten Schritt installiert werden, z.B. unter macOS mittels Homebrew:

brew install ffmpeg

Anschließend kann im Terminal die eigentliche Konvertierung stattfinden:

ffmpeg -i example.mov -vcodec h264 -acodec aac example.mp4

Je nach Größe der Datei ist die Konvertierung nach einigen Minuten abgeschlossen.