$ cat HOW_IT_WORKS.txt
cosine.club finds similar tracks by analyzing the actual audio, not tags, genres, or listening history. it uses the discogs-effnet model from essentia to turn audio into vector embeddings that capture tonal, rhythmic, and structural characteristics.
the model was trained via contrastive learning on the discogs music dataset, which has deep coverage of electronic and underground music. this makes the similarity results more relevant than general-purpose audio models for the kinds of tracks in the catalog.
when you submit a track, its embedding is compared against a database of pre-computed embeddings using cosine similarity to find the closest matches.
$ cat SUPPORTED_LINKS.txt
paste a link to any track and we'll analyze the audio and find similar-sounding tracks. submitting links also helps grow the database over time.
- youtube
- soundcloud
- bandcamp
- spotify
- vocaroo
apple music, tidal, beatport, and deezer are not supported yet.
tip: got a track you can't identify? upload the audio to vocaroo and paste the link here to find the closest matches.
$ cat TRACK_DATABASE.txt
the database is focused on electronic and underground music. house, techno, uk garage, jungle, drum & bass, breakbeat, electro, ambient, dub, funk, soul, disco, and a lot more. think 300-pressed vinyl rips of uk funky uploaded to youtube in 2009, not john summit tech house on spotify.
over 1.9 million tracks sourced from discogs, bandcamp, and nina, continuously updated.
if you can't find what you're looking for, you can submit a link to any track. the audio gets analyzed and compared against the database to find the closest matches.
$ cat TROUBLESHOOTING.txt
my youtube submission failed
youtube actively blocks automated downloads, so submissions can sometimes fail. retrying the same link usually won't help. try a soundcloud or bandcamp link for the same track instead, these are much more reliable. some youtube videos also can't be processed if they are geo-locked or age-restricted.
a track won't play
most playback errors are caused by VPNs or apple private relay. try disabling these if tracks aren't loading. sometimes the youtube video itself has been deleted or taken down. there's a background process that automatically finds replacement links over time.
audio stops when i switch tabs on mobile
this is a youtube limitation. youtube embeds stop playing when the browser is backgrounded on mobile devices. there's no workaround for this unfortunately.
$ cat PLAYLISTS.txt
playlists are for saving tracks you find while digging. click the + button on any track to add it. you can create separate playlists for different sessions, moods, sets, whatever you want.
based on the tracks in your playlist, we'll also suggest similar tracks to keep your dig going. if you want to share your digs, you can make a playlist public on the playlists page. public playlists get their own shareable link.
discogs integration
connect your discogs account in account settings and when you add a track to a playlist you can choose to add it to your discogs wantlist too.
$ cat API.txt
cosine.club has a free public API. you can search for tracks, get similar tracks, and look up track metadata. the API is open for any purpose, including third-party apps and integrations.
grab your API key from your account page and check out the full API docs to get started.
if you're building something on top of cosine.club, feel free to reach out. always interested to see what people are making.
$ cat SUPPORT_US.txt
cosine.club costs around $100/month to run, most of which i cover myself. that covers the dedicated server, audio storage, email, and proxy servers for youtube submissions. as the site grows, the demand for proxies grows with it.
contributions help keep everything running and free for everyone. as a thank you, your account will be tagged as a supporter, with more benefits on the way.
if you'd like to help, visit the support page.
$ cat CONTACT.txt
if you have a question not answered here, feel free to reach out at [email protected]. i'm pretty busy so it might take a while to get back to you!