Natenoms Wiki

Weil Teilen Spaß macht :)

Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

Übersetzungen dieser Seite:

Navigation



Lizenz dieses Wikis
Über dieses Wiki
Feed des Wikis
Impressum


Was gerade in meinem Blog geschieht:

linux:scripte:jamendo_listen

Jamendo Listen Script

Mittels dieses Scripts kann man sehr bequem alle (neuen) Alben bei Jamendo durchhören, von der Konsole aus :) Das Durchhören kann zwar auch in der Konsole geschehen, z. B. mit Music on Console (moc) oder mplayer(2), es geht aber auch mit VLC-Media-Player.

Bei Gefallen lässt sich direkt das Ogg-Archiv des Albums herunterladen oder die Web-Seite des Albums öffnen.

Neu in Version 1.0.2:

  • Bei Verwendung von -xurl wird der URL des Albums/Titels per xsel oder xclip (je nach Einstellung) aus der Zwischenablage geholt und muss nicht mehr angegeben werden.

Neu in Version 1.0.1:

  • Kommt nun auch mit den geänderten URLs von Jamendo klar und mit den Redirects auf verschiedene Hosts für verschiedene Dateien.
  • Wurde hinsichtlich der Argument-Position überarbeitet, so dass es nun egal ist, an welcher Position die verschiedenen Argumente stehen.
  • Mit -debug kann man sich nun den Ablauf des Scripts mit aktiviertem Shell-Tracing (set -x) ansehen.
  • Bei Verwendung von mplayer(2):
    • Es wird nun angezeigt, ob es sich um ein Album(list) oder ein Stück(track) handelt.
    • URL zur Jamendo-Web-Seite des entsprechenden Tracks/Albums wird angezeigt
  • Das -url Kommando funktioniert nun wieder richtig.

Herunterladen

Das aktuelle Script kann man herunterladen unter https://github.com/Natenom/Jamendo-Listen/tags.

Weitere Informationen unter https://github.com/Natenom/Jamendo-Listen.

TODO

  • Bisher werden die Dateien mittels Firefox heruntergeladen da Javascript für die Downloadseite notwendig ist… dieses sollte auch direkt in der Konsole ermöglicht werden.
  • Script umbauen, damit die Position der Argumente nicht mehr relevant ist.
  • wget durch cURL ersetzen 1)

Abhängigkeiten

  • cURL
    Seit einiger Zeit leitet Jamendo je nach Datei zu verschiedenen Hosts weiter, mplayer etc. kommen damit nicht klar, deshalb wird die URL zuerst mit cURL aufgerufen und ein Redirect herausgefiltert, um die Ursprungs-URL in der m3u-Datei durch das neue Ziel zu ersetzen.
  • wget zum Herunterladen der Ogg-Archive von Alben

Hintergrund

Ich höre gerne jedes neue Album bei Jamendo mehr oder weniger gründlich zumindest teilweise an.
Jedes Album bekommt von Jamendo eine eigene ID, die normalerweise die letzte ID + 1 ist.
Aus mir unbekannten Gründen sind jedoch teilweise die IDs nicht oder nicht mehr belegt und man landet auf einer Fehlerseite.

Es ist jedoch ziemlich nervig, per Hand im Browser immer wieder die letzte verfügbare Album ID zu inkrementieren und zu prüfen ob dahinter ein neues Album oder nur eine Fehlerseite zum Vorschein kommt.

Auch ohne nicht existierende IDs ist es ziemlich nervig, da in einigen Tagen durchaus mehrere hundert neue Alben erscheinen können.

Das Ziel war es, ein Script zu bekommen, welches mir automatisch die nächste verfügbare album id sucht und die Handhabung der Links/Albumseiten/Downloads erleichtert.

Unterstützte MediaPlayer

MOC, VLC, mplayer und mplayer2 sind als Backend eingebaut.
Weitere lassen sich einfach hinzufügen in der Funktion load_m3u_to_player().

Features

  • Letzte gültige ID wird lokal in einer Datei gesichert.
  • Nächste gültige Album ID finden.
  • Album (Ogg-Archiv) mit wget herunterladen.
  • Web-Seite des Albums in einem Browser öffnen
  • Nach X nicht gefundenen IDs bricht die Suche der naechsten id ab; vermutlich gibt es keine neuen Alben mehr.
  • Bei Netzwerkfehlern (kein Netz etc.) bricht die Suche auch ab mit einer entsprechenden Meldung.
  • (-v zeigt ein paar zusätzliche Infos, wird in Zukunft entfernt werden)
  • Mittels -debug kann man sich das Shell-Tracing anzeigen lassen (set -x)
  • Mittels -sx lassen sich mehrere „Sitzungen“ verwalten.
    Z. B. um alle neuen Alben oder alle Alben ab ID x bla durchzuhören :)
  • Mit -ppurl wird die URL zum per -id oder -url oder zur aktuellen ID angegebenen Album/Track ausgegeben.

Für eine komplette Liste bitte die Hilfe-Funktion aufrufen.

Hilfefunktion

Einfach mal selbst ausprobieren… :)

jamendo_listen.sh -h

Oder im Quellcode nachsehen: https://github.com/Natenom/Jamendo-Listen/blob/master/jamendo_listen.sh#L45.

Beispiele

Tipp: Nicht spammen

Damit die bash_history nicht vollgespammt wird mit den Scriptaufrufen, bietet es sich an, vorher eine eigene Bash zu starten mit

bash

Denn bash schreibt die History immer nur beim Beenden. Dadurch, dass man eine weitere Bash startet, dort jamendo_listen.sh immer wieder aufruft, sich dann aus der zweiten Bash ausloggt und dann aus der ersten wird letztlich nur eine Zeile in der History eingetragen.

Erster Start

Beim ersten Start muss man manuell eine ID mitgeben, da das Script sonst bei 0+1 anfängt.

jamendo_listen.sh -i 73634 -sn

Damit sucht das Script ab der ID 73634+1 und sichert die nächste gültige album id.

M3U-Playlist in den Player laden

Folgender Befehl lädt die M3U-Playlist herunter, legt diese unter dem eingestellten Dateinamen ab und lädt die Playlist im angegebenen Player:

jamendo_listen.sh -lm moc

Um das ganze mit VLC zu machen verwendet man:

jamendo_listen.sh -lm vlc

Beide Schritte in einem ...

Um die nächste ID zu finden und direkt in den Player zu laden, verwendet man:

jamendo_listen.sh -snlm vlc

Bereits verwendete Suffixes anzeigen

jamendo_listen.sh -ps
from_start
current

Anhand der Album ID die URL zur Web-Seite des Albums ausgeben

jamendo_listen.sh -id 124 -ppurl
arg__start_id: 124
https://www.jamendo.com/de/list/a124

Web-Seite des letzten gültigen Albums des Präfix current ausgeben

jamendo_listen.sh -sx current -ppurl
Using suffix: current
https://www.jamendo.com/de/list/a113333
1)
aktuell nicht möglich, da es laut Manpage keine Möglichkeit gibt sowas zu tun wie bei wget mit
--trust-server-names
linux/scripte/jamendo_listen.txt · Zuletzt geändert: 2015/11/26 19:37 von Natenom