Next revision | Previous revision |
linux:ubuntu:alexamusictitleonwebsite [2019/10/05 13:41] – created lunetikk | linux:ubuntu:alexamusictitleonwebsite [2021/12/29 00:15] (current) – lunetikk |
---|
====== Display playing music title on website ====== | ====== Display playing music title on website ====== |
| |
I wrote my own script based on [[linux:ubuntu:alexaremotecontrol|Alexa Remote Control]] to diplay the current music title played by my Echo device on my website | I wrote my own script based on [[linux:ubuntu:alexaremotecontrol|Alexa Remote Control]] to display the current music title played by my Echo device on my website. Check my updated version [[linux:ubuntu:alexamusictodatabase|here]] |
| |
{{:linux:ubuntu:pasted:20191005-132910.png}} | {{:linux:ubuntu:pasted:20191005-132910.png}} |
| |
| **Update 2021-12-29:** Amazon redesigned the output via alexa.amazon.de, the string for "album" is now always empty, so can only get the state, artist and title at the moment. If you use Spotify you might want to check out my Spotify script. I also thought about a way to get an album via artist and track out of a musicdatabase (like musicbrainz) but I dont know yet if this will work. |
| |
===== Script ===== | ===== Script ===== |
| |
The script will create a php file, add this as iframe whereever you want your music to be shown | The script will create a php file, add this as iframe whereever you want your music to be shown |
| <code html websnipped.php> |
| <iframe id="frame1" src="audio.php" width="650" height="100"></iframe> |
| </code> |
| |
==== Bashscript ==== | ==== Bashscript ==== |
The script will execute the the "Alexa Remote Control" with "-q / query queue" to get the current tracks, then cuts out the playing song with all its info and albumcover to pipe it into the php file. | The script will execute the the "Alexa Remote Control" with "-q / query queue" to get the current tracks, then cuts out the playing song with all its info and albumcover to pipe it into the php file. |
| |
<code shellscript copyTracks.sh> | <code bash copyTracks.sh> |
#!/bin/bash | #!/bin/bash |
/alexa/alexa-remote-control/alexa_remote_control.sh -q > /tmp/audio.txt | |
| |
TMPFILE=/tmp/audio.txt | TMPFILE=/tmp/audio.txt |
WEBFILE=/var/www/mysite/audio.php | WEBFILE=/var/www/mysite/audio.php |
| |
OFFLINE=`grep -m1 'message' $TMPFILE | cut -d '"' -f 3 | cut -d ' ' -f 2` | /alexa-remote-control/alexa_remote_control.sh -q > $TMPFILE |
| |
| #OFFLINE=`grep -m1 'message' $TMPFILE | cut -d '"' -f 3 | cut -d ' ' -f 2` |
| OFFLINE=`grep -m1 'message' $TMPFILE | awk 'BEGIN{FS=" "}{gsub(",",""); print $2}'` |
STATE=`grep -m1 'state' $TMPFILE | cut -d '"' -f 4` | STATE=`grep -m1 'state' $TMPFILE | cut -d '"' -f 4` |
| STATENULL=`grep -m1 'state' /tmp/audio.txt | awk 'BEGIN{FS=" "}{gsub(",",""); print $2}'` |
ARTIST=`grep -m1 'subText1' $TMPFILE | cut -d '"' -f 4` | ARTIST=`grep -m1 'subText1' $TMPFILE | cut -d '"' -f 4` |
TITLE=`grep -m1 'title' $TMPFILE | cut -d '"' -f 4` | TITLE=`grep -m1 'title' $TMPFILE | cut -d '"' -f 4` |
echo "" > $WEBFILE | echo "" > $WEBFILE |
| |
if [ "$OFFLINE" != "null" ]; then | if [ "$OFFLINE" != "null" ] && [ "$STATENULL" != "null" ]; then |
echo "<table style="width:100%"><tr><td>" >> $WEBFILE | echo "<table style='width:100%'><col style='width:90%'><col style='width:10%'><tr><td>" >> $WEBFILE |
echo "State: $STATE </br>" >> $WEBFILE | echo "State: $STATE </br>" >> $WEBFILE |
echo "Artist: $ARTIST </br>" >> $WEBFILE | echo "Artist: $ARTIST </br>" >> $WEBFILE |
echo "Iam not listening to music right now..." >> $WEBFILE | echo "Iam not listening to music right now..." >> $WEBFILE |
fi | fi |
| </code> |
| |
| ==== Automation ==== |
| |
| The bashscript can be automated via crontab (example runs every 2 minutes). |
| |
| <code> |
| */2 * * * * /alexa-remote-control/copyTrack.sh >/dev/null 2>&1 |
</code> | </code> |