WaveLength is a cross-platform music app that wraps Rapid API's YouTube Music API and YouTube's official v3 API.
Clone the project.
$ git clone https://github.com/Dev-Siri/wavelength
NOTE: Each of these applications have their .env.example (with the server having .env.docker too), make sure you fill these variables before running them.
Navigate to the /web directory, and run the SvelteKit app with dev mode
$ cd web
$ bun dev
# or
$ pnpm dev
Navigate to the /mobile directory. Make sure you have Flutter. You'll also need the native tooling for the platform you're running on: Android requires Android-Studio and additional command-line tools and packages installed. iOS requires XCode to be installed on your Mac.
Then you can start the application in dev mode:
$ flutter run
Almost all microservices are entirely written in Go, with one crucial service, the YouTube Scraper, written in TypeScript (Bun) for use of the YouTube.js library to retrieve data from the platform.
To run the entirety of the project, you need to have Docker installed on your system. The project includes a docker-compose.yml in the /server directory. Use the compose commands to start all the microservices up:
$ cd server
$ docker compose up
# shut all services down
$ docker compose down
The microservices use gRPC for communication. If you are looking to make any changes to the protobuf definitions, you need to run make to regenerate the gRPC client/server code.
# generate gRPC definitions
$ make generate
Note that the command also runs a package.json script with Bun to generate TypeScript definitions. If you do not have Bun installed, then change the Makefile to a different JavaScript package manager command.
This project is MIT licensed. See LICENSE.