Files
soundcloak/README.md
2024-09-19 21:01:31 +03:00

2.0 KiB

soundcloak

wip alternative frontend for soundcloud

Instance list

Already implemented

  • Searching for songs, users, playlists
  • Basic user overview (songs, metadata)
  • Basic song overview (author, metadata) & streaming (requires javascript (which requires support for Media Source Extensions) if no browser support for HLS)
  • Basic playlist/set/album overview (songs list, author, metadata)
  • Resolving shortened links (https://on.soundcloud.com/boiKDP46fayYDoVK9 -> https://sc.maid.zone/on/boiKDP46fayYDoVK9)

Setting it up

Prerequisites:

  1. node.js + npm (any recent enough version should do, it's just used for getting hls.js builds)
  2. golang (1.21 or higher was tested, others might work too)
  3. git

Setup:

  1. Clone this repository:
git clone https://github.com/maid-zone/soundcloak
  1. Go into the cloned repository:
cd soundcloak
  1. Download hls.js:
npm i
  1. Download templ:
go install github.com/a-h/templ/cmd/templ@latest
  1. Download other required go modules:
go get
  1. Optional. Edit config: You can change some values in lib/cfg/init.go if you want. Keep in mind that you need to rebuild the binary each time you want to update the config.

  2. Generate code from templates & build binary:

You might need to add go binaries to your PATH (add this line to your .bashrc / .zshrc / whatever)

export PATH=${PATH}:`go env GOPATH`/bin
templ generate && go build main.go
  1. Run the binary:
./main

This will run soundcloak on localhost, port 4664. (by default)

Built with

Backend

Frontend

  • HTML, CSS and JavaScript
  • hls.js