X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=data%2Fscripts%2Fmpris;fp=data%2Fscripts%2Fmpris;h=28c9fe6f588510ecc9a2f375d64a14f9d050df45;hp=0000000000000000000000000000000000000000;hb=3cd8d904bf10104efdf0fef26869d26cb4f30ec7;hpb=9f625639006ff07e8f75277e549dc4c204664e3e diff --git a/data/scripts/mpris b/data/scripts/mpris new file mode 100755 index 00000000..28c9fe6f --- /dev/null +++ b/data/scripts/mpris @@ -0,0 +1,47 @@ +#!/usr/bin/env perl +# Copyright 2009 Sebastian Goth seezer@roath.org +# +# Simple script to read metadata from mpris compatible mediaplayers via dbus. +# +# Run it like this: +# mpris amarok +# +# The script fills all fields exported by the player's dbusinterface. +# They are defined here: http://wiki.xmms2.xmms.se/wiki/MPRIS_Metadata +# +# To see which fields are actually available from your player, +# call something like this from a terminal: +# +# qdbus org.mpris.amarok /Player GetMetadata +# or +# qdbus org.mpris.vlc /Player GetMetadata +# etc. +# +# Every field is available in the data hash 'd' via +# $d{"NAME_OF_FIELD"} +# To edit the output just change the marked line accordingly. + +use strict; +my %d; + +if($#ARGV < 0) { + print STDERR "Usage: $0 playername\n"; + exit 1; +} + +die "Please don't use any special characters in playername." if($ARGV[0] =~ /[^\w\d_-]/); + +open(IN,"qdbus org.mpris.".$ARGV[0]." /Player GetMetadata|") or die "Couldn't get dbus result."; +while() { + $d{$1} = $2 if(/^([^:]+):\s+([^\n]+)/); +} +close IN; + +if(keys(%d)) { + +## change the following line to fit your needs ## +print "I'm listening to ".$d{"title"}." by ".$d{"artist"}; +################################################# + +print "\n"; +}