LMU - Das Hilfe Forum für Linux Mint

Software => Shell-Programmierung und Scripting => Thema gestartet von: lmFriend am 10.06.2021, 21:06:58

Titel: Jeder 1. Buchstabe eines Wortes großgeschrieben
Beitrag von: lmFriend am 10.06.2021, 21:06:58
Hallo Forenmitglieder,

ich versuche gerade den Inhalt einer mit Songtiteln wie "ANIMOTION - OBSESSION.MP3" gefüllten PLS-Datei mittels Skript zu ändern. Wie bereits im Betreff erwähnt, soll jeder 1. Buchstabe eines Wortes groß- und der Rest kleingeschrieben werden.

Mein bisheriger Code funktioniert leider noch nicht:

#!/bin/sh
FILE=$1

cat $FILE|while read line;do
        touch=$(echo $line|grep -i ".mp3")
        if [[ "$touch" != "" ]]
        then
                echo $line|tr '[:upper:]' '[:lower:]'
        else
                echo $line
        fi
done

Hat jemand einen Verbesserungsvorschlag für mich?
Titel: Re: Jeder 1. Buchstabe eines Wortes großgeschrieben, Rest klein
Beitrag von: Axel-Erfurt am 10.06.2021, 21:26:29
Dann wird aber die Playlist nicht mehr funktionieren. ANIMOTION - OBSESSION.MP3 ist ja wohl ein Dateiname?

Oder änderst Du auch die Dateinamen?
Titel: Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
Beitrag von: lmFriend am 10.06.2021, 21:34:32
Die Dateinamen wurden bereits vor längerer Zeit geändert und die PLS nicht verwendet. Jetzt möchte ich sie wieder einsetzten und bei ca. 150 Titeln erscheint mir die Gestaltung über ein Skript fehlerfreier.
Titel: Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
Beitrag von: Axel-Erfurt am 10.06.2021, 21:39:54
Also ist z.B ANIMOTION - OBSESSION.MP3 der Titel in der Playlist?

Du könntest es mit python machen und das .MP3 gleich weglassen.

Beispiel (liste.pls und neue_liste.pls anpassen)

in_text = open("liste.pls", "r").read().splitlines()
out_text = ""

for line in in_text:
    if ".MP3" in line:
        extension = line.rpartition(".")[2].lower()
        title = line.rpartition(".")[0].title()
        out_text += f"{title}\n"
    else:
        out_text += f"{line}\n"

print(out_text)

with open("neue_liste.pls", "w") as f:
    f.write(out_text)
Titel: Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
Beitrag von: lmFriend am 10.06.2021, 21:55:22
Sorry, ich vergaß die Antwort - es ist einer der Titel in der Playlist. Ich habe keine Erfahrung mit python. Wie muss die Datei aufgerufen werden und kann ich sie unter Actions ablegen, damit sie im Kontextmenue aufgelistet ist?

Note: noch eine Frage, bekommt dein Code die Dateiendung .py?
Titel: Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
Beitrag von: Axel-Erfurt am 10.06.2021, 22:05:42
Den Code kopierst Du in deinen Texteditor und speicherst es als test.py zum Testen im Downloads Ordner

Vorher aber liste.pls ersetzen durch den Pfad deiner Playlist.

Dann im Terminal 

cd ~/Downloads
python3 ./test.py

neue_liste.pls findest Du dann im Downloads Ordner.
Titel: Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
Beitrag von: lmFriend am 10.06.2021, 22:09:14
OK, teste ich später und melde mich danach noch einmal...
Titel: Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
Beitrag von: Kreuz Elf am 10.06.2021, 22:48:20
Also wenn es um Dateinamen geht dann sollte folgendes Bash script den Job tun:
mmv \* \#l1
for i in *
do
a=`echo $i | sed 's/\(\<.\)/\U\1/g'`
mv "$i" "$a"
done
Wenn du es nicht schon hast musst du davor schnell mmv per apt installieren.
dann diesen Code in eine Datei mit beliebigem Namen rein und in das Verzeichnis schieben mit deinen mp3s und
bash DEINSCRIPTMITBELIEBIGEMNAMEN python braucht man für sowas nicht bemühen ;)
Titel: Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
Beitrag von: Kreuz Elf am 10.06.2021, 22:52:19
könnte man sich auch mal für später speichern das script.
Ich habs jedenfalls getan  :P
Titel: Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
Beitrag von: Kreuz Elf am 10.06.2021, 22:53:59
Ich hab beim googlen nach diesem Problem gesehen dass es scheinbar eigens Programme gibt mit GUI die nichts anderes tun als MP3 Dateien umzubennen  ???
Sowas braucht man natürlich nicht  :-*
Titel: Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
Beitrag von: Axel-Erfurt am 10.06.2021, 23:00:18
Also wenn es um Dateinamen geht ...

Es geht eben nicht um Dateinamen sonderum um Titel in der Playlist.

Titel: Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
Beitrag von: Kreuz Elf am 10.06.2021, 23:08:54
Achso ok
Wie kann man sich diese PLS Datei denn Vorstellen? Ist das einfach eine Liste mit den Dateinamen?
Oder was steht da sonst noch drin?
Titel: Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
Beitrag von: Axel-Erfurt am 10.06.2021, 23:24:21
Wie kann man sich diese PLS Datei denn Vorstellen?

https://de.wikipedia.org/wiki/PLS_(Dateiformat)
Titel: Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
Beitrag von: Kreuz Elf am 10.06.2021, 23:38:07
Uff... jetzt wird klar warum mit python gearbeitet werden soll.
Das ist natürlich schon etwas komplizierter...
Ich mein theoretisch könntest du sicher auch das mit commandline tools bewerkstelligen.
Vielleicht nach "File" greppen, dann am letzten Slash cutten und dann mit meinem sed Befehl...
So könntest du dir zumindest eine Liste erstellen mit den neuen Dateinamen.
Dann müsstest du die natürlich noch irgendwie in die ursprüngliches PLS zurückbekommen...
In Python wird das aber glaub ich auch nicht einfacher werden.
Titel: Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
Beitrag von: Kreuz Elf am 10.06.2021, 23:49:43
Aber moment mal! Müsste es dann nicht folgendermaßen gehen:
#!/bin/sh
FILE=$1

cat $FILE|while read line;do
        touch=$(echo $line|grep -i ".mp3")
        if [[ "$touch" != "" ]]
        then
                allesklein=`$line|tr '[:upper:]' '[:lower:]'`
                anfanggross=`sed 's/\(\<.\)/\U\1/g' $allesklein`
                echo $anfanggross
        else
                echo $line
        fi
done
Titel: Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
Beitrag von: lmFriend am 11.06.2021, 02:56:13
Vielen Dank noch einmal an @Axel-Erfurt und @Kreuz Elf für die Unterstützung. Der python-Code hat auf Anhieb funktioniert, während das Script leider keine Ergebnisse bringt, obwohl ich mir da auch ziemlich sicher war.

@Axel-Erfurt
Kann man den Code so formulieren, dass ".mp3" (also kleingeschrieben) erhalten bleibt? In der PLS-Playlist wird für jeden Song 3 Zeilen benötigt. Nach diesem Schema:

File1=/media/autofs/Musik/F/Fancy - Flames Of Love.mp3
Title1=Fancy - Flames Of Love
Length1=-1

Abschließend noch eine Frage, kennt jemand e2pls-playlisten? Die werden von Enigma2 Receiver erstellt und haben folgenden Inhalt:

4097:0:0:0:0:0:0:0:0:0:/media/autofs/Musik/Achim Reichel - Blues In Blond.mp3
4097:0:0:0:0:0:0:0:0:0:/media/autofs/Musik/Amii Stewart - Knock On Wood.mp3
4097:0:0:0:0:0:0:0:0:0:/media/autofs/Musik/Barclay James Harvest - Poor Man's Moody Blues.mp3
4097:0:0:0:0:0:0:0:0:0:/media/autofs/Musik/Bowie - Heroes.mp3
4097:0:0:0:0:0:0:0:0:0:/media/autofs/Musik/Dire Straits - Brothers In Arms.mp3
4097:0:0:0:0:0:0:0:0:0:/media/autofs/Musik/P/Pink Floyd - Shine On You Crazy Diamond.mp3

Bis jetzt ist es mir noch nicht gelungen, diesen Code selbst zu schreiben.
Titel: Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
Beitrag von: EAE am 11.06.2021, 09:22:31
Hier Beispiel aus dem IPTV-Videobereich als Grundlage, wie E2 Receiver ticken:
4097 spricht in Enigma den e2iplayer an, der als Plugin heruntergeladen werden kann, normal ist ja der Gstplayer, folglich 5002.
Solche Listen erstelle ich im Texteditor, oder lade die Listen von Stony272 runter.
Beispiel eines Auszugs meiner eigenen Liste(Sender müssen leider erneuert werden):
#DESCRIPTION Afrika
#SERVICE 4097:0:1:0:0:0:0:0:0:0:https%3a//stream-06.ix7.dailymotion.com/dm/3/x6lvncs/live-3.m3u8
#DESCRIPTION K24, Nairobi, Kenia
#SERVICE 4097:0:1:0:0:0:0:0:0:0:http%3a//197.232.56.13%3a1935/live/myStream/live/chunklist_w912078305.m3u8
#DESCRIPTION Kass TV, Kenia
#SERVICE 4097:0:1:0:0:0:0:0:0:0:https%3a//stream-07.dc3.dailymotion.com/dm/3/x6shkab/live-3.m3u8
#DESCRIPTION NTV Kenia
#SERVICE 4097:0:1:0:0:0:0:0:0:0:https%3a//vidcdn.vidgyor.com/citizentv-origin/liveabr/citizentv-origin/live1/chunks.m3u8
#DESCRIPTION Citizen TV, Kenia
#SERVICE 4097:0:1:0:0:0:0:0:0:0:http%3a//109.169.41.122/hls-live/IlembeTV/_definst_/liveevent/livestream.m3u8
#DESCRIPTION Ilembe TV, Südafrika

Wichtig ist der Teil um E2 konform etwas sichtbar zu machen:
#SERVICE 4097:0:1:0:0:0:0:0:0:0:http%3a//
Du kannst 4097 auch durch 5002 ersetzten im E2 Receiver, geht.

Streamlink hab ich auch noch auf meiner DM920 um z.B. die Vulkanlivestreams aus Island auf die Flimmerkiste zu schmeißen, Beispiel:

#SERVICE 1:64:0:0:0:0:0:0:0:0::Vulkan Livewebcams und KNR Grönland
#DESCRIPTION Vulkan Livewebcams und KNR1 & 2 Grönland
#SERVICE 5002:0:1:0:0:0:0:0:0:0:http%3a//127.0.0.1%3a8088/https%3a//www.youtube.com/watch?v=uOEuf_4z_sM:Live Feed 2! Iceland Volcanic Eruption
#DESCRIPTION Live Feed 2! Iceland Volcanic Eruption
#SERVICE 5002:0:1:0:0:0:0:0:0:0:http%3a//127.0.0.1%3a8088/https%3a//www.youtube.com/watch?v=7-RhgB1INII:Live from the volcano in Geldingadalir seen from Fagradalsfjall, Iceland
#DESCRIPTION Live from the volcano in Geldingadalir seen from Fagradalsfjall, Iceland
#SERVICE 5002:0:1:0:0:0:0:0:0:0:http%3a//127.0.0.1%3a8088/https%3a//www.youtube.com/watch?v=ehuO-yyogAA:Geldingadalir Volcano, Iceland - LIVE! Close-up camera
#DESCRIPTION Geldingadalir Volcano, Iceland - LIVE! Close-up camera
#SERVICE 5002:0:1:0:0:0:0:0:0:0:http%3a//127.0.0.1%3a8088/https%3a//www.youtube.com/watch?v=XwN-u4Ccygs:Geldingadalir Volcano, Iceland - LIVE! Nátthagi camera
#DESCRIPTION Geldingadalir Volcano, Iceland - LIVE! Nátthagi camera
#SERVICE 5002:0:1:0:0:0:0:0:0:0:http%3a//127.0.0.1%3a8088/https%3a//www.youtube.com/watch?v=XTumPu8dxcA:Geldingadalir Volcano, Iceland - LIVE! Overview camera
#DESCRIPTION Geldingadalir Volcano, Iceland - LIVE! Overview camera
#SERVICE 5002:0:1:0:0:0:0:0:0:0:http%3a//127.0.0.1%3a8088/https%3a//www.youtube.com/watch?v=7AdRsDhgQ_8:Volcanic Eruption in Geldingadalir / Natthagi, Iceland - 3 Angles and Custom Map
#DESCRIPTION Volcanic Eruption in Geldingadalir / Natthagi, Iceland - 3 Angles and Custom Map
#SERVICE 5002:0:1:0:0:0:0:0:0:0:http%3a//127.0.0.1%3a8088/https%3a//www.youtube.com/watch?v=I1I-0PUhFmU:Live volcanic eruption in Iceland!
#DESCRIPTION Live volcanic eruption in Iceland!
#SERVICE 5002:0:1:0:0:0:0:0:0:0:http%3a//127.0.0.1%3a8088/https%3a//www.youtube.com/watch?v=3mS2kM6NT3Y:Live Feed! Iceland Volcano Eruption near Reykjavik
#DESCRIPTION Live Feed! Iceland Volcano Eruption near Reykjavik
#SERVICE 5002:0:1:0:0:0:0:0:0:0:http%3a//127.0.0.1%3a8088/https%3a//www.youtube.com/watch?v=ULbuPLm6eNU:Volcano Etna Italy
#DESCRIPTION Volcano Etna Italy
#SERVICE 5002:0:1:0:0:0:0:0:0:0:http%3a//127.0.0.1%3a8088/https%3a//www.youtube.com/watch?v=Sv9hcJ3k5h4:4K Live Camera Mt.FUJI
#DESCRIPTION 4K Live Camera Mt.FUJI
#SERVICE 5002:0:1:0:0:0:0:0:0:0:http%3a//127.0.0.1%3a8088/https%3a//www.youtube.com/watch?v=hNNn75yqQH4:KNR 1 TV-Greenlandic Broadcasting Corporation Live Stream
#DESCRIPTION KNR 1 TV-Greenlandic Broadcasting Corporation Live Stream
#SERVICE 5002:0:1:0:0:0:0:0:0:0:http%3a//127.0.0.1%3a8088/https%3a//www.youtube.com/watch?v=bwWN526hK3I:KNR 2 Live Stream
#DESCRIPTION KNR 2 Live Stream

Wichtig ist der Teil um E2 konform etwas sichtbar zu machen:
#SERVICE 5002:0:1:0:0:0:0:0:0:0:http%3a//127.0.0.1%3a8088/https%3a//
Streamlinklisten lassen sich auch schneller erstellen, als die oben erstgezeigten.

Ich hoffe, das hilft ein wenig. Hier noch zwei URLs:

https://www.opena.tv/streamlink/55023-streamlink-27-der-nachfolger-von-livestreamer.html

https://www.opena.tv/settings-senderlisten/12104-meine-senderliste-e2-19-2-hd-sky-orf-iptv-fav.html

Guck dir auch STONY272 seine Radiolisten auf der o.g. Webseite an, kommt deinen Thema näher, unterscheidet sich aber nicht groß von dem, was ich dir hier aufzeige.

Bei meiner DM920 würde ich deine Musik ungefähr so vom NAS aufrufen, ungefähres Beispiel:
/media/autofs/Musik/Achim Reichel - Blues In Blond.mp3
/media/autofs/Musik/Amii Stewart - Knock On Wood.mp3
/media/autofs/Musik/Barclay James Harvest - Poor Man's Moody Blues.mp3
/media/autofs/Musik/Bowie - Heroes.mp3
/media/autofs/Musik/Dire Straits - Brothers In Arms.mp3
/media/autofs/Musik/P/Pink Floyd - Shine On You Crazy Diamond.mp3

Das wäre dann so ungefähr der Symlink.

So hab ich's auch gelernt, ich schiebe dann die mit Textverarbeitung bearbeiteten Listen über FILEZILLA nach /etc/emiga, und boote danach neu, fertig.

C.
Titel: Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
Beitrag von: Axel-Erfurt am 11.06.2021, 10:16:38
Kann man den Code so formulieren, dass ".mp3" (also kleingeschrieben) erhalten bleibt? In der PLS-Playlist wird für jeden Song 3 Zeilen benötigt. Nach diesem Schema:

File1=/media/autofs/Musik/F/Fancy - Flames Of Love.mp3
Title1=Fancy - Flames Of Love
Length1=-1

Am besten kopierst Du mal die ersten 20 Zeilen deiner Playlist und fügt sie hier ein damit man sehen kann wie es (vorher) aussieht.
Titel: Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
Beitrag von: lmFriend am 11.06.2021, 11:13:17
@Axel-Erfurt
Das tut mir jetzt aber wirklich leid: Mein Enigma2-Receiver liest keine normalen PLS-Playlist. Das ist die traurige Erkenntnis der letzten Nacht. Trotzdem nochmals: Danke!

@EAE
Das ist meinem Equipment ziemlich ähnlich: Receiver Gigablue UE 4K Cable (Enigma2) mit NAS Synology DS918+. Allerdings funktioniert der o. g. Symlink noch nicht. Ich muss mich damit noch einmal näher beschäftigen.

Übrigen, hier gibt es aktuelle Radio-Streamlinks: https://streamurl.link/
Titel: Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
Beitrag von: Kreuz Elf am 11.06.2021, 13:29:32
kennt jemand e2pls-playlistenleider nicht aber es wäre wohl nicht schlecht würde ich mich bezüglich der PLS Dateien auch noch mal ein wenig mehr informieren.
Habe Playlisten bis jetzt immer so zusammengestellt, dass ich alle songs einfach noch mal in nen neuen Ordner kopiert habe.
Ist von der Verwaltung her einfacher, aber wenn man sich den Speicherplatz sparen will ist natürlich so eine Herangehensweise klüger.
Titel: Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
Beitrag von: Axel-Erfurt am 11.06.2021, 13:32:04
Übrigen, hier gibt es aktuelle Radio-Streamlinks: https://streamurl.link/

Die Suche ist sehr langsam, versuche mal  diese

https://www.radio-browser.info/#/search
Titel: Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
Beitrag von: lmFriend am 11.06.2021, 14:54:58
@Kreuz Elf
So kann man es natürlich auch machen. Aber dafür ist mir der Platz auf meiner NAS eigentlich zu Schade, zumal die Songs dort mit einer sehr hohen Bitrate abgelegt sind. Aber wenn es wirklich nicht anders geht, ist es für mich natürlich auch eine Lösung.

@Axel-Erfurt
Der Tipp ist richtig gut, Danke :)

@EAE
Wie suchst du eigentlich nach Songs mit einem Enigma2-Player auf deiner DM920?

Titel: Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
Beitrag von: EAE am 11.06.2021, 21:21:26
@Axel-Erfurt
Das tut mir jetzt aber wirklich leid: Mein Enigma2-Receiver liest keine normalen PLS-Playlist. Das ist die traurige Erkenntnis der letzten Nacht. Trotzdem nochmals: Danke!

@EAE
Das ist meinem Equipment ziemlich ähnlich: Receiver Gigablue UE 4K Cable (Enigma2) mit NAS Synology DS918+. Allerdings funktioniert der o. g. Symlink noch nicht. Ich muss mich damit noch einmal näher beschäftigen.

Übrigen, hier gibt es aktuelle Radio-Streamlinks: https://streamurl.link/

Schöne Kiste. Der riesen Vorteil ist, weil Du ja LINUX auf dem Computer hast, Du brauchst den Terminal im WebIF nicht, brauchst kein PuTTY, sondern kannst gleich von deinen LINUX-Terminal mit deinen Receiver Kontakt aufnehmen, und wirst nie Probleme mit Copy & Paste von Befehlen haben.
Songs suche ich nicht mit der Kiste, ich und meine Frau machen hier alles auf den Computern über Clipgrab(oder Alternativen)fertig, und schieben alles dann auf's FrittenNAS, dort greift die DM920 dann auf den für Sie freigegebenen Musikordner, von dort dann per TOSLINK auf die Musikanlage, ein alter YAMAHA 1300 RDS.
Man könnte das Plugin MEDIAPORTAL auf deine Kiste spielen, dort gibt es auch Radiosender, aber DHWZ wird es für die Openimages nicht mehr weiterentwickeln, leider.
Ich hab hier noch ein Video von E2World, geht zwar um E2-Kisten und FritzNAS, aber hilft grundlegend auch bei anderen NÄSSEN:

https://www.youtube.com/watch?v=dUZBCGwoUDg

C.
Titel: Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
Beitrag von: lmFriend am 12.06.2021, 01:56:03
@EAE

Vielen Dank für den Link :)

Was die Suche auf deiner DM920 angeht bin ich mir nicht sicher, ob ich mich verständlich genug ausgedrückt habe. Die App Bmediacenter (für die ich mich entschieden habe) hat kein Suchfunktion. Bei ca. 4500 Songs auf der NAS dauert es verständlicherweise eine Ewigkeit bis man z. B. einen Interpreten mit dem Buchstaben "P" beginnend gefunden hat. Deshalb meine Frage, momentan habe ich (um die Suche zu vereinfachen) noch ein Alphabet eingefügt. Dann ist es nicht mehr ganz so problematisch.
Titel: Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
Beitrag von: EAE am 12.06.2021, 06:53:50
Mit Ordnern. Ordner A-Z->Ordner Interpret->Alben dieses Interpreten nochmal in einen Ordner im Ordner Interpret. So mach ich das seitdem ich ROCKBOX auf meinen iRIVER H320 habe. Und genau diesen Strukturaufbau hab ich für die DM920 übernommen, weil beide Geräte ja mit Cursortasten gesteuert werden. So konnte ich auch gleich die Musikliste vom iRIVER auf's NAS für die DM920 schieben und ergänzen.
Die Suche geht wirklich ratzfatz so mit den Fernbedienungscursortasten.
Und glaube mir, da sammelt sich mehr als 4500 Titel seit den 1980'er Jahren an, weil auch die Platten mp3 digitalisiert sind, und die CD's mp3eit.

C.