Python-03-b09702087
Python-03-b09702087
Abstract — With the fast pace of life these days, mood changes These two datasets will be integrated into a relational database
can be felt throughout the day. Music for example can be used with the structure using a shared "mood tag" as a foreign key. This design
intent to change one’s mood, increase productivity, or just accompany enables streamlined recommendation logic and supports future
a task. Different tasks require an array of music to be played, which system expansion.
can be tiresome to sift through and select. The goal of this project is to
develop a simple mood-based song recommendation application for Both databases are initially constructed in CSV file format,
Python that takes into consideration the user’s preferred genre and with the following preliminary structure:
current mood. By utilizing this tool, users will be able to receive quick
suggestions that help elevate one’s mood toward an effortless B. Playlist Database
experience. Each song title serves as the primary keyword of the row,
paired with multiple corresponding attributes, including: artist
Keywords — mood-based, productivity booster, recommendation name, YouTube link, mood tag, genre, appropriate time of day,
and applicable activity scenario. The attribute columns are
designed with flexibility in mind, allowing for additions or
I. INTRODUCTION modifications throughout the development process to support
As-is: While there are numerous music streaming platforms more accurate recommendations and diverse use cases.
available on the market, most offer music recommendation
features that primarily rely on backend algorithms to
automatically suggest songs based on users’ listening history.
However, these recommendations are typically passive in nature
and lack interactive filtering mechanisms on the user side. As a
result, they often fail to provide context-aware suggestions that
truly reflect a user's current mood or activity. At present, few
platforms have implemented front-end driven, mood-based
personalized playlist modules.
To-be: Our project aims to develop an interactive, personalized
playlist recommendation system specifically designed for music C. Playlist Title Database
festival attendees. Built with Python, the application allows
This database uses the mood tag as the main categorization
users to input multiple attributes such as their music preferences,
for playlist titles. The initial design includes eight common
current mood, time of day, and ongoing activity. The system
listening moods (e.g., happy, sad, relaxed, excited) and four time
then generates contextually relevant song recommendations
through a multi-layered filtering process. This experience is segments (morning, noon, evening, night), forming a base of 8
designed to enhance the listener’s emotional state and × 4 = 32 preset playlist titles.
atmosphere in the moment, helping them mentally and
emotionally prepare for live performances, while deepening
personal resonance and connection with music. Building on this structure, the system dynamically appends the
user's current activity context (e.g., commuting, working out,
II. POSSIBLE FORMAT OF THE DATA WE USE IN THE PROJECT
reflecting, partying) to the base playlist title. Combined with the
A. Two primary Databases time of day, this generates highly personalized and context-
aware playlist names.
Our project centers around the creation of two primary
databases: the Playlist Database and the Playlist Title Database.
Identify applicable funding agency here. If none, delete this text box.
For example :If the user’s current mood is sad, the time is input and music playback, further enhancing user experience
night, and the activity is reflecting, the generated playlist title and overall interaction.
might be: “Melancholy Reflecting Night”
IV. EXPECTED RESULTS
Our visualized results are showcased below.
A. Step 1:
Description: Users input the activity they are currently
engaged in.
B. Step 2:
III. PYTHON PACKAGES BEYOND THE COURSE
Description: Users can interact with the program by
In this project, based on our current development progress selecting various attribute tags based on their current mood,
and technical capacity, we have structured our work into three preferred music genre, or ongoing activity.
main phases: short-term, mid-term, and long-term goals. The
detailed breakdown of these goals is outlined in section (f). If
development proceeds smoothly and proves to be feasible, the
project may go beyond the original course scope by
incorporating a variety of Python libraries that support data
handling, user interaction, and music playback functionalities.
A. Csv module and QtWebEngineWidgets
Define To begin with,. We’ll use Python built-in csv module
to efficiently reads .csv files and manages datasets containing
fields such as mood, song title, and YouTube link, laying a
strong foundation for conditional filtering and recommendation
logic.
For basic music playback, we use QtWebEngineWidgets
module to create an embedded browser interface, and then use
HTML5 <video> or <audio> tags inside it to play video or
audio. — a simple yet effective solution for implementing basic
music recommendations.
B. Ttk.Combobox and Rendom module
To enhance interactivity, we used ttk.Combobox to create a
dropdown menu which allows users to select their choices from
a list of options in Python. Fig. 2. User Interface from Suno as our project reference