Currently playng media using DBus
Project description
DBus MediaPlayer
The dbus-mediaplayer
library empowers Python applications to interact with media players on your system through the D-Bus communication protocol. This enables you to retrieve metadata (like song titles and artists), control playback (play, pause, next, etc.), and potentially even access features specific to certain media players.
Key Features
- Media Player Discovery: Enumerate available media players on your system.
- Metadata Access: Retrieve current song information (title, artist, album, etc.).
- Playback Control: Play, pause, skip tracks.
- Real-time Updates: Utilizes callback functions to provide instant notifications of media player state changes, ensuring your application stays up-to-date.
Requirements
- Python 3.7 or later
dasdbus
library
Installation
Install the library using pip:
pip install dbus-mediaplayer
Usage
This library offers two primary usage approaches:
Command-Line Interaction (Optional)
If you prefer a quick way to view information or control playback, you can potentially execute the dbus-mediaplayer script directly. For more extensive programmatic control, I would recommend using the library within your Python code.
Programmatic Control
Import the DBusMediaPlayers class from your Python code:
from dbus_mediaplayer import DBusMediaPlayers
def callback(players):
# Handle the list of media player objects here
print(players)
# Create an instance of the class
media_player = DBusMediaPlayers(callback)
# Control media playback (replace "PlayPause" with desired methods like "Play", "Pause", "Next", etc.)
media_player.control_media("PlayPause")
# Keep the app running
while True:
time.sleep(1)
Inspiration
This library was inspired by the MPRIS2 library, which utilizes the dbus-python
library. However, dbus-mediaplayer
aims to offer a more widely deployable solution, removing reliance on external dependencies.
Future Features
While dbus-mediaplayer provides a solid foundation for interacting with media players, there's room for growth. Here are some features it is missing and could be implemented in future development:
- Seek Position Control: Allow users to set the playback position within a media track.
- Volume Control: Implement methods for adjusting media player volume. Note that volume control support may vary across different media players and platforms.
- Playback Capabilities: Provide methods to determine if a media player supports specific playback actions like next, previous, stop, and seek. This will allow users to tailor their interactions based on player capabilities.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file dbus_mediaplayer-2024.8.0.tar.gz
.
File metadata
- Download URL: dbus_mediaplayer-2024.8.0.tar.gz
- Upload date:
- Size: 5.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e569948e8a900a69189335907352bfc7496683858cdf41b1c1d202690603a955 |
|
MD5 | 3955d200f57b559401164c99dfa55605 |
|
BLAKE2b-256 | 69f9a423f269ad3b15e7c72daecb98cefe00eede369b6583a4daf0f2135cd429 |
File details
Details for the file dbus_mediaplayer-2024.8.0-py3-none-any.whl
.
File metadata
- Download URL: dbus_mediaplayer-2024.8.0-py3-none-any.whl
- Upload date:
- Size: 5.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 43cb31d3e9cbba3e50e9e283a0f0684dc366703a8f59bf4541ce69fb3c7f2dae |
|
MD5 | 4d02ef269a87fa86c7b0c40b7476f84c |
|
BLAKE2b-256 | b2bcf716ba0d518884c9836389095acd238ff44d66f70f9a5421d439e6fcb303 |