/dankmuzikk

Create, Share and Play Music Playlists.

Primary LanguagetemplGNU General Public License v3.0GPL-3.0

DankMuzikk

Create, Share and Play Music Playlists.

Go Report Card rex-deployment rex-deployment

About

DankMuzikk is a music player designed for colloborative playlists, where a playlist's collaborators can add and vote for music in a playlist, and the other music player stuff.

Note: this is a fling side-project that could die anytime so don't get your hopes up.

Contributing

IDK, it would be really nice of you to contribute, check the poorly written CONTRIBUTING.md for more info.

Roadmap

  • Search YouTube for music
  • Web UI
  • Audio player
  • Accounts and Profiles
  • Playlists
  • Share playlists
  • Vote songs in playlists
  • Songs queue
    • Add songs to queue
    • View/Edit queue
  • Expandable player
    • Mobile
    • Desktop
  • Share songs
  • Player's menu
  • Import public playlists from YouTube
  • Update profile
  • Cross device control
  • Offline support
  • Songs' metadata fixer
  • Lyrics
  • Refactor the code (never gonna happen)

Technologies used

  • Go: Main programming language.
  • JavaScript: Dynamic client logic.
  • Python: Used for the YouTube download service.
  • templ: The better html/template.
  • htmx: The front-end library of peace.
  • GORM: The fantastic ORM library for Golang.
  • MariaDB: Relational database.
  • yt-dlp: YouTube download helper.
  • pytube: YouTube download helper.
  • minify: Minify static text files.

Run locally

  1. Clone the repo.
git clone https://github.com/mbaraa/dankmuzikk
  1. Create the docker environment file
cp .env.example .env.docker
  1. Run it with docker compose.
docker compose up -f docker-compose-dev.yml
  1. Visit http://localhost:20250
  2. Don't ask why I chose this weird port.

Acknowledgements

  • This project is not affiliated with YouTube or Google, or anyone to that matter in any sort of ways.
  • Colorscheme is inspired from Dankpods
  • Loader’s CSS was made by @thamudi

Made with 🧉 by Baraa Al-Masri