GithubHelp home page GithubHelp logo

iamdyeus / codtubify Goto Github PK

View Code? Open in Web Editor NEW
50.0 2.0 5.0 1.63 MB

An open-source Python Online Music Player 🎡

License: MIT License

Python 100.00%
online-music-player python youtube-music-player

codtubify's Introduction

forthebadge forthebadge

starts issues forks license

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

python -m pip install -r requirements.txt

Required Audio PostProcessors

  • FFMPEG AND FFPROBE ( 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


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 for more information.


CONTRIBUTING

  • Pull Requests (PRs) are welcome ☺️
  • 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.
  • Mohit & Anirudh for there awesome project HotinGo as the inpiration for GUI.
  • Canva for making the Graphic Design Process Much Easier For me.
  • yt-dlp and pygame Discord Mods/Helpers for Helping me in most of my Noob queries.

Made with love in India

codtubify's People

Contributors

iamdyeus avatar imgbotapp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

codtubify's Issues

Update Current GUI

Currently, the GUIs are hardcoded to overlap each other, which creates a messy user experience. To improve this, I propose implementing proper class structures and utilizing tkinter's TopLevel widget for managing multiple interfaces.

Additionally, the aesthetics of the GUI need refinement. The rounded borders were chosen randomly by me, resulting in a less-than-appealing design. Therefore, a makeover of the GUI is necessary.

Tasks

BUG

Exposed Directory's in song_downloader.py and playlist_downloader.py at line 10 in the Download_process Folder.

this is how that line looks like :
'ffmpeg_location': 'C:/Users/User/Desktop/Codtubify/src/backend/Download_process/ffmpeg.exe'}

i don't know if changing this just to : 'ffmpeg_location': 'src/backend/Download_process/ffmpeg.exe' would work?

Playing playlist in a loop

I think I forgot to write the logic for playing a playlist in the loop, though I remember adding a self.loop var in mediaManager.py
Once am finished with the GUI, I'll handle this issue.

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.