Commandez tous vos lecteurs audio facilement

Il y a quelques temps, j’ai créé une section code qui reste dramatiquement vide. Voici l’occasion de la remplir avec un petit script bash (pour linux donc) qui si vous êtes féru de musique et utilisez plusieurs lecteurs différents pourrait vous être utile.

Lorsque j’écoute de la musique, il se peut que ce soit une vidéo avec vlc ou bien que je recherche une musique en particulier avec Clementine ou bien que tout simplement je veux juste écouter de la musique et que j’utilise donc mpd.
Seulement quand je veux mettre en pause ou passer à la chanson suivante, il faut que je retrouve le player. Ça serait tellement mieux si je pouvais juste utiliser un raccourci global du clavier. Et c’est ce que fait ce script.

Principe

Lorsque vous faites tourner ce script, il va vérifier quel player parmi amarok, banshee, mpd, vlc, rhythmbox et clementine tourne pour l’instant et va faire l’action sur le premier dans l’ordre de priorité défini.
Il vous suffit d’associer un raccourci à la commande et le tour est joué.

Utilisation

Téléchargez et décompressez le script dans un dossier (dans l’exemple ~/Script), vérifiez qu’il aie bien les permissions d’exécution et configurez des raccourcis (avec Gnome, assez facile : Système>Préférences>Raccourcis clavier, pour les autres il existe XBindKeys par exemple) pour les commandes suivantes :

~/Script/media-players.sh play # lecture
~/Script/media-players.sh pause # pause
~/Script/media-players.sh toggle # met en pause si lecture et vice versa
~/Script/media-players.sh next # suivant
~/Script/media-players.sh previous # précédent
~/Script/media-players.sh stop # arrêt

Sur mon portable, j’ai des touches multimedia ce qui rend la chose bien pratique mais ça fonctionne évidement avec n’importe quel raccourci.

Petite remarque concernant VLC : comme ils ne possèdent pas de commande en terminal pour le contrôler, il faut activer l’interface web. Cela peut se faire soit en lançant VLC avec la commande $ vlc –extraintf http (n’oubliez pas de modifiez les lanceurs), soit (sans doute plus facile) en allant dans une instance de VLC à Extra>Configuration>Interface générale (en sélection « tout » en bas de la fenêtre) et cocher la case pour activer l’interface http.
Comme il est possible de lancer plusieurs instances de vlc en même temps, seul la première sera commandée via les raccourcis.

Priorités

Par défaut, les priorités pour les players sont :
1. vlc
2. amarok
3. banshee
4. rhythmbox
5. clementine
6. mpd

Cela veut dire que s’il détecte que vlc tourne, il ne va pas toucher au rhythmbox qui est peut être lancé en background.
J’ai décidé de ces priorités en fonction de mon utilisation mais il est assez facile de les changer.

Dans le code, pour chaque player, il y un bloc comme par exemple

# banshee
if [ $(pgrep banshee) ]
then
banshee-1 ${banshee}
exit 0
fi

Il vous suffit de couper-coller ces blocs pour les mettre dans l’ordre que vous voulez pour qu’ils soient testés dans cet ordre là.

Ajout d’un lecteur

Il est tout à fait possible d’ajouter un programme et je vous invite à m’en proposer si vous en connaissez d’autres.

Il faut simplement connaitre le moyen de le commander. Souvent les commandes sont de la forme $ monlecteur -command et facile à trouver en lisant le manuel.

Si vous avez déjà fait un peu de bash, il vous sera assez facile de comprendre le principe du script et d’ajouter vous même vos lecteurs.


Je vais encore travailler dessus pour ajouter par exemple la possibilité d’obtenir la chanson en cours de lecture ou détecter lequel est en cours de lecture si deux sont lancés. Si vous avez d’autres idées d’amélioration…

Vus : 1535
Publié par mart-e : 65