Natenoms Wiki

Weil Teilen Spaß macht :)

Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

Übersetzungen dieser Seite:

Navigation


Unterstützen

Über Paypal oder auf anderen Wegen kannst du mir dabei helfen, die Kosten für meine Webseiten und meinen Mumble-Server zu bezahlen.
sad

Aktueller Status:
  • 30,36% sind finanziert
  • Das reicht für 1,82 Monate.
100% würde bedeuten, dass die Server für sechs Monate finanziert wären.

Lizenz dieses Wikis
Über dieses Wiki
Feed des Wikis
Impressum
Datenschutz


Was gerade in meinem Blog geschieht:

linux:scripte:jamendo_flac

Jamendo FLAC Download

Es gibt bei Jamendo Stücke auch im FLAC-Format zum Herunterladen, ganze Alben leider nicht.

Dieses Script verwendet als Angabe einen Dateinamen, findet anhand von Metadaten die Track-ID des Stücks bei Jamendo heraus, lädt das Stück im FLAC-Format herunter und speichert es entsprechend unter dem richtigen Dateinamen ab.

Für das Herunterladen wird der Dateiname xyz.temp verwendet, damit das Script bei einer abgebrochenen Datei und einem erneuten Aufruf diese erneut herunterlädt bzw. bereits existierende Dateien nicht erneut läst.

Einen Artikel im Blog zu diesem Thema gibt es hier.

Tipp: Ein anderes Script zum Herunterladen des Albums ohne dem Umweg über die Ogg-Dateien gibt es unter https://github.com/adiblol/audiotools/blob/master/jamendo-dl.

Hintergrund

Basierend auf den bereits heruntergeladenen .ogg-Dateien bzw. deren Archiven sollten die entsprechenden FLAC-Dateien heruntergeladen werden. Daher benötigt dieses Script schon heruntergeladene .ogg-Dateien auf der Platte, aus denen die Metadaten ausgelesen werden können.

Verwendung des Scripts

Das Script erwartet als Parameter immer einen einzelnen Dateinamen.

find /daten/Music_Free/ -type f -iname "*.ogg" -print0 | xargs -0 -L 1 ./reload_flac.sh

Falls diese Zeile mehrfach aufgerufen wird, werden die bereits fertigen Dateien nicht erneut heruntergeladen; nicht fertige Dateien (*.temp) werden erneut heruntergeladen.

Bestehende Dateien werden nicht gelöscht - dort (.ogg) sind Metadaten enthalten, die in den FLAC-Dateien wohl nicht drin sind.

Das Script

Das Script kann man bestimmt besser und effizienter machen, aber es funktioniert :)

jamendo_flac.sh
#!/bin/bash
 
if [ $# -lt 1 ]; 
then
    echo -e -n "Usage $0 /path/to/file\n"
    exit 0
else
    filename="${1}"
    _dirname=$(dirname "${filename}")
fi
 
case "${filename##*.}" in 
    ogg)
        _basename=$(basename "$filename" .ogg)
        _geturl=$(ogginfo "$filename" | sed -n -r -e 's#WOAF=.*/track/(.*)$#https://api.jamendo.com/get2/stream/track/redirect/\?id=\1\&streamencoding=flac#p'|tr -d ' ')
        ;; 
    mp3)
        _basename=$(basename "$filename" .mp3)
        #_geturl=$(mp3info "$filename" | sed -n -r -e 's#WOAF=.*/track/(.*)$#https://api.jamendo.com/get2/stream/track/redirect/\?id=\1\&streamencoding=flac#p'|tr -d ' ')
        echo "Not yet possible for mp3 files..."
        exit 2
        ;; 
    *) 
        echo "Not a supported file type."
        exit 1
        ;; 
esac
 
_newfile="${_basename}.flac"
 
if [ -f "${_dirname}/${_newfile}" ]; 
then
    echo "FLAC already exists: \"${_dirname}/${_newfile}\""
    exit 3
else
    wget --limit-rate=700k ${_geturl} -O "${_dirname}/${_newfile}.temp" #use .temp filename and mv ... wegen Abbruch
    if [ $? -le 0 ]; then
        mv "${_dirname}/${_newfile}.temp" "${_dirname}/${_newfile}"
    else
        echo "FLAC not available."
        rm "${_dirname}/${_newfile}.temp"
    fi 
fi

Künstliches Limit

Da der Download dieser Dateien nicht limitert zu sein scheint - im Gegensatz zu den Ogg-Downloads - wurde hier dasselbe Limit künstlich für wget gesetzt wie auch bei Ogg. 700KiB/s.

linux/scripte/jamendo_flac.txt · Zuletzt geändert: 2018/04/02 12:36 (Externe Bearbeitung)