Libify - Local Music Streaming

Jepzter

Member
May 25, 2018
37
37

What is it?​

Just like Spotify but only with local music files. Spotify already has this feature, but who cares - fun project!

Goal?​

  • Get going streaming local files/remote files from server within 1 minute
  • Create playlists
  • Stream the songs!

Features​

  • Play/Pause song - 100%
  • Interact with playlist - 100%
  • Stream from local location - 100%
  • Settings - 100%
  • Scan for songs and auto import - 100%
  • Create playlist - 100%
  • Search function - 100%
  • Stream from remote location - 0%
  • Next song in queue after finishing song - 0%
  • Packaged (docker-compose to get it all started easily) - 0%
  • Add songs to playlist - 90%

How it works​

It uses vue as a frontend library and go as a backend powered by gin-gonic. After specifying a root directory where songs are located it will search the folder for mp3 (will include more formats) files and store the meta data in libify database to be streamed and added to playlists.

Why?​

I decided to start learning javascript more and vue so I figured I should start a frontend heavy project and it's pretty fun.

Open source?​

Yes, of course!

Ashamed of my vue code?​

Absolutely!

Prints​

You must be registered for see images attach
You must be registered for see images attach
You must be registered for see images attach
You must be registered for see images attach

Updates​

  • Create playlists and change name is done by double clicking the playlist -
  • Search songs by title -
 
Last edited:

RastaLulz

fight teh power
Staff member
May 3, 2010
3,893
3,817
Neat. I assume eventually you'd want to use something like Electron so that it's more like native app, at which point I wonder how useful having the Go backend will be. Alternatively, you could serve the Vue app on the web, and have the Go backend be the app, and in theory you could have it so you could communicate with the Go server both locally, and via the Internet. Also, I like to see that you went with Vue; a man of taste.
 

Jepzter

Member
May 25, 2018
37
37
Neat. I assume eventually you'd want to use something like Electron so that it's more like native app, at which point I wonder how useful having the Go backend will be. Alternatively, you could serve the Vue app on the web, and have the Go backend be the app, and in theory you could have it so you could communicate with the Go server both locally, and via the Internet. Also, I like to see that you went with Vue; a man of taste.

Yeah, could probably build a electron app if it gets to that point. I choose to have backend with an API for the purpose of using it across multiple devices (like a webapp or electron). This could most likely be done without a backend and having js scan for remote files, but I think long term having a backend is a good thing and a nice api to interact with and across multiple apps. Also helps to keep playlists in sync across devices.
Long term I am also thinking of how one could make playlist based on what a user listens too, just like spotify. But thats far away.

I like vue, I've done some react and react native before and liked it, however I think it's too much boilerplating and vue is just better in my opinion for a small webapp. Hoping to make it look more "premium", I've just taken a popular palette from colorhunt.co and basically copied spotify. But you gotta start somewhere :p

Not sure if this would ever be used, but I have a lot of local mp3 files and figured it would be nice to create my own streaming server on a raspberry pi and access it on any device on my network to stream
 
Last edited:

Weasel

Wessel#3201
Nov 25, 2011
4,064
2,358
Really neat to see someone using Go, is there a specific reason you chose to use Go for this? As for usability, I would really recommend you to add a README.md at the root of the repository, this would make it much easier for others to set this up and start using it.
 

Jepzter

Member
May 25, 2018
37
37
Really neat to see someone using Go, is there a specific reason you chose to use Go for this? As for usability, I would really recommend you to add a README.md at the root of the repository, this would make it much easier for others to set this up and start using it.
Definitely will add a Readme. I've started on the "packaged" version which will contains the how to but need some coding still on the app before.

As of why I use Go, it's because of the simplicity and speed in both coding and performance, it's also my primary language. gin-gonic has a great feature to stream files over HLS with a one liner, that's also a reason.

I've been off a few weeks because I have vacation, will start coding the rest this week. I've been thinking of changing the design too, something more premium. I have a new design that's finished soon that I will paste here.
Post automatically merged:

Just wanted to update on this. No the project is definetely not scrapped! Still working and thinking of a redesign which is soon done, will post it here when it's done (looking for feedback). After that I will continue adding the last features in this post. Add song to playlist is also ~90% done, just need some more testing.
 
Last edited:

Users who are viewing this thread

Top