Git Product home page Git Product logo

mpris-discord-presence's Introduction

MPRIS Discord Presence

Pour le français, rendez-vous

Overview

MPRIS Discord Presence is a Python application designed to integrate music playback information from various MPRIS-compatible media players with Discord's Rich Presence functionality. It displays information on the track currently playing, as well as player icons on the Discord status. On Linux systems, thanks to MPRIS, which enables the system to display the media currently playing on a wide variety of media players (including web browsers) in the user interface, this script retrieves this data and displays it directly in the Discord profile using Discord Rich Presence (Discord RPC) technology. This requires the Discord client to be installed on the system.

This integration provides an enriched user experience, allowing you to share your currently playing multimedia content with your Discord community, while personalizing your profile with detailed information and player-specific icons. Whether you're listening to music, watching a video or a podcast, MPRIS Discord Presence makes these moments visible and shareable with your circle on Discord, adding a social layer to your multimedia experience.

Illustration :

Illustration

Features

  • Displays current playing song (title, artist) on Discord.
  • Shows playback status with customized player icons.
  • Supports multiple MPRIS-compatible media players.

Requirements

Installation

Clone the repository to your local machine:

git clone https://github.com/Bit-Scripts/MPRIS-Discord-Presence  
cd mpris-discord-presence  

Install the required Python packages:

pip install -r requirements.txt

Configuration

  1. Copy the .env-example file to .env:
cp .env-example .env
  1. Configure your AWS S3 account or MinIO server and DISCORD_CLIENT_ID in the .env file. For AWS S3, this information will be supplied by AWS. For MinIO, you will have configured this information when you set up your server.
DISCORD_CLIENT_ID='your_discord_client_id'
MINIO_URL='s3.amazonaws.com'  # Use this value for AWS S3. For local MinIO, use the URL of your MinIO instance.
MINIO_ACCESS_KEY='your_access_key_for_aws_s3_or_minio'
MINIO_SECRET_KEY='your_secret_key_for_aws_s3_or_minio'
  1. For your MPRIS Discord Presence application, music player icons are downloaded and configured in the Art Assets of your Discord application via the Discord Developer Portal.These icons are used to customize the appearance of your Discord Rich Presence, displaying the player in use. In contrast, the MinIO or AWS S3 bucket is used to store the album art and video thumbnails that are displayed in your Discord Rich Presence. It's crucial to create this bucket to store these images and configure it to allow public access. This ensures that Discord can access the images and display them correctly in the rich presence. The bucket should only contain images intended for public sharing, as access to them is open to all. Be sure to follow the bucket creation steps provided by your storage service (MinIO or AWS S3) and adjust the privacy settings to allow public access to images.

  2. Uploading Icons to Your Discord Bot:

  • Ensure you have a folder named playersIcons containing all the player icons you wish to use.
  • Navigate to the Discord Developer Portal, select your application, and go to the "Rich Presence" > "Art Assets" section.
  • Upload each icon from the playersIcons folder to your Discord application. The name you give each icon in the Discord Developer Portal should match exactly with the keys in the ICON_NAMES dictionary within your script.

Note

It is crucial to add all the icons from the playersIcons folder one by one into your Discord application, ensuring each icon's name in the Discord Developer Portal corresponds to its intended use within your application, as specified in the ICON_NAMES dictionary.

Usage

Run the application:

python main.py

The script will automatically update your Discord presence with the currently playing track information from the active MPRIS media player.

Contributing

Contributions to the MPRIS Discord Presence project are welcome. Please feel free to submit pull requests or open issues to suggest improvements or add new features.

License

MPRIS Discord Presence is licensed under the GNU General Public License v3.0 (GPLv3). See the LICENSE file for more details.

mpris-discord-presence's People

Contributors

paullux avatar

Stargazers

Ikytsu avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.