dotfiles/.config/waybar/scripts/lyrics_module.sh_back
2025-06-24 20:14:07 +02:00

39 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
# Configuración: Reemplaza 'TU_API_KEY' con tu clave de API de Musixmatch
API_KEY="9f48b41952ed1a7808f0069395f6ed60"
# Obtener artista y título
artist=$(playerctl metadata artist 2>/dev/null)
title=$(playerctl metadata title 2>/dev/null)
# Verificar si los valores se obtuvieron correctamente
if [[ -z "$artist" || -z "$title" ]]; then
jq -c -n --arg text "" '{"text":$text}'
exit 0
fi
# Codificar los valores para la URL
artist_url=$(echo "$artist" | jq -s -R -r @uri)
title_url=$(echo "$title" | jq -s -R -r @uri)
# Obtener las letras usando la API de Musixmatch
response=$(curl -s "https://api.musixmatch.com/ws/1.1/matcher.lyrics.get?q_track=$title_url&q_artist=$artist_url&apikey=$API_KEY")
# Extraer las letras del JSON de respuesta
lyrics=$(echo "$response" | jq -r '.message.body.lyrics.lyrics_body')
# Manejar errores y limpiar las letras
if [[ "$lyrics" == "null" || -z "$lyrics" ]]; then
lyrics="Letras no encontradas."
else
# Eliminar retornos de carro y líneas vacías
lyrics=$(echo "$lyrics" | tr -d '\r' | sed '/^[[:space:]]*$/d')
# Eliminar la línea de uso comercial de Musixmatch
lyrics=$(echo "$lyrics" | sed '/This Lyrics is NOT for Commercial use/d')
fi
# Generar JSON compacto y seguro
jq -c -n --arg text "🎵" --arg tooltip "$lyrics" '{"text":$text,"tooltip":$tooltip}'