An open API service indexing awesome lists of open source software.

https://github.com/iamdyeus/codtubify

An open-source Python Online Music Player 🎵
https://github.com/iamdyeus/codtubify

online-music-player python youtube-music-player

Last synced: 3 months ago
JSON representation

An open-source Python Online Music Player 🎵

Awesome Lists containing this project

README

        

[![forthebadge](https://forthebadge.com/images/badges/made-with-python.svg)](https://forthebadge.com)
[![forthebadge](https://forthebadge.com/images/badges/open-source.svg)](https://forthebadge.com)

![starts](https://badgen.net/github/stars/iamDyeus/CodTubify)
![issues](https://badgen.net/github/issues/iamDyeus/CodTubify)
![forks](https://badgen.net/github/forks/iamDyeus/CodTubify)
![license](https://badgen.net/github/license/iamDyeus/CodTubify)

codtubify

# About CodTubify 🎵 - An Online Music Player
CodTubify is a Music Player project, fully developed in Python. It can Play your favorite Songs or any Youtube Playlist without any interruption.




## Requirements
* Operation system: **Windows**
* Python Version: **3.9.x**
### Required Modules
* Refer to [`requirements.txt`](src/requirements.txt)
* Use the package manager [pip](https://pip.pypa.io/en/stable/) to install all the Required Modules.
```bash
python -m pip install -r requirements.txt
```
### Required Audio PostProcessors
* [FFMPEG AND FFPROBE](https://bit.ly/ffmpeg_ffprobe_exe)
( just download the EXE's from the given link and extract them in "src/backend/Download_process/" before starting the application)
* Or refer to [`IMPORTANT.md`](src/backend/Download_process/important.md)




## The Purpose
The purpose of this project really was to create an application that used a song-name/title or any Youtube URL as an input and downloads a MP3 copy of the desired user input, it then works as a Normal Audio player and basically plays the downloaded Audio, contrary to popular belief of streaming Music instead.

### Technologies
- Python (basically to create everything init)
- Audio PostProcessors (Audio files conversions)
- GitHub (Proejct and Issues)

### Significant Changes
This project required me to utilize many different aspects of what I learned so far in the last 2 Months. I incorporated Modules like yt-dlp and pygame to assist in Downloading Audio Files and Playing them respectively. Instead of traditional Object-oriented way of Programming in tkinter (using CLASSES etc) , i tried to make things as simple as Possible.

### Challenges
- There were significant challenges on this project that had a lot to do with traversing the unknown. Firstly, after i decided NOT to use the Object-oriented Programming approach for the GUI. For a while i was left Confused, because it was not one single gui i was working with, it was a group of many Nested GUI's combined together. though after waiting for someone to answer my questions on stackoverflow (which no one did to this date). I started figuring it out in my Way, Hopefully i was Able to Link all the GUI's with each other. (probably after creating a lot of mess in the code)
- Once i completed the GUI, the second problem which i was encountering was that the audio file downloaded using yt-dlp wasn't really an audio file, so i had to Convert the Downloaded File into a .mp3 using PostProcessors Such as : *FFMPEG/FFPROBE* , so that they become playable with pygame.
- There were plently Other challenges which i also faced while Making this, but i'll keep them for some other day.

### Things To Consider
The Directory's are a little Messed up, so in order to Run the Application smoothly, please Follow the Steps below.
- After Cloning, your folder should look something like `Codtubify-main`
- open the main folder and run Command Prompt in that location
- Now in Command Prompt Give the Following Command : `python src/app.py`




## APP PREVIEW






Home Tab






Playlist Tab








Featured Tab






About Page








Login GUI





# License

Distributed under the MIT License. See [`LICENSE.txt`](/LICENSE.txt) for more information.


### CONTRIBUTING
* Pull Requests (PRs) are welcome :relaxed:
* For major changes, please discuss on discussions about what you would like to change.
* Try to add useful comments
* Please make sure to update tests as appropriate.
* If you have a suggestion that would make this better, please fork the repo and create a pull request.
You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

# Acknowledgments

- **Parth Jadhav and team** for their Amazing [`Tkinter Designer`](https://github.com/ParthJadhav/Tkinter-Designer).
- **Mohit & Anirudh** for there awesome project [`HotinGo`](https://github.com/Just-Moh-it/HotinGo) as the inpiration for GUI.
- [**Canva**](https://www.canva.com) for making the Graphic Design Process Much Easier For me.
- [`yt-dlp`](https://discord.com/invite/FumpHSsjep) and [`pygame`](https://discord.com/invite/EaWkr5TVQy) Discord Mods/Helpers for Helping me in most of my Noob queries.


Made with love in India