How to use the command playerctl (with examples)
- Linux
- December 25, 2023
Playerctl is a command-line utility that allows users to control media players via MPRIS (Media Player Remote Interfacing Specification). This utility provides a convenient way to interact with media players running on Linux systems. Whether you want to toggle play, skip to the next track, go back to the previous track, or fetch metadata about the current track, playerctl simplifies the process.
Use case 1: Toggle play
Code:
playerctl play-pause
Motivation:
Sometimes we may need to quickly pause or resume playback without having to switch to the media player’s interface. Using playerctl play-pause
, we can easily toggle play for the currently active media player.
Explanation:
playerctl
: The command-line utility.play-pause
: The action to toggle play.
Example output:
Playback status changed: Playing
Use case 2: Skip to the next track
Code:
playerctl next
Motivation:
When listening to a playlist or an album, it can be convenient to skip to the next track without manually interacting with the media player’s interface. The playerctl next
command allows us to achieve this effortlessly.
Explanation:
next
: The action to skip to the next track.
Example output:
Playback status changed: Playing
Use case 3: Go back to the previous track
Code:
playerctl previous
Motivation:
In the scenario where we want to revisit a recently played track, using playerctl previous
enables us to effortlessly go back to the previous track in the media player without the need to navigate the player’s interface manually.
Explanation:
previous
: The action to go back to the previous track.
Example output:
Playback status changed: Playing
Use case 4: List all players
Code:
playerctl --list-all
Motivation:
When using multiple media players simultaneously, it can be helpful to know the available players to interact with. The playerctl --list-all
command provides a list of all the media players that are compatible with the MPRIS specification.
Explanation:
--list-all
: The argument to list all players.
Example output:
org.gnome.Rhythmbox3
com.spotify.Client
Use case 5: Send a command to a specific player
Code:
playerctl --player player_name play-pause|next|previous|...
Motivation:
When there are multiple media players running, directly targeting a specific player allows us to control it without affecting other players. By specifying the player name as an argument in the playerctl --player
command, we can send various actions to that particular player.
Explanation:
--player player_name
: Specifies the target media player using its name.play-pause|next|previous|...
: The action to perform on the specified player.
Example output:
Playback status changed: Playing
Use case 6: Send a command to all players
Code:
playerctl --all-players play-pause|next|previous|...
Motivation:
Sometimes, we want to control all available media players simultaneously. In such cases, using playerctl --all-players
allows us to broadcast a command to all running media players, ensuring consistency across multiple applications.
Explanation:
--all-players
: Indicates that the command should be applied to all players.play-pause|next|previous|...
: The action to perform on all players.
Example output:
Playback status changed: Playing
Use case 7: Display metadata about the current track
Code:
playerctl metadata --format "Now playing: {{artist}} - {{album}} - {{title}}"
Motivation:
To quickly retrieve information about the currently playing track, we can use the playerctl metadata
command along with a format string. This is useful when we need to know the artist, album, and title of the track without navigating the media player’s interface.
Explanation:
metadata
: The argument to fetch metadata about the current track.--format "Now playing: {{artist}} - {{album}} - {{title}}"
: Specifies the format string to display the desired metadata fields.
Example output:
Now playing: John Mayer - Continuum - Gravity
Conclusion:
Playerctl is a versatile command-line utility that simplifies media player control by providing a unified interface across different players. Whether it’s toggling play, skipping tracks, fetching metadata, or managing multiple players, playerctl offers a convenient way to interact with media players on Linux systems.