Afficher le titre Spotify en cours de lecture dans OBS (linux)
Rares sont les applications de streaming musical qui s’intègrent simplement à OBS (Foobar for the win) Et pourtant, c’est toujours pratique de pouvoir récupérer la musique que notre streamer préféré (ou pas) est en train de passer.
Nous allons voir comment intégrer le titre de la chanson en cours de lecture depuis l’application Spotify, directement dans OBS.
L’astuce réside intégralement sur le fait que spotify affiche le titre de la musique dans son titre de fenêtre.
Nous allons donc procéder ainsi :
- Récupérer le titre de la musique via le titre de la fenêtre de Spotify
- Écrire ce titre dans un fichier.
- Dire à OBS d’afficher le contenu de ce fichier. C’est tout !
Installation
La première étape consiste à installer wmctrl
et xdotool
, c’est grâce à ces deux commandes qu’on pourra récupérer le titre depuis la CLI.
sudo apt install wmctrl xdotool
En fonction de votre distribution vous devriez déjà disposer de pgrep
, head
, grep
et awk
vous n’avez donc rien d’autres à installer.
Création du script
Je vous mâche le boulot, j’ai déjà fait le script
#!/bin/bash
snap run spotify& # On lance spotify
getSong() {
pid=$(pgrep -f "/snap/spotify/.+/usr/share/spotify/spotify$") # On récupère le PID (processus ID) de spotify
if [ -z "$pid" ] # Pas de PID ? Pas de musiké !
then
echo "No song playing"
echo "" > $1 # On vide le fichier de destination pour éviter d'afficher une information erronée
else
windowId=$(wmctrl -lp | grep $pid | awk '{print $1}') # On récupère l'ID de la fenêtre
songName=$(xdotool getwindowname $windowId) # Puis on récupère le titre de la fenêtre grâce à son ID
fi
}
while (true)
do
getSong
echo $songName > $1 # On écrit le résultat dans le fichier de destination, toutes les 10 secondes.
sleep 10 # Le script réactualisera le titre en cours toutes les 10 secondes
done
Vous noterez plusieurs informations importantes :
- On utilise la commande
snap run spotify&
dès le début, ce qui veut dire qu’on lance Spotify (via snap) et qu’ensuite le script fait son boulot. Je l’ai intégré au script car si vous lancez votre spotify “normalement” vous oublierez la plupart du temps de lancer le script. En utilisant ce script, vous n’avez qu’a changé votre raccourci Spotify et le faire pointer vers celui-ci. - Le script s’actualise toutes les 10 secondes
sleep 10
, à vous de modifier cette valeur à votre guise. $1
est utilisé dans le script, ce qui veut dire qu’il y a un argument à passer au script : Le chemin de destination du fichier !, il vous faudra exécuter le script de cette façonsh nom_script.sh /home/btor/songname.txt
Intégration à OBS
Rendez-vous ensuite sur OBS et dans votre scène, ajouter une source texte et sélectionner votre fichier généré par le script :
Et voilà
CTO le jour, codeur la nuit, je partage mon quotidien de tech et d'autres trucs qui me passionnent.