2024-10-05 20:35:38 +03:00
2024-10-04 13:16:44 +03:00
2024-10-01 16:09:30 +02:00
2024-10-05 20:29:07 +03:00
2024-09-18 19:49:07 +03:00
2024-08-22 11:11:02 +03:00
2024-08-22 11:11:02 +03:00
2024-09-17 16:55:01 +03:00
2024-10-05 00:13:11 +03:00
2024-08-22 11:11:02 +03:00
2024-10-05 20:35:38 +03:00

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:

  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
Description
Frontend for SoundCloud
Readme AGPL-3.0 964 KiB
Languages
Go 74.2%
templ 20.7%
JavaScript 2.5%
CSS 1.9%
Dockerfile 0.7%