• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[Tipp] für freie mp3

Hallo Leute

Habe mal wieder ein Script gebastelt das die Welt noch nie gebraucht hat :) ;-)
Sein Sinn besteht vor allem in enormer Zeitersparnis (auch wenn die mp3 hinterher nach Metadaten umbenannt werden müssen).

Voraussetzung für das Script: dog muss installiert sein (heißt tatsächlich so)

Anwendung: Man übergibt dem Script auf der Kommandozeile beliebig viele Links, die aber alle in voller länge mit http://undsoweiter... sein müssen, das dog sie richtig interpretieren kann.

Am besten legt man sich vorher einen Zielordner an, in dem man dann erstmal in der Konsole wechselt.





#!/bin/bash

while true
do
[ ! ${1} ] && echo "bitte Links Übergeben" && exit
for mpdrei in `dog --links ${1} | grep ".mp3"`
do
wget -nc ${mpdrei}
done
shift
done

Gruß Peter
 
OP
T

trommelpeter

Member
Hallo

Also brauchen ist immer so eine Sache. So ein Script ist halt gut wenn du jetzt mehrere Internetseiten hast wo du einfach ohne viel Mühe dir die mp3 holen willst.

Alleine wenn du nur mal wissen willst wieviele mp3 es auf
http://www.lastfm.de/music/+free/
zu holen gibt , dann probiere mal in der Konsole
--------------------------------------------------------------------
trommel@linux-jiac:~> menge=(`dog --links http://www.lastfm.de/music/+free/ | grep ".mp3"`) ; echo ${#menge[*]}
186
trommel@linux-jiac:~>
-------------------------------------------------------------------

Ich finde es dann ganz praktisch wenn ich mir die alle in einem Rutsch holen kann. Und in diesem Sinne mal näher zum Script:

--------------------------------------------------------------------
#Das ist logisch
#!/bin/bash

#Endlosschleife
while true

#tu es
do

#Alle drei Bedingungen müssen gleichzeitig erfolgen
#sobald ${1} leer ist bricht die Schleife mit einem echo
#und exit ab.
[ ! ${1} ] && echo "bitte Links Übergeben" && exit

#dog filtert die Links aus einer Internetseite , die auf der Kommandozeile
#übergeben wurde und in Variabel ${1} steckt.
#Die Links wiederum werden nach Zeichenkette .mp3 gegreppt.
#das Ergebnis landete nacheinander in der Variable ${mpdrei}
for mpdrei in `dog --links ${1} | grep ".mp3"`

#nochmal , tu es
do

#wget ladet nun die mp3 runter. -nc verhindert das eine gleichnahmige
#Datei überschrieben wird.
wget -nc ${mpdrei}

#forSchleife endet hier und fängt dann mit der nächsten mp3 an
done

# Wir sind immer noch in der Endlosschleife gefangen
#shift knabbert jetzt einen Link nach dem anderen von der
#Kommandozeile bis letztlich Variable ${1} leer ist und die Schleife
#abbricht.
shift

# Endlosschleife endet hier , fängt aber gleich wieder von vorne an
#solange shift auf der Kommandozeile noch was findet.
done
-------------------------------------------------------------------

Nicht vergessen. Das ist jetzt gerade mal ein Minimalscript. Man könnte noch Optionen wie Zielordner einbauen. Aber das soll jeder machen wie er will. Es reicht auch wenn man erst auf der Kommandozeile in den Zielorordner wechselt und dann erst das Script ausführt.

Gruß Peter
 
OP
T

trommelpeter

Member
Nachtrag

http://www.lastfm.de/music/+free/
Wie ich an diesem Beispiel feststellen musste gibt es hin und wieder wohl mp3 die sich massiv dem runterladen widersetzen wollen.

Um bessere Kontrolle und Übersicht über Erfolg und Misserfolg zu haben, habe ich die Schleife einfach bischen abgewandelt:
Statt wget -nc habe ich dann kget verwendet:

#!/bin/bash

while true
do
[ ! ${1} ] && echo "bitte Links Übergeben" && exit
for mpdrei in `dog --links ${1} | grep ".mp3"`
do
kget ${mpdrei}
done
shift
done

Gruß Peter
 
OP
T

trommelpeter

Member
Ergänzung:
**********



Hallo Leute


Es ist nicht Jedermanns-Sache sich die halbe Festplatte mit mp3 zuzukleistern , wenn er die Musik nicht kennt.
Deshalb könnt ihr für diese Seite:
http://www.lastfm.de/music/+free/
zB mein neues Script ausprobieren:

http://www.linux-club.de/ftopic90109.html




-------------------------------------------------------------------------
15.03.2008
Nur ein kleines Edit:
http://www.linux-club.de/viewtopic.php?p=544104#544104
--------------------------------------------------------------------------

Für die die aber gerade keine Lust haben ein Script zu starten habee ich aber auch noch einen Einzeiler, denn man ( alles auf einer Zeile )
direkt auf der Kommandozeile starten kann:



Code:
for lied in `dog --links http://www.lastfm.de/music/+free/ | grep "lastfm://play/tracks/" | cut -c 22-` ; do echo -n "${lied}," >> /tmp/lastfm_freieMusik.txt ; done ; /usr/bin/last.fm lastfm://play/tracks/`cat /tmp/lastfm_freieMusik.txt` ; rm -v /tmp/lastfm_freieMusik.txt

Aber nicht die Geduld verlieren, Es kann etwa 10 Sekunden dauern bis Musik kommt. Aber dann kann man sich mit dem "Skip"-Button des Lastfm-Player von Stück zu Stück weiterblättern.

Und wer immer noch nicht weis woher er das dog nehmen soll das ich für meine Lastfm-Scripte so gerne einsetze, hier der Link:

http://download.opensuse.org/pub/opensuse/distribution/10.3/repo/oss/suse/i586/dog-1.7-202.i586.rpm

Gruß Peter
 
OP
T

trommelpeter

Member
Code:

for lied in `dog --links http://www.lastfm.de/music/+free/ | grep "lastfm://play/tracks/" | cut -c 22-` ; do echo -n "${lied}," >> /tmp/lastfm_freieMusik.txt ; done ; /usr/bin/last.fm lastfm://play/tracks/`cat /tmp/lastfm_freieMusik.txt` ; rm -v /tmp/lastfm_freieMusik.txt

Hier das ganze nochmal in Script-Form, das die Ablaufe klarer werden:

Code:
#!/bin/bash

#Beschreibung:
#Spielt die wöchentliche FreeDownload-Charts von Lastfm ab.

for lied in `dog --links http://www.lastfm.de/music/+free/ | grep "lastfm://play/tracks/" | cut -c 22-`
do
	echo -n "${lied}," >> /tmp/lastfm_freieMusik.txt
done


/usr/bin/last.fm lastfm://play/tracks/`cat /tmp/lastfm_freieMusik.txt`
rm -v /tmp/lastfm_freieMusik.txt

Ich habe mir das gerade in ein Script geschrieben.
Auf dem Desktop liegen lassen , einen Mausklick auf das Script und man
braucht sich um nichts mehr kümmern :)

Viel Spaß :)

Gruß Peter
 
OP
T

trommelpeter

Member
Hallo blacklips

Danke für deine Reaktion.

Ich bekam schon langsam Selbstzweifel , nachdem ewig kein Feedback kam.

Noch viel Spaß beim Musikhören :)

Gruß Peter
 
OP
T

trommelpeter

Member
Hallo Leute

Ich habe mir das gerade in ein Script geschrieben.
Auf dem Desktop liegen lassen , einen Mausklick auf das Script und man
braucht sich um nichts mehr kümmern

Leider muss ich zu meinem Ärger gerade feststellen das mein Script auf dieseer Seite nicht mehr funktioniert.

Lastfm hat auf http://www.lastfm.de/music/+free/ den HTML-Quelltext komplett umgestellt. Aber so leicht gebe ich mich nicht geschlagen.
Ich komme schon wieder auf eine Idee.

Gruß Peter
 

Polypodium

Hacker
Ich habe mir das gerade in ein Script geschrieben.
Auf dem Desktop liegen lassen , einen Mausklick auf das Script und man
braucht sich um nichts mehr kümmern

Spannend wird Dein Script mit dieser Meldung:

http://www.spiegel.de/netzwelt/web/0,1518,530549,00.html

Dann sollte es auch mit nicht-freier Musik gehen :)
 
OP
T

trommelpeter

Member
Hallo

Finde ich nicht so gut, auch Künstler wollen für ihre Arbeit entlohnt werden.

Ich glaube sowieso nicht das ich die Lastfm-Seiten jetzt total häcken kann.
Dazu habe ich meinen Arsch viel zu weit unten.

Meine Scripte sind in erster Linie Spielereien die aus meiner verspielten Art Bash zu lernen entstanden sind.

Macht einfach Spaß die richtigen Links erstmal zu finden und sie dann mit cut zu zerhacken oder mit evtl mit sed zu zerlegen um sie dann zu neue funktionierende Links wieder zusammenzufügen.

Was mir nicht liegt ist, durchzupauken wie man als Admin nun ein System von 20 Servern oder so ähnlich koordinieren kann.

Was die Seite mit den freien Downloads http://www.lastfm.de/music/+free/ anbelangt. Da habe ich schon eine grobe Vorstellung im Hinterkopf , was ich damit mache.
Mit der Umsetzung habe ich noch kleine Probleme. Aber Probleme sind ja schließlich da , damit man dran lernt.



Der Artikel vom Spiegel, weis ich noch nicht so recht was ich davon halten soll.


Gruß Peter
 
OP
T

trommelpeter

Member
Hallo :)

Spannend wird Dein Script mit dieser Meldung:

http://www.spiegel.de/netzwelt/web/0,1518,530549,00.html

Dann sollte es auch mit nicht-freier Musik gehen Smile

Wenn es soweit ist könnte auch folgendes Script interessant werden :)
Keine Angst. Es funktioniert einwandfrei, obwohl ich es selber fast nicht für möglich gehalten habe :) :



Code:
#!/bin/bash



#Beschreibung
#Erzeugt zufällige Nummern die mit einer gewissen Wahrscheinlichkeit mit Stücken 
#auf LastFm zusammenpassen un spielt diese ab.



#Variable. Für Abbruchbedingung.
a=1



#Zufallsgenerator
while true ; 
do
	echo -n "${RANDOM}," >> /tmp/ZufallsLastfm.txt
	a=$[a+1] ; [ ${a} = 50 ] && break
done



#Stücke werden sofern sie existieren abgespielt
#Ergänzung: wer bei Lastfm angemeldet ist , hat dort auch eine Playlist.
#Im Lastfm-Player kann man Stücke bei gefallen dieser Playlist hinzufügen.
/usr/bin/last.fm lastfm://play/tracks/`cat /tmp/ZufallsLastfm.txt`



rm -vf /tmp/ZufallsLastfm.txt

Es erstellt Zufällige Nummern. Die Musikauswahl wird also immer wieder eine spannende Mischung sein.


Gruß Peter
 
whois schrieb:
Finde ich nicht so gut, auch Künstler wollen für ihre Arbeit entlohnt werden. :?

Ich als jemand, der (zumindest unter anderem) vom Musikmachen lebt, kann Dir sagen, dass die Zeiten, als man als professioneller Musiker mit dem Verkauf von Stücken an "Enduser" Geld verdienen konnte, so gut wie vorbei sind - da sollte man sich nichts vormachen, das Internet hat diesbezüglich einfach völlig neue Bedingungen geschaffen, die sich auch nicht mehr rückgängig machen lassen.

Und ich persönlich finde das sogar ganz gut so, denn wenn (populärer und nicht-populärer) Pop (hier mal im allerweitesten Sinne gemeint) von kommerziellen Zwängen befreit wird, die allein vom Verkauf bestimmter Stückzahlen abhängt, wird sie vielfältiger.
 
OP
T

trommelpeter

Member
Leider muss ich zu meinem Ärger gerade feststellen das mein Script auf dieseer Seite nicht mehr funktioniert.

Lastfm hat auf http://www.lastfm.de/music/+free/ den HTML-Quelltext komplett umgestellt. Aber so leicht gebe ich mich nicht geschlagen.
Ich komme schon wieder auf eine Idee.

Habe tatsächlich eine simple einfache Lösung gefunden. Diesmal nicht mit dem Lastfm-Player, sondern mit Amarok:

Code:
dog --links http://www.lastfm.de/music/+free/ | grep '.mp3$' | while read lied ; do amarok ${lied} ; done

Dabei wird das PlaylistFenster von Amarok mit allen gefundenen Stücken gefüllt und sind unmittelbar abspielbar, ohne das man sie erst runterladen muss.

Amarok hat den Vorteil das man das ganze dann gleich als Playlist ( bzw m3u ) abspeichern kann.
zB so:
LastfmFreeDownloadCharts2008.2.2.m3u

Gruß Peter
 
OP
T

trommelpeter

Member
Zitat:
Leider muss ich zu meinem Ärger gerade feststellen das mein Script auf dieseer Seite nicht mehr funktioniert.

Lastfm hat auf http://www.lastfm.de/music/+free/ den HTML-Quelltext komplett umgestellt. Aber so leicht gebe ich mich nicht geschlagen.
Ich komme schon wieder auf eine Idee.


Habe tatsächlich eine simple einfache Lösung gefunden. Diesmal nicht mit dem Lastfm-Player, sondern mit Amarok:

Ich habe aber inzwischen auch noch eine andere Lösung anzubieten:
http://www.linux-club.de/viewtopic.php?p=543372#543372

Das Script LastfmFreeMusic4.sh enthält unter Anderem die Funktion "musikfinden" . Diese Funktion habe ich genau auf die Seite
http://www.lastfm.de/music/+free/ spezialisiert.

Es besucht von sich aus die gefundenen Artist-Seiten und sucht sich dort die streambaren Links zusammen. Die meisten davon sind in voller Länge abspielbar.




Wenn man sich die Sachen dann im Lastfmplayer anhört kann man bei gefallen vom LasfmPlayer aus die jeweiligen Seiten besuchen.
Und siehe da:

Auf den meisten Lastfm-Startseiten dieser Bands findet man MP3s zum gratis runterladen :)



Gruß Peter
 
OP
T

trommelpeter

Member
Noch ein verspielter Tipp:
°°°°°°°°°°°°°°°°°°°°°°°°

Für Leute die schnell und unkompliziert Änderungen im Blick haben wollen.

Code:
#!/bin/bash
#set -x


#Beschreibung:
#Erstellt m3u's von http://www.lastfm.de/music/+free/ und vergleicht diese.

dog --links http://www.lastfm.de/music/+free/ | grep '.mp3$' | sort -u > /tmp/LastfmFreeDownloadChartNews.txt

#Hauptteil
{
echo "==========================================="
date
echo "Neu dazugekommene Stücke"
echo "==========================================="
comm -13 /home/trommel/MUSIK/LastfmFreeDownloadChartNews.m3u /tmp/LastfmFreeDownloadChartNews.txt
echo
echo
echo
echo "==========================================="
echo "Verschwundene Stücke"
echo "==========================================="
comm -23 /home/trommel/MUSIK/LastfmFreeDownloadChartNews.m3u /tmp/LastfmFreeDownloadChartNews.txt
} | mailx -s "Neues auf http://www.lastfm.de/music/+free/ `date`" -R trommel



mv -v /tmp/LastfmFreeDownloadChartNews.txt /home/trommel/MUSIK/LastfmFreeDownloadChartNews.m3u


#set +x

Will man nur eine Konsoleausgabe kommentiert man die Zeilen 11 und 24 einfach aus.
Will man die Ausgabe in eine Datei speichern passt man die Zeile 24 entsprechend an.
Bei mir wird eine Nachricht an den user trommel (ich selber) gesendet.

Und den Zielordner für das m3u müsst ihr auch noch an eure Bedürfnisse anpassen. Dieses m3u ist übrigens auch abspielbar.

Das Script kann man natürlich auch nach /etc/cron.weekly stecken, wer die Meldung mal so nebenbei bekommen will. Bei mir zB wenn ich in KMail sowieso meine eMails lese.
KMail kann ja bekanntlich auch Mails vom lokalen Postfach abholen.

Gruß Peter
 
OP
T

trommelpeter

Member
Beitrag Verfasst am: 2008-Feb-29, 22:46
Antworten mit Zitat Beitrag bearbeiten oder löschen Beitrag löschen
Noch ein verspielter Tipp:
°°°°°°°°°°°°°°°°°°°°°°°°

Für Leute die schnell und unkompliziert Änderungen im Blick haben wollen.

Habe das Script inzwischen weiterentwickelt. Ich habe es reibungslos und erfolgreich in /etc/cron.daily/ laufen.
Das Script benötigt bei mir folgende versteckte Datei:
/home/trommel/.LastfmFreeStilrichtungen.txt (siehe auch weiter unten).

Hier zuerst das Script:
Code:
#!/bin/bash
set -x


#Beschreibung:
#Erstellt m3u's von http://www.lastfm.de/music/+free/ und vergleicht diese.


#Variablen
tempdatei=/tmp/LastfmFreeDownloadChartNews.txt


#Tempdatei löschen
[ -f ${tempdatei} ] && rm -v ${tempdatei}


#Test ob configDatei vorhanden. Wenn nein, dann Meldung.
if [ ! -f /home/trommel/.LastfmFreeStilrichtungen.txt ] ; then 
	echo "Keine Stilrichtungen gefunden" |\
	mailx -s "Neues auf http://www.lastfm.de/music/+free/ `date`" -R trommel
	exit
fi


#Stil für Stil wird jetzt nach freien Downloads durchforstet.
for stil in `cat /home/trommel/.LastfmFreeStilrichtungen.txt`
do
	dog --links "http://www.lastfm.de/music/+free/${stil}" | grep '.mp3$' | sort -u >> ${tempdatei}
done

#Datei muss nun sortiert ...
musicurls=(`cat ${tempdatei} | sort -u`)
# ... und neu geschrieben werden.
{
for musicurl in ${musicurls[*]} 
do
	echo "${musicurl}"
done
} > ${tempdatei}



#Hauptteil
#Dateien werden verglichen. 
{
echo "==========================================="
date
echo "Neu dazugekommene Stücke"
echo "==========================================="
comm -13 /home/trommel/MUSIK/LastfmFreeDownloadChartNews.m3u ${tempdatei}
echo
echo
echo
echo "==========================================="
echo "Verschwundene Stücke"
echo "==========================================="
comm -23 /home/trommel/MUSIK/LastfmFreeDownloadChartNews.m3u ${tempdatei}
} | mailx -s "Neues auf http://www.lastfm.de/music/+free/ `date`" -R trommel


#MusikURLs in ein m3u schreiben , das man auch zum Vergleichen braucht.
mv -v ${tempdatei} /home/trommel/MUSIK/LastfmFreeDownloadChartNews.m3u


set +x

Und noch die versteckte Datei , die sämtliche Stilrichtungen durchforstet.
Nicht benötigte Stilrichtungen entfernt man einfach aus dieser Datei.
Code:
acoustic alternative alternative+rock ambient black+metal chill chillout dance dark+ambient death+metal downtempo electro electronic electronica experimental favorites folk free golden+arrows guitar hardcore hip+hop hip-hop house idm indie indie+rock industrial instrumental jazz lounge mellow metal minimal noise piano pop post-rock prda psychedelic punk punk+rock rap rock russian seen live singer-songwriter techno trance


====================================
Und wer wissen will wie man all die vielen Links bequem durchforsten kann, der schaut sich das fertige Script von hier noch an:

http://www.linux-club.de/viewtopic.php?p=561547#561547

Gruß Peter
 
Oben