Unkonventionelles Script schreiben - Audio und Video

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Unkonventionelles Script schreiben - Audio und Video

Beitrag von scientific » 26.08.2017 14:23:06

Und lass mal die grep weg (incl. der Pipe)
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
desputin
Beiträge: 1297
Registriert: 24.04.2015 17:16:34

Re: Unkonventionelles Script schreiben - Audio und Video

Beitrag von desputin » 30.08.2017 15:32:44

@smutbert: Danke für den Hinweis. Ich habe in den Einstellungen nun den Wii-Fernbedienungs-Support aktiviert (ich hatte irgendwo gelesen daß die mit dbus angesteuert wird) und tata - nun geht es:

Code: Alles auswählen

desputin@desputin:~$ qdbus org.mpris.MediaPlayer2.clementine /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player Metadata
bitrate: 1053
mpris:artUrl: file:///tmp/clementine-art-K18746.jpg
mpris:length: 264000000
mpris:trackid: /org/mpris/MediaPlayer2/Track/24
rating: 5
xesam:album: Sehnsucht
xesam:artist: Rammstein
xesam:autoRating: 44
xesam:contentCreated: 2017-08-23T10:17:44
xesam:genre: Industrial
xesam:lastUsed: 2017-03-10T12:29:10
xesam:title: Alter Mann
xesam:trackNumber: 9
xesam:url: file:///media/Daten2/Musik/alben/Rammstein - Sehnsucht/09 Rammstein - Alter Mann.flac
xesam:useCount: 5
xesam:userRating: 1
year: 1997
Nun muß ich nur noch schauen, wie ich den Output von "xesam:album: Sehnsucht" und "xesam:artist: Rammstein" - in eine Suche mit find übersetze - wie würde man das machen?
https://www.daswirdmanjawohlnochsagenduerfen.de
https://www.neoliberalyse.de - Über die Ökonomisierung aller Lebensbereiche. |

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Unkonventionelles Script schreiben - Audio und Video

Beitrag von scientific » 30.08.2017 15:42:18

Nach dem dbusaufruf mit einer Pipe das anhängen

Code: Alles auswählen

awk -F ":" '$1=="xesam" && $2 == "album" {print $3}'
Liefert dir den Albumtitel.

Ungetestet.
Zuletzt geändert von scientific am 30.08.2017 15:42:18, insgesamt 1-mal geändert.
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

debianoli
Beiträge: 4071
Registriert: 07.11.2007 13:58:49
Lizenz eigener Beiträge: MIT Lizenz

Re: Unkonventionelles Script schreiben - Audio und Video

Beitrag von debianoli » 30.08.2017 15:46:34

Vielleicht hilft dir das weiter:

Code: Alles auswählen

qdbus org.mpris.clementine /Player org.freedesktop.MediaPlayer.GetMetadata | head -n2
album: Nosebleed Weekend
artist: The Coathangers

Benutzeravatar
desputin
Beiträge: 1297
Registriert: 24.04.2015 17:16:34

Re: Unkonventionelles Script schreiben - Audio und Video

Beitrag von desputin » 30.08.2017 16:13:44

@Scientific: danke. Ich glaube, es funktioniert noch nicht ganz korrekt:

Code: Alles auswählen

desputin@desputin:~$ qdbus org.mpris.MediaPlayer2.clementine /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player Metadata | awk -F ":" '$1=="xesam" && $2 == "album* {print $3}'
awk: Kommandozeile:1: $1=="xesam" && $2 == "album* {print $3}
awk: Kommandozeile:1:                      ^ Nicht beendete Zeichenkette
awk: Kommandozeile:1: $1=="xesam" && $2 == "album* {print $3}
awk: Kommandozeile:1:                      ^ syntax error
https://www.daswirdmanjawohlnochsagenduerfen.de
https://www.neoliberalyse.de - Über die Ökonomisierung aller Lebensbereiche. |

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Unkonventionelles Script schreiben - Audio und Video

Beitrag von scientific » 30.08.2017 16:17:56

Stimmt. Habs grad ausgebessert.
War ein * nach album. Dort gehört ein " hin.
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
desputin
Beiträge: 1297
Registriert: 24.04.2015 17:16:34

Re: Unkonventionelles Script schreiben - Audio und Video

Beitrag von desputin » 31.08.2017 16:39:33

Hallo Scientific,
super danke:

Code: Alles auswählen

qdbus org.mpris.MediaPlayer2.clementine /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player Metadata | awk -F ":" '$1=="xesam" && $2 == "album" {print $3}'
 Californication
Das Album spuckt der Befehl schon mal aus. Wie würde man den Befehl formulieren, um auch noch den Interpreten zu bekommen?
https://www.daswirdmanjawohlnochsagenduerfen.de
https://www.neoliberalyse.de - Über die Ökonomisierung aller Lebensbereiche. |

Benutzeravatar
desputin
Beiträge: 1297
Registriert: 24.04.2015 17:16:34

Re: Unkonventionelles Script schreiben - Audio und Video

Beitrag von desputin » 03.09.2017 14:18:44

Hallo Ihr, danke noch mal für Eure Hilfe.
Nun bleibt eine Frage:

Wie kann ich das Suchergebnis, also Interpret und das längste Wort des Titels übertragen in einen find-Befehl mit anschließendem Abspielen des ersten Suchergebnisses?
https://www.daswirdmanjawohlnochsagenduerfen.de
https://www.neoliberalyse.de - Über die Ökonomisierung aller Lebensbereiche. |

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Unkonventionelles Script schreiben - Audio und Video

Beitrag von scientific » 05.09.2017 01:28:28

Das ist allerdings noch ohne die Abfrage auf das Längste Wort im Albumnamen

Code: Alles auswählen

find ~/Musik $(HIER_MUSS_DER_qdbus_AUFRUFHIN | awk -F ":" 'BEGIN{ORS="\n"}$1=="xesam" && $2 == "album" {md[1]=$3} \
$1=="xesam" && $2 == "artist" {md[2]=$3} END{print " -iname *"md[1]"* -iname *"md[2]"*"}')
Hier kannst du dir noch Anregungen holen, wie du auf das längste Wort kommst:

https://stackoverflow.com/questions/896 ... -text-file

Und ich habs für den Albumtitel noch ausprobiert:

Code: Alles auswählen

find ~/Musik $(HIER_MUSS_DER_qdbus_AUFRUFHIN | \
awk -F ":" 'BEGIN{ORS="\n"}\
$1=="xesam" && $2 == "album" {md[1]=$3} \
$1=="xesam" && $2 == "artist" {md[2]=$3} \
END{print md[1];print md[2]}'  | \
awk 'BEGIN{maxlenght=0;maxword=0} \
NR==1 {for (i=1;i<=NF;i++) if (length($i)>maxlength){maxlength=length($i);md[1]=$i;}} \
NR==2 {md[2]=$0} \
END{print " -iname *"md[1]"* -iname *"md[2]"*"}')
Das spuckt mir alle Titel meiner Musikdatenbank aus, die im Dateinamen den Artist und den längsten Namen des Albums haben.
Mit

Code: Alles auswählen

head -n1
kannst du dann noch die erste Zeile auswählen und mit xargs an einen Medienplayer-Befehl weitergeben.

Vielleicht wirst du fündig.

Möglicherweise wäre ja auch qdbus auch geeignet, das Videofile an das Videoprogramm zu übergeben...

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
desputin
Beiträge: 1297
Registriert: 24.04.2015 17:16:34

Re: Unkonventionelles Script schreiben - Audio und Video

Beitrag von desputin » 05.09.2017 23:28:09

Hallo Scientific, danke!

beim Ersten Befehl von Dir kommt bei mir noch eine Fehlermeldung:

Code: Alles auswählen

find: Der Pfad muss vor dem Ausdruck stehen: 09 - VA - A Distant Invitation.flac
Try 'find --help' for more information.
und beim 2. langen Befehl:

Code: Alles auswählen

bash: HIER_MUSS_DER_qdbus_AUFRUFHIN: Kommando nicht gefunden.
find: Der Pfad muss vor dem Ausdruck stehen: 09 - VA - A Distant Invitation.flac
Try 'find --help' for more information.
oder mach ich was falsch?
https://www.daswirdmanjawohlnochsagenduerfen.de
https://www.neoliberalyse.de - Über die Ökonomisierung aller Lebensbereiche. |

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Unkonventionelles Script schreiben - Audio und Video

Beitrag von scientific » 05.09.2017 23:52:03

Schreib mal deinen gesamten Befehl hier auf.

Seh gerade, du hast deinen Befehl nicht eingesetzt...

Code: Alles auswählen

find ~/Musik $(qdbus org.mpris.MediaPlayer2.clementine /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player Metadata | \
awk -F ":" 'BEGIN{ORS="\n"}\
$1=="xesam" && $2 == "album" {md[1]=$3} \
$1=="xesam" && $2 == "artist" {md[2]=$3} \
END{print md[1];print md[2]}'  | \
awk 'BEGIN{maxlenght=0;maxword=0} \
NR==1 {for (i=1;i<=NF;i++) if (length($i)>maxlength){maxlength=length($i);md[1]=$i;}} \
NR==2 {md[2]=$0} \
END{print " -iname *"md[1]"* -iname *"md[2]"*"}')

So ists eingesetzt. Probier den mal.

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
desputin
Beiträge: 1297
Registriert: 24.04.2015 17:16:34

Re: Unkonventionelles Script schreiben - Audio und Video

Beitrag von desputin » 06.09.2017 08:38:22

Hallo Scientific,

ich habe da leider die selbe Fehlermeldung bekommen mit dem Abschnitt eingesetzt:

Code: Alles auswählen

> END{print " -iname *"md[1]"* -iname *"md[2]"*"}')
find: Der Pfad muss vor dem Ausdruck stehen: 09 - VA - A Distant Invitation.flac
Try 'find --help' for more information.
https://www.daswirdmanjawohlnochsagenduerfen.de
https://www.neoliberalyse.de - Über die Ökonomisierung aller Lebensbereiche. |

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Unkonventionelles Script schreiben - Audio und Video

Beitrag von scientific » 06.09.2017 09:06:26

Ah... Ja, das liegt an den Leerzeichen im Albumtitel...

Das kann ich mir aber erst heut abend genauer ansehen.
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Unkonventionelles Script schreiben - Audio und Video

Beitrag von scientific » 06.09.2017 18:31:24

Funktionierts damit?

Code: Alles auswählen

find ~/Musik $(qdbus org.mpris.MediaPlayer2.clementine /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player Metadata | \
awk -F ":" 'BEGIN{ORS="\n"}\
$1=="xesam" && $2 == "album" {md[1]=$3} \
$1=="xesam" && $2 == "artist" {md[2]=$3} \
END{print md[1];print md[2]}'  | \
awk 'BEGIN{maxlenght=0;maxword=0} \
NR==1 {for (i=1;i<=NF;i++) if (length($i)>maxlength){maxlength=length($i);md[1]=$i;}} \
NR==2 {for (i=1;i<=NF;i++) if (length($i)>maxlength){maxlength=length($i);md[2]=$i;}} \
END{print " -iname *"md[1]"* -iname *"md[2]"*"}')
Ich lasse auch den Künstlernamen nach dem längsten Wort filtern und setze das dann in die Suche ein.

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
desputin
Beiträge: 1297
Registriert: 24.04.2015 17:16:34

Re: Unkonventionelles Script schreiben - Audio und Video

Beitrag von desputin » 06.09.2017 23:30:30

Hm, also bei "Rammstein" Lied "Amour" geht es nicht:

Code: Alles auswählen

find: ‘/home/desputin/Musik’: Datei oder Verzeichnis nicht gefunden
Bei "R.E.M." - "Losing my religion" das selbe...
https://www.daswirdmanjawohlnochsagenduerfen.de
https://www.neoliberalyse.de - Über die Ökonomisierung aller Lebensbereiche. |

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Unkonventionelles Script schreiben - Audio und Video

Beitrag von scientific » 06.09.2017 23:40:04

Poste bitte die Ausgabe von

Code: Alles auswählen

qdbus org.mpris.MediaPlayer2.clementine /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player Metadata | \
awk -F ":" 'BEGIN{ORS="\n"}\
$1=="xesam" && $2 == "album" {md[1]=$3} \
$1=="xesam" && $2 == "artist" {md[2]=$3} \
END{print md[1];print md[2]}'  | \
awk 'BEGIN{maxlenght=0;maxword=0} \
NR==1 {for (i=1;i<=NF;i++) if (length($i)>maxlength){maxlength=length($i);md[1]=$i;}} \
NR==2 {for (i=1;i<=NF;i++) if (length($i)>maxlength){maxlength=length($i);md[2]=$i;}} \
END{print " -iname *"md[1]"* -iname *"md[2]"*"}'
für einige der fraglichen Musikstücke.

Du siehst, es ist gar nicht so einfach, einen so einfachen Gedanken "Suche mir alle Videos die den Künstlernamen und das längste Wort des Albumtitels im Namen haben" so zu übersetzen, dass die auch das gewünschte Ergebnis bringt...

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Unkonventionelles Script schreiben - Audio und Video

Beitrag von scientific » 06.09.2017 23:43:25

Möglicherweise wäre es wirklich einfacher, die Musikstücke mit einem zusätzlichen Tag mit einem passenden Video zu versehen.
Oder du arbeitest über eine Datenbank, wo du Musikstück und Video zusammenbindest, welche du dann mit der Ausgabe von Clementine abfragen kannst.
Aber solche Datenbanken oder Tags muss man halt auch pflegen.

Noch eine Frage, die Dateinamen der Videos enthalten Unterstriche statt Leerzeichen?

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
desputin
Beiträge: 1297
Registriert: 24.04.2015 17:16:34

Re: Unkonventionelles Script schreiben - Audio und Video

Beitrag von desputin » 07.09.2017 22:33:19

Ja, das stimmt. Würde halt mehrere Stunden dauern, das alles zu taggen. Oder Tage - je nachdem. Die meisten meiner Musikvideos haben Leerzeichen, aber mit Krename könnte ich die alle in Unterstriche umwandeln, wenn das hilft...
https://www.daswirdmanjawohlnochsagenduerfen.de
https://www.neoliberalyse.de - Über die Ökonomisierung aller Lebensbereiche. |

Antworten