Skip to content
Advertisement

Linux: MPC current song output

I try to make custom output on my internet Radio. (mpd/mpc)

getInfo.py:

#!/bin/bash
opt=$@
mpc $opt &> /dev/null

station="`mpc --format "[%name%]" | head -n 1`"
title="`mpc --format "[%title%]" | head -n 1`"
vol="`mpc | head -n 2 | tail -n 1 | awk {'print $4'}`"

echo $station
echo $title
echo "Volume: "${vol//[()_]/}

And save output witch wach -n getInfo.py > radio.log

Output format is here:

Amazing Smooth and Jazz
Koop - Koop Island Blues
Volume: 100%

So i need each time when output changes show output on shell. How to do that?

Advertisement

Answer

To get you started:

#!/usr/bin/python3
from subprocess import Popen, PIPE

last_output = ""
while(1):
    proc = Popen(["mpc"], stdout=PIPE)
    output, retval = proc.communicate()
    if not output == last_output:
        print(output.decode('ascii'))
    last_output = output

I will leave fine-tuning the output to you.

User contributions licensed under: CC BY-SA
8 People found this is helpful
Advertisement