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)
In the works
- Track player embeds (
https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/id->https://sc.maid.zone/w/player/?url=https%3A//api.soundcloud.com/tracks/id)
The UI isn't really done yet. All parameters other than url are unsupported. You can also specify track by permalink instead of id (https://sc.maid.zone/w/player/?url=username/track)
Contributing
Contributions are appreciated! This includes feedback, feature requests, issues, pull requests and etc. Feedback and feature requests are especially needed, since I (laptopcat) don't really know what to prioritize
You can contribute on:
You can also reach out to me privately
Setting it up
Prerequisites:
- node.js + npm (any recent enough version should do, it's just used for getting hls.js builds)
- golang (1.21 or higher was tested, others might work too)
- git
Setup:
- Clone this repository:
git clone https://github.com/maid-zone/soundcloak
- Go into the cloned repository:
cd soundcloak
- Download hls.js:
npm i
- Download templ:
go install github.com/a-h/templ/cmd/templ@latest
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
- Generate code from templates:
templ generate
- Download other required go modules:
go get
-
Optional. Edit config: You can change some values in
lib/cfg/init.goif you want. Keep in mind that you need to rebuild the binary each time you want to update the config. -
Build binary:
go build main.go
- Run the binary:
./main
This will run soundcloak on localhost, port 4664. (by default)
Built with
Backend
Frontend
- HTML, CSS and JavaScript
- hls.js