mirror of
https://git.maid.zone/stuff/soundcloak.git
synced 2025-12-11 14:19:38 +05:00
e95ce78b5d356b2ccaba3c8907ca59c259720118
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
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
- 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. -
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
- Run the binary:
./main
This will run soundcloak on localhost, port 4664. (by default)
Built with
Backend
Frontend
- HTML, CSS and JavaScript
- hls.js
Languages
Go
74.2%
templ
20.7%
JavaScript
2.5%
CSS
1.9%
Dockerfile
0.7%