Skip to content

thedaviddelta/kainet-music

Repository files navigation

Kainet Music


Free and Open Source music streaming service

How does it work?

Inspired by projects like NewPipe, Nitter, Invidious, Bibliogram or my own Lingva, Kainet scrapes through YouTube Music and retrieves its information without using any Google-related service, preventing them from tracking.

For this purpose, Kainet uses mainly these two libraries:

  • Kainet Scraper, a YouTube Music scraper built and maintained specifically for this project, which obtains all kind of information from this platform.
  • node-ytdl-core, a YouTube downloader used for retrieving and playing the scraped tracks.

In addition, the project uses the following Open Source resources:

  • TypeScript, the JavaScript superset, as the language.
  • React as the main front-end framework.
  • NextJS as the complementary React framework, that provides Server-Side Rendering, Static Site Generation or serverless API endpoints.
  • ChakraUI for the in-component styling.
  • Jest, Testing Library & Cypress for unit, integration & E2E testing.
  • Inkscape for designing both the logo.

Installation

You can optionally install Kainet as a Progressive Web App on your computer or mobile phone. This way, it'll be wrapped by your browser and be shown as another installed application.

When opening the application in a browser that supports PWAs, an install button should be shown in the top bar.

Custom playlists

Currently, Kainet still doesn't support user creation, so you can't create custom music playlists inside the platform.

Despite that, you're able to access any playlist from YouTube or YouTube Music. That way, if you don't mind that much going through Google, you can create your custom playlists on YouTube and use them on Kainet.

In order to find the playlist with ease, the best way is using its ID, which can be found in the YouTube URL:

https://youtube.com/playlist?list=PLjp0AEEJ0-fGi7bkjrGhBLUF9NMraL9cL

Once you have it, simply search it in the playlists section. In case it's not found, you can directly use the Kainet's playlists URL by adding VL to the ID:

https://kainet.rocks/playlist/VLPLjp0AEEJ0-fGi7bkjrGhBLUF9NMraL9cL

Deployment

As Kainet is a NextJS project you can deploy your own instance anywhere Next is supported.

The only requerement is to set an environment variable called NEXT_PUBLIC_SITE_DOMAIN with the domain you're deploying the instance under. This is used for the canonical URL and the meta tags.

The easiest way is to use their creators' own platform, Vercel, where you can deploy it for free with the following button.

Deploy with Vercel

Instances

These are the currently known Kainet instances. Feel free to make a Pull Request including yours (please remember to add [skip ci] to the last commit).

Domain Hosting SSL Provider
kainet.rocks (Official) Vercel Let's Encrypt
kainet.alefvanoon.xyz Vercel Let's Encrypt

Contributors

Thanks goes to these wonderful people (emoji key):


David

️️️️♿️ 💻 📖 🎨 ⚠️

This project follows the all-contributors specification. Contributions of any kind welcome!

License

Copyright © 2021 TheDavidDelta & contributors.
This project is GNU AGPLv3 licensed.

About

Free and Open Source music streaming service

Resources

License

Stars

Watchers

Forks