Yami
An open-source music player with simple UI
[Installation](#installation) • [Usage](#usage) • [Features](#features) • [Contributing](#contributing) • [License](#license) The project is written primarily in Python, distributed under the GNU General Public License v3.0 license, first published in 2024. Key topics include: customtkinter, hacktoberfest, online-music-player, spotdl, tkinter.
Installation • Usage • Features • Contributing • License
</div>🔍Overview
Yami is a lightweight, open-source music player built in Python. It focuses on simplicity and ease of use, providing an intuitive user interface (UI) for users to manage and play their music. Whether you're playing local files or downloading from online sources using spotdl, Yami offers a seamless experience. This project is designed for users who want a minimalistic, cross-platform music player with the ability to integrate external sources like Spotify/Youtube Music.
📸Screenshot
<div align="center"> <img align="center" src="https://github.com/DevER-M/yami/blob/main/.assets/pic.png?raw=true"> <img align="center" src="https://github.com/DevER-M/yami/blob/main/.assets/example.gif?raw=true"> </div>🛠️ Getting Started
Prerequisites
- Python 3.8+
- pip for dependency management
Installation
From Pip
shpip install yami-music-player
From Github
1. Clone the Repository
shgit clone https://github.com/DevER-M/yami.git cd yami
2. Create and activate a virtual environment:
shpython -m venv venv source venv/bin/activate # On Windows, use `venv\Scripts\activate`
- Install
yami-music-player(in editable mode):
shpip install -e .
Usage
To run yami, use the following command in your terminal:
sh$ yami # Or $ python -m yami
Features
- Spotdl Integration: Download music directly from the app using spotdl
- Asynchronous Downloading : From synchronous
spotdl.Downloader.search_and_download()
- Asynchronous Downloading : From synchronous
- Player Controls:
- <img src="https://github.com/DevER-M/yami/blob/main/yami/data/pause.png?raw=true" alt="drawing" width="30" style="vertical-align:bottom"> : Pause/play music
- <img src="https://github.com/DevER-M/yami/blob/main/yami/data/skip_next.png?raw=true" alt="drawing" width="30" style="vertical-align:bottom"> : Play next song
- <img src="https://github.com/DevER-M/yami/blob/main/yami/data/skip_prev.png?raw=true" alt="drawing" width="30" style="vertical-align:bottom"> : Play previous song
- <img src="https://github.com/DevER-M/yami/blob/main/yami/data/folder.png?raw=true" alt="drawing" width="30" style="vertical-align:bottom"> : Choose folder
- <img src="https://github.com/DevER-M/yami/blob/main/yami/data/music.png?raw=true" alt="drawing" width="30" style="vertical-align:bottom"> : Download music
ctrl+o: Choose folder
This will open the app, for the logs check the terminal.
Contributing
Contributions are welcome and greatly appreciated! Here's how you can contribute:
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
License
Distributed under the GPLV3 License. See LICENSE for more information.
Discussions
Discussions are available and can be used for feature requests and questions
Credits
- Custom Tkinter
- Spotdl
- @ElSaico for fixing locale scaling
Star History
Contributors
Showing top 2 contributors by commit count.
