Radiotray-ng [Réglé]
Comment récupérer le nom des pistes
Logiciels / Musique MAO Synthèse vocale

DéBé Membre non connecté
-
- Voir le profil du membre DéBé
- Inscrit le : 30/01/2010
- Groupes :
Je fais quelques enregistrements de flux musicaux sur Radiotray-ng avec audacity.
Est-ce que quelqu'un saurait comment récupérer les noms de piste et l'interprète, pour les intégrer dans les métadonnées et/ou le nom du fichier sauvegardé ?
Édité par DéBé Le 04/12/2020 à 17h58
Finistère - Matériel : Desktop :Mga 9 x86-64 sur SSD 120 Go Plasma5 - Intel I5-6500 3,2 Ghz /Ram 8 Go --Lenovo T 410 Mga 9 x86-64 Plasma 5 Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire.” Albert Einstein

nic80 Membre non connecté
-
- Voir le profil du membre nic80
- Inscrit le : 06/08/2018
- Groupes :
-
Modérateur
Radiotray-ng accepte certaines options dans son fichier de configuration ( ~/.local/radiotray-ng/radiotray-ng.json)
On peut les trouver ici https://github.com/ebruck/radiotray-ng/blob/master/include/radiotray-ng/common.hpp (à la rubrique "config keys"); après le type de valeur attendue (boolean, int, etc...) n' est pas précisé.
On peut donc rajouter par exemple la valeur "debug-logging à la valeur "true", sous la forme suivante :
"debug-logging" :true
On n' oubliera pas de mettre des virgules là où c' est nécessaire (les options étant séparées par une virgule, la dernière ligne n' en ayant pas).
Il faut faire les modification de ce fichier, application fermée ( sinon les modifications seront écrasées).
On obtiens alors ce type de lignes:
Citation :
[2020-12-04 22:27:36.790706] [0x00007f45e5bb4a40] [debug] (notification.cpp:63) - notify: CINEMIX, Radiotray-NG, radiotray-ng-notification
[2020-12-04 22:27:39.317223] [0x00007f45e5bb4a40] [debug] (notification.cpp:63) - notify: Mystic River - Orchestral Variation #1 Of The Music From Mystic River, Clint Eastwood, radiotray-ng-notification
[2020-12-04 22:31:31.423112] [0x00007f45e5bb4a40] [debug] (notification.cpp:63) - notify: Doubt - Daybreak, Howard Shore, radiotray-ng-notification
[2020-12-04 22:33:15.227327] [0x00007f45e5bb4a40] [debug] (notification.cpp:63) - notify: Elle s'appelait Sarah - When She Went Away, Max Richter, radiotray-ng-notification
[2020-12-04 22:35:50.884658] [0x00007f45e5bb4a40] [debug] (notification.cpp:63) - notify: Winter's Tale - Becoming Stars, Hans Zimmer, Rupert Gregson-Williams, radiotray-ng-notification
[2020-12-04 22:41:24.013372] [0x00007f45e5bb4a40] [debug] (notification.cpp:63) - notify: Grantchester - Dickens, John Lunn, radiotray-ng-notification
[2020-12-04 22:27:39.317223] [0x00007f45e5bb4a40] [debug] (notification.cpp:63) - notify: Mystic River - Orchestral Variation #1 Of The Music From Mystic River, Clint Eastwood, radiotray-ng-notification
[2020-12-04 22:31:31.423112] [0x00007f45e5bb4a40] [debug] (notification.cpp:63) - notify: Doubt - Daybreak, Howard Shore, radiotray-ng-notification
[2020-12-04 22:33:15.227327] [0x00007f45e5bb4a40] [debug] (notification.cpp:63) - notify: Elle s'appelait Sarah - When She Went Away, Max Richter, radiotray-ng-notification
[2020-12-04 22:35:50.884658] [0x00007f45e5bb4a40] [debug] (notification.cpp:63) - notify: Winter's Tale - Becoming Stars, Hans Zimmer, Rupert Gregson-Williams, radiotray-ng-notification
[2020-12-04 22:41:24.013372] [0x00007f45e5bb4a40] [debug] (notification.cpp:63) - notify: Grantchester - Dickens, John Lunn, radiotray-ng-notification
edit: c' est le cas pour cette radio qui envoi les informations dans le flux directement, mais toutes les radios ne le font pas...
Édité par nic80 Le 04/12/2020 à 22h46

DéBé Membre non connecté
-
- Voir le profil du membre DéBé
- Inscrit le : 30/01/2010
- Groupes :
J'ai rajouté l'option dans le fichier radiotray-ng.json.
nic80 :
On obtiens alors ce type de lignes:
On obtient ces infos uniquement dans le fichier des logs(... /logs/radiotray-ng-xxxx.log ) , ou bien peut-on les récupérer ailleurs ?
Finistère - Matériel : Desktop :Mga 9 x86-64 sur SSD 120 Go Plasma5 - Intel I5-6500 3,2 Ghz /Ram 8 Go --Lenovo T 410 Mga 9 x86-64 Plasma 5 Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire.” Albert Einstein

nic80 Membre non connecté
-
- Voir le profil du membre nic80
- Inscrit le : 06/08/2018
- Groupes :
-
Modérateur
Visiblement uniquement dans le fichier de logs.

DéBé Membre non connecté
-
- Voir le profil du membre DéBé
- Inscrit le : 30/01/2010
- Groupes :
Je pense qu'il doit y avoir d'autres moyen via des commandes D-Bus , mais je n'y connais pas grand'chose. Je vais chercher un peu : il y a des pistes : https://yoannsculo.developpez.com/tutoriels/linux/introduction-dbus/
Finistère - Matériel : Desktop :Mga 9 x86-64 sur SSD 120 Go Plasma5 - Intel I5-6500 3,2 Ghz /Ram 8 Go --Lenovo T 410 Mga 9 x86-64 Plasma 5 Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire.” Albert Einstein

DéBé Membre non connecté
-
- Voir le profil du membre DéBé
- Inscrit le : 30/01/2010
- Groupes :
Code BASH :
C @localhost:~$ dbus-monitor signal time=1607180919.311456 sender=org.freedesktop.DBus -> destination=:1.101 serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired string ":1.101" signal time=1607180919.311516 sender=org.freedesktop.DBus -> destination=:1.101 serial=4 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameLost string ":1.101" method call time=1607180920.026367 sender=:1.75 -> destination=:1.27 serial=46 path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications; member=Notify string "radiotray-ng" uint32 12 string "radiotray-ng-notification" string "Lee Michael Demsey Show" string "WAMU Bluegrass Country"
Finistère - Matériel : Desktop :Mga 9 x86-64 sur SSD 120 Go Plasma5 - Intel I5-6500 3,2 Ghz /Ram 8 Go --Lenovo T 410 Mga 9 x86-64 Plasma 5 Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire.” Albert Einstein

funix Membre non connecté
-
- Voir le profil du membre funix
- Inscrit le : 17/12/2012
- Site internet
- Groupes :

DéBé Membre non connecté
-
- Voir le profil du membre DéBé
- Inscrit le : 30/01/2010
- Groupes :
Je vais regarder ça !
Bon dimanche
Finistère - Matériel : Desktop :Mga 9 x86-64 sur SSD 120 Go Plasma5 - Intel I5-6500 3,2 Ghz /Ram 8 Go --Lenovo T 410 Mga 9 x86-64 Plasma 5 Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire.” Albert Einstein

arte-naki Membre non connecté
-
- Voir le profil du membre arte-naki
- Inscrit le : 03/11/2020
https://www.aimp.ru/?do=download&os=windows (nouvelle interface version 4.7)
https://www.videohelp.com/download/aimp_3.60.1503.exe (version 3.6 2015, ancienne interface de style Winamp, recommandé)
Il coupe les fichiers par balises, enregistre les balises et prend en charge l'enregistrement sans transcodage (et avec transcodage).
Sur Linux, essayez Exaile avec le plugin streamripper (je n'ai pas encore testé) ou peut-être DeaDBeeF.
https://madb.mageia.org/package/show/name/exaile
https://github.com/exaile/exaile/tree/master/plugins/streamripper
https://madb.mageia.org/package/show/name/deadbeef
I know this is not quite the correct method. But listening and recording radio is convenient in the AIMP player under Wine.
version 4.7 new interface
version 3.6 2015, old Winamp-style interface, recommend
It cuts files by tags, records tags, and supports recording without transcoding (and with transcoding).
On Linux try Exaile with the streamripper plugin (I haven't tested yet) or maybe DeaDBeeF.

DéBé Membre non connecté
-
- Voir le profil du membre DéBé
- Inscrit le : 30/01/2010
- Groupes :
Ce que je cherchais à faire c'est plutôt automatiser les enregistrements venant des flux radio au niveau du nom des fichiers , donc récupérer ces informations dans les notifications et les intégrer dans les noms de fichiers enregistrés.
Mais ça me semble bien trop compliqué (du moins à mon niveau).
Finistère - Matériel : Desktop :Mga 9 x86-64 sur SSD 120 Go Plasma5 - Intel I5-6500 3,2 Ghz /Ram 8 Go --Lenovo T 410 Mga 9 x86-64 Plasma 5 Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire.” Albert Einstein

DéBé Membre non connecté
-
- Voir le profil du membre DéBé
- Inscrit le : 30/01/2010
- Groupes :
J'ai fait un script qui récupère la dernière ligne du fichier log que je lui indique (en l' occurence le plus récent)
Puis j' extrais les infos qui m'intéressent : Artiste, Interprète.
Code BASH :
#!/bin/bash cd /~/.config/radiotray-ng/logs # On récupère la dernière ligne dans un fichier tail -1 radiotray-ng-00020.log > dernièreligne.txt # on prend le texte après le 91e caractère et on l'envoie dans un nouveau fichier cut -c 91- dernièreligne.txt > derniermorceau.txt #en début de ligne, il nous reste 2 champs séparés par une virgule qu'on affiche à l'écran clear echo "Titre : " & cut -d , -f 1 derniermorceau.txt echo "Interprète : " & cut -d , -f 2 derniermorceau.txt
Ça donne ceci :
Code BASH :
Titre : Lucky In Love Interprète : Sherrie Austin
Bon c'est loin d'être parfait car il faudrait récupérer le plus récent fichier du répertoire /logs/ car le nom est incrémenté de 1 à chaque session.
J'ai essayé en ajoutant les lignes
Code BASH :
mais ça ne fonctionne pas, je ne maitrise pas bien la syntaxe sans doute.
dernierfichier= ls -Art | tail -n 1 tail -1 $dernierfichier > dernièreligne.txt
Édité par DéBé Le 08/12/2020 à 17h17
Finistère - Matériel : Desktop :Mga 9 x86-64 sur SSD 120 Go Plasma5 - Intel I5-6500 3,2 Ghz /Ram 8 Go --Lenovo T 410 Mga 9 x86-64 Plasma 5 Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire.” Albert Einstein

DéBé Membre non connecté
-
- Voir le profil du membre DéBé
- Inscrit le : 30/01/2010
- Groupes :
Code BASH :
#!/bin/bash #!/bin/bash cd /home/xxxxx/.config/radiotray-ng/logs # Nom du fichier log le plus récent dernierfichier=$(ls -Art | tail -n 1 ) # On récupère la dernière ligne dans un fichier tail -1 $dernierfichier > /home/xxxxx/RadioTrayNg/dernièreligne.txt # on prend le texte après le 91e caractère et on l'envoie dans un nouveau fichier cd /home/xxxxxx/RadioTrayNg cut -c 91- dernièreligne.txt > derniermorceau.txt #en début de ligne, il nous reste 2 champs séparés par une virgule qu'on affiche à l'écran #clear echo "Titre : " & cut -d , -f 1 derniermorceau.txt echo "Interprète : " & cut -d , -f 2 derniermorceau.txt
Résultat :
Code BASH :
Titre : Keb' Mo' Interprète : I'm So Lonesome I Could Cry
Édité par DéBé Le 08/12/2020 à 18h00
Finistère - Matériel : Desktop :Mga 9 x86-64 sur SSD 120 Go Plasma5 - Intel I5-6500 3,2 Ghz /Ram 8 Go --Lenovo T 410 Mga 9 x86-64 Plasma 5 Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire.” Albert Einstein

Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
Puis-je proposer des améliorations ?
Si tu ne le souhaites pas, ne déploie pas le texte ci dessous.
Caché :
La première chose a prendre en compte, serait l'utilisation de variable au lieu de fichier intermédiaire. Certes, ça marche, mais souhaites tu vraiment avoir des fichiers un peu partout, en fonction d'où tu as démarré le script ?
Ce n'est pas compliqué, les variables se définissent et redéfinissent de la même manière :
D'ailleurs, tu l'utilises avec :
tu peux en faire autant avec les lignes suivantes :
Il existe les variables d'environnement préexistantes, comme USER, tu peux éviter des erreurs et rendre le script portable d'un utilisateur à l'autre en t'affranchissant de xxxxx ou martine :
D'ailleurs, en utilisant des variables, nous n'avons plus d'autre occurrences de fichiers, donc de l'utilisateurs. Il est possible de remplacer /home/${USER} par ${HOME} directement.
Autre point, prendre une ligne au 91e caractère, je ne suis pas vraiment satisfait. Je ne peux malheureusement pas aider plus, mais il vaut mieux partir sur une expression régulière qu'un 91e caractère. D'ailleurs, 91, c'est ce qu'on nomme un magic number dans un script.
Donc voici une proposition (qui ne fonctionne pas à cause du 91e caractère que j'ai supprimé, mais sans vraiment le remplacer :
La première chose a prendre en compte, serait l'utilisation de variable au lieu de fichier intermédiaire. Certes, ça marche, mais souhaites tu vraiment avoir des fichiers un peu partout, en fonction d'où tu as démarré le script ?
Ce n'est pas compliqué, les variables se définissent et redéfinissent de la même manière :
Code BASH :
VARIABLE="contenu" VARIABLE="$(retour d'une commande)"
D'ailleurs, tu l'utilises avec :
Code BASH :
dernierfichier=$(ls -Art | tail -n 1 )
tu peux en faire autant avec les lignes suivantes :
Code BASH :
derniereligne="$(echo "${dernierfichier}" | tail -1)" derniermorceau=$(echo "${derniereligne}" | cut -c 91- )" TITRE="$(echo "${derniereligne}" | cut -d ',' -f 1 )" ARTIST="$(echo "${derniereligne}" | cut -d ',' -f 2 )" echo "Titre : ${TITRE}" echo "Interprète : ${ARTIST}"
Il existe les variables d'environnement préexistantes, comme USER, tu peux éviter des erreurs et rendre le script portable d'un utilisateur à l'autre en t'affranchissant de xxxxx ou martine :
Code BASH :
cd /home/${USER}/.config/radiotray-ng/logs
D'ailleurs, en utilisant des variables, nous n'avons plus d'autre occurrences de fichiers, donc de l'utilisateurs. Il est possible de remplacer /home/${USER} par ${HOME} directement.
Autre point, prendre une ligne au 91e caractère, je ne suis pas vraiment satisfait. Je ne peux malheureusement pas aider plus, mais il vaut mieux partir sur une expression régulière qu'un 91e caractère. D'ailleurs, 91, c'est ce qu'on nomme un magic number dans un script.
Donc voici une proposition (qui ne fonctionne pas à cause du 91e caractère que j'ai supprimé, mais sans vraiment le remplacer :
Code BASH :
#!/bin/bash cd /home/${USER}/.config/radiotray-ng/logs # Nom du fichier log le plus récent dernierfichier=$(ls -Art | tail -n 1 ) # On récupère la dernière ligne dans ---un fichier--- une variable derniereligne="$(echo "${dernierfichier}" | tail -1)" # on prend le texte après le ---91e caractère et on l'envoie dans un nouveau fichier--- motif "portion", autrement dit, on remplace ce qu'il y a tout ce qu'il y a avant et portion inclu par rien (du début ^, tout les caractères .* jusqu'à portion, on remplace par du vide entre les symbole ||) . derniermorceau="$(echo "${derniereligne}" | sed -e 's|^.*portion||' )" #en début de ligne, il nous reste 2 champs séparés par une virgule ---qu'on affiche à l'écran--- TITRE="$(echo "${derniereligne}" | cut -d ',' -f 1 )" ARTIST="$(echo "${derniereligne}" | cut -d ',' -f 2 )" echo -e "\n" # ajout d'une ligne vide echo "Titre : ${TITRE}" echo "Interprète : ${ARTIST}"
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
Arch | Machine | OS |
x86_64 | lenovo x250 | mga9 |
armv7hl | bananapro | mga9 |
aarch64 | Raspberry Pi 4B | mga9 |

DéBé Membre non connecté
-
- Voir le profil du membre DéBé
- Inscrit le : 30/01/2010
- Groupes :
jybz :
A vrai dire , je m'y attendais et je les souhaitais..... Puis-je proposer des améliorations ?

Je ne suis pas sûr que ça vaille des félicitations.....
Merci en tous cas, je vais tester.
Finistère - Matériel : Desktop :Mga 9 x86-64 sur SSD 120 Go Plasma5 - Intel I5-6500 3,2 Ghz /Ram 8 Go --Lenovo T 410 Mga 9 x86-64 Plasma 5 Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire.” Albert Einstein

DéBé Membre non connecté
-
- Voir le profil du membre DéBé
- Inscrit le : 30/01/2010
- Groupes :
Citation :
[2020-12-08 19:16:17.845710] [0x00007f8bbd482a40] [debug] (notification.cpp:63) - notify: Kerosene, Miranda Lambert, radiotray-ng-notification
Dans
Citation :
est-ce que je dois remplacer portion par le mot placé juste devant le titre du morceau, à savoir derniermorceau="$(echo "${derniereligne}" | sed -e 's|^.*portion||' )"
Citation :
notify:
?
Finistère - Matériel : Desktop :Mga 9 x86-64 sur SSD 120 Go Plasma5 - Intel I5-6500 3,2 Ghz /Ram 8 Go --Lenovo T 410 Mga 9 x86-64 Plasma 5 Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire.” Albert Einstein
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie