Mise à jour du 7 Nov 2021 : 

Bon alors oui, j'ai créé cet article il y a fort longtemps, poussé en ligne mais jamais expliqué. Comme c'est le premier, partons des bases. Commençons par l'outil Zenity. Comme il l'est mentionné sur le site Ubuntu, Zenity est un outil qui permet d'afficher des boîtes de dialogue GTK+ depuis la ligne de commandes ou au travers de scripts shell

Sous linux, les biliothèques GTK+ doivent être installées (je crois qu'elle le sont si votre linux n'est as uniquement en mode CLI.) Sur les autres OS, elles le sont me semble t il dans le package de Zenity. Si tel n'est pas mes cas, il suffit de les installer. Quoi qu'il en soit, site leur site , toutes la doc de l'installation de GTK+ sous Windows ou de l'installation de GTK+ sous Linux est présente, ainsi bien entendu de l'installation de GTK+ sur MacOS évidemment !

Mais je vous ai parlé de zenity car dela a été ma premiere piste de recherche, abordée, pour faire ce que je voulais. Je suis alors passé sous Yad qui m'a parru plus simple. Mais si je parle de Zenity, c'est pas pour rien : Yad est un fork de Zenity. Ses avantages par rapport à Zenity sont l'intégration de plusieurs contrôles sur une même fenêtre.

Comme vous pouvez le voir sur la ligne de commande faisant le travail, tout se tient en une ligne si vous ne voulez pas écrire de scripts.

Le principe a comprendre est que la commande prend en paramètre ce que je pourrais qualifier de champs. Et pour chaque champs, comme dans une base de données on va affiner leurs définitions. Tous les descriptifs des paramètres de la commande YAD se retrouvent sur le site de Yad. Alors démarrons le commentaire de la ligne. Personnellement, pour aboutir à ce type de commande, je vous conseille dans un premier temps de créer et tester votre ligne de commande pour quelle fonctionne, avec de vrais paramètres (alors oui je sais si c'est pour faire des delete, c'est compliqué....) Une fois que la ligne fonctionne, je m'attèle à Yad

  • yad : 

INPUT=$(yad --title="Grabber la radio" --form --field="URL:TXT" --field="Fichiersortie:TXT") && CHAMPS1=$(echo "$INPUT" |cut -d'|' -f1) && CHAMPS2=$(echo "$INPUT" |cut -d'|' -f2) && LIGNE=$(ffmpeg -i "$CHAMPS1" -af silenceremove=stopperiods=-1:stopduration=1:stopthreshold=-30dB "$CHAMPS2")

 

Radiograbber

Alors quid de la ligne ? 

  • --title="Grabber la radio" : cette commande permet simplement d'affecter un titre à votre fenêtre
  • --form : cette commande permet d'afficher un formulaire. Attention à la version de votre yad, cette commande n'étant disponible qu'à partir de la version 3.2.0
  • --field : cette commande permet d'afficher ded éfinir les champs affichés avec le type de données (et le formatage qui en découle) que le formulaire doir afficher

Voila pour la partie YAD. Le reste de la commande est du shell pur est dur, ce n'est donc pas des paramètres de l'outil :

  • cut : permet d'extraire d'une ligne des données. le paramètre -d spécifie entre simples cotes le caractère délimiteur, -f1 spécifie de sélectionner le premier ("1") champs
  • LIGNE : c'est une variable texte qui contiendra le contenu de la chaine de caratères à lancer sur le shell.

Vous retrouverez les commandes sur leur site