DEV Community

Cover image for Python Melodies: Building a Music Player with Playlists and Album Art using Python.
Bambam
Bambam

Posted on • Updated on

Python Melodies: Building a Music Player with Playlists and Album Art using Python.

Today i'll be sharing fun project to try on python, where we build a music player.It was pretty fun doing these and I decided to share my experience with you guys.

Python is a powerful programming language that can be used to create a variety of applications, such as music players.

PyCharm is a popular integrated development environment (IDE) for Python that provides a rich set of features and tools for developing Python applications.

To build a music player in PyCharm, I used Python libraries, tkinter for creating the graphical user interface (GUI), pygame for playing music, and mutagen for reading metadata from music files.
We'll call the music player :Python Music

Here's an overview of the steps to build Python Music in PyCharm:

  1. Install the necessary Python libraries such as tkinter, pygame, and mutagen in your PyCharm project.

  2. Create a GUI for the music player using tkinter. The GUI should include features such as play, pause, stop, and skip buttons, a progress bar for the current song, and a playlist view to display the current playlist.

  3. Use pygame to play music files in your Python code. You can also use pygame to control the playback of music, such as changing the volume and skipping to different parts of the song.

  4. Use mutagen to read metadata from music files, such as the album name and cover art. Display the album art in the GUI along with the song title and artist information.

  5. Implement playlist functionality by allowing the user to add or remove songs from the playlist and switch between different playlists.

Before we start, we need to install the necessary libraries to build our music player. We will be using the following libraries:

  • pygame:
    This library will be used to play music files.

  • tkinter:
    This library will be used to create the graphical user interface (GUI) of our music player.

  • mutagen:
    This library will be used to extract metadata from music files, such as album art and song titles.

Once we have installed these libraries, we can start building our music player. Let's begin by creating a window for our music player using tkinter:

 codeimport tkinter as tk
window = tk.Tk()
window.title("Python Music Player")
window.geometry("500x500")
Enter fullscreen mode Exit fullscreen mode

Next, we will create buttons for playing, pausing, and stopping the music:

codeplay_button = tk.Button(window, text="Play")
pause_button = tk.Button(window, text="Pause")
stop_button = tk.Button(window, text="Stop")

play_button.pack()
pause_button.pack()
stop_button.pack()
Enter fullscreen mode Exit fullscreen mode

Now that we have our buttons, we need to add functionality to them. We will use pygame to play music files, so we need to import the pygame library and initialize it:

 codeimport pygame

pygame.init()
Enter fullscreen mode Exit fullscreen mode

Next, we will define a function to play music:

codedef play_music():
    pygame.mixer.music.load("song.mp3")
    pygame.mixer.music.play()
Enter fullscreen mode Exit fullscreen mode

In this function, we load the music file "song.mp3" and then play it using the pygame.mixer.music.play() method.

We can now connect our play button to this function by adding a command:

codeplay_button = tk.Button(window, text="Play", command=play_music)
Enter fullscreen mode Exit fullscreen mode

Similarly, we can define functions to pause and stop the music:

codedef pause_music():
    pygame.mixer.music.pause()

def stop_music():
    pygame.mixer.music.stop()

pause_button = tk.Button(window, text="Pause", command=pause_music)
stop_button = tk.Button(window, text="Stop", command=stop_music)
Enter fullscreen mode Exit fullscreen mode

Now that we have the basic functionality of our music player, we can add additional features such as creating playlists and displaying album art. To do this, we will use the mutagen library to extract metadata from music files.

Let's start by creating a function to display album art:

codefrom PIL import ImageTk, Image
from mutagen.id3 import ID3

def show_album_art():
    audio = ID3("song.mp3")
    artwork = audio.get("APIC:").data
    img = ImageTk.PhotoImage(Image.open(io.BytesIO(artwork)))
    panel = tk.Label(window, image=img)
    panel.image = img
    panel.pack()
Enter fullscreen mode Exit fullscreen mode

In this function, we first extract the album art from the music file using the ID3 class from the mutagen library. We then convert the album art data into an image using the PIL library and display it on the GUI using the Label widget.

Finally, we can create a function to create playlists:

codeplaylist = []

def add_to_playlist():
    playlist.append("song.mp3")

def play_playlist():
    for song in playlist:
        pygame.mixer.music.load(song)
        pygame.mixer.music.play()
Enter fullscreen mode Exit fullscreen mode

In this function, we create an empty list called "playlist" and define two functions: "add_to_playlist" and "play_playlist". The "add_to_playlist" function appends the current song to the playlist, while the "play_playlist" plays the playlist.

You can run this on pycharm or create an executable file.

So guys that's it. Give it a try and let me how you did. Until next time. Have a nice day.

Top comments (0)