1PLAYERCTL(1)              BSD General Commands Manual             PLAYERCTL(1)
2

NAME

4     playerctl — control media players via MPRIS
5

SYNOPSIS

7     playerctl [-aFhlV] [-f FORMAT] [-i NAME] [-p NAME] command
8

DESCRIPTION

10     The playerctl utility controls MPRIS-enabled media players.  In addition
11     to offering play, pause and stop control, playerctl also offers previous
12     and next track support, the ability to seek backwards and forwards in a
13     track, and volume control.  playerctl also supports displaying metadata
14     (e.g., artist, title, album) for the current track, and showing the sta‐
15     tus of the player.
16
17     Players that can be controlled using playerctl include audacious(1),
18     cmus(1), mopidy(1), mpd(1), quodlibet(1), rhythmbox(1), vlc(1) and
19     xmms2(1).  However, any player that implements the MPRIS interface speci‐
20     fication can be controlled using playerctl including web browsers.
21
22     Playerctl also comes with a daemon called playerctld which keeps track of
23     media player activity. When playerctld is running, playerctl commands
24     will act on the media player with the most recent activity.  Run the com‐
25     mand playerctld daemon to start the daemon.
26
27     The options are as follows:
28
29     -a, --all-players
30             Apply command to all available players.
31
32     -F, --follow
33             Block and output the updated query when it changes.
34
35     -f FORMAT, --format FORMAT
36             Set the output of the current command to FORMAT.  See Format
37             Strings.
38
39     -h, --help
40             Print this help, then exit.
41
42     -i NAME, --ignore-player NAME
43             Ignore the specific player NAME.  Multiple players can be speci‐
44             fied in a comma-separated list.
45
46     -l, --list-all
47             List the names of running players that can be controlled.
48
49     -p NAME, --player NAME
50             Control the specific player NAME.  Multiple players can be speci‐
51             fied in a comma-separated list.  Defaults to the first available
52             player.  The name "name" matches both "name" and "name.{IN‐
53             STANCE}".  Additionally, the name "%any" matches any player.
54
55     -s, --no-messages
56             Silence some diagnostic and error messages.
57
58     -V, --version
59             Print version number, then exit.
60
61     The commands are as follows:
62
63     status  Get the current status of the player.
64
65     play    Command the player to play.
66
67     pause   Command the player to pause.
68
69     play-pause
70             Command the player to toggle between play and pause.
71
72     stop    Command the player to stop.
73
74     next    Command the player to skip to the next track.
75
76     previous
77             Command the player to skip to the previous track.
78
79     position [OFFSET[+|-]]
80             Print the position of the current track in seconds.  With OFFSET
81             specified, seek to OFFSET seconds from the start of the current
82             track.  With the optional [+|-] appended, seek forward or back‐
83             ward OFFSET seconds from the current position.
84
85     volume [LEVEL[+|-]]
86             Print the player's volume scaled from 0.0 (0%) to 1.0 (100%).
87             With LEVEL specified, set the player's volume to LEVEL.  With the
88             optional [+|-] appended, increase or decrease the player's volume
89             by LEVEL.
90
91     metadata [KEY]
92             Print all metadata properties for the current track set by the
93             current player.  If KEY is specified only the value of KEY is
94             printed.
95
96     open URI
97             Open URI in the player.  URI may be the name of a file or an ex‐
98             ternal URL.
99
100     shuffle [On | Off | Toggle]
101             Print the shuffle status of the player.  With the shuffle status
102             specified, set the shuffle status to either On , Off , or Toggle
103
104     loop [None | Track | Playlist]
105             Print the loop status of the player.  With the loop status speci‐
106             fied, set the loop status to None (disable looping), Track (loop
107             the current track), or Playlist (loop the current playlist).
108
109   Format Strings
110     The output of the position, metadata, status and volume commands can be
111     controlled using a format string.  Variables set by these commands can be
112     included in the format string by enclosing them in curly braces:
113     ‘{{var}}’.  These will then be expanded on output.
114
115     Each command has access to the following variables:
116
117     playerName
118             The name of the current player.
119
120     position
121             The time position of the current track, in microseconds.
122
123     status  The status of the current player.
124
125     volume  The player's volume scaled from 0.0 (0%) to 1.0 (100%).
126
127     Each property listed in the metadata command are also set as variables.
128     It is recommended to check this list for each player, as different play‐
129     ers may not set the same properties.  See the MPRIS v2 metadata
130     guidelines for a list of all properties in the MPRIS specification.  The
131     most common properties are as follows:
132
133     album, xesam:album
134             The album of the current track.
135
136     artist, xesam:artist
137             The artist of the current track.
138
139     title, xesam:title
140             The title of the current track.
141
142     Helper functions are also available to transform expanded variables into
143     other representations.  They are called in the form ‘{{func(var)}}’.  The
144     helper functions are as follows:
145
146     lc(str)
147             Convert string str to lowercase.
148
149     uc(str)
150             Convert string str to uppercase.
151
152     markup_escape(str)
153             Escape XML characters in string str.
154
155     default(str1, str2)
156             Print str1 if set, else print str2.
157
158     duration(time)
159             Reformat the microsecond timestamp time in the form ‘hh:mm:ss’.
160             Can only be called with position or mpris:length.
161
162     emoji(key)
163             Try to convert the value for key to an emoji representation. Cur‐
164             rently implemented for status and volume.
165
166     The template language is also able to perform basic math operations.
167
168     References to unknown functions will cause playerctl to exit with an er‐
169     ror.  References to unknown variables will be expanded to empty strings.
170     Text not enclosed in braces will be printed verbatim.
171

EXIT STATUS

173     The playerctl utility exits 0 on success, and >0 if an error occurs.
174

EXAMPLES

176     Print the player name, playback status in lowercase, and position and
177     length in human readable form:
178
179           $ playerctl metadata --format '{{playerName}}: {{lc(status)}} '\
180           '{{duration(position)}}|{{duration(mpris:length)}}'
181

SEE ALSO

183     MPRIS v2 metadata guidelines, freedesktop.org,
184     https://freedesktop.org/wiki/Specifications/mpris-spec/metadata/,
185     September 18, 2013.
186
187     playerctl homepage: https://github.com/altdesktop/playerctl, playerctl
188     API documentation: https://dubstepdish.com/playerctl, GObject
189     introspection language bindings:
190     https://wiki.gnome.org/Projects/GObjectIntrospection/Users
191

AUTHORS

193     The playerctl utility is maintained by Tony Crisci <tony@dubstepdish.com>
194     and is made available under the GNU Lesser General Public License 3.0.
195
196     This reference was written by Nick Morrott <knowledgejunkie@gmail.com>
197     for the Debian GNU/Linux project.  It was later updated and expanded by
198     Stephen Gregoratto <dev@sgregoratto.me>.
199
200BSD                            November 30, 2020                           BSD
Impressum