#!/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}'