FreeTunes is an app to listen to background music from youtub and download it as mp3 build partly on top of Invidious
To run this project on your environment you will need one thing
- A publicly accesible Invidious instance. To provide this you can use the
INVIDIOUS_URL
env var. If this environment variable is not detected the app will refuse to start.
A docker image is published to ghcr.io with every commit of this repository. You can give this project a try with a docker run --rm
command like this:
docker run --rm -e INVIDIOUS_URL=htps://your.invidious.instance.url.here -p 3000:3000 ghcr.io/juandjara/freetunes
You can now access the running service on https://localhost:300
You can run this project with docker compose:
version: '3.5'
services:
freetunes:
image: ghcr.io/juandjara/freetunes
container_name: freetunes
environment:
- INVIDIOUS_URL=htps://your.invidious.instance.url.here # note this variable will be used by both frontend and backend, so it must publicly accesible
ports:
- '3000:3000'
You can also run this project locally from source using node
. To do so, follow these steps:
- Install dependencies with
npm install
or the package manager you use (yarn, pnpm, etc) - Copy the file
.env.example
to a new file called.env
and fill in theINVIDIOUS_URL
variable there. - Run the command
npm run dev
. This will bring up the dev server with HMR - Now you can access the app on http://localhost:3000
-
Vite SPA
- React 18.2
- Typescript
- Tailwind CSS
- React Router 6 (for data loading too)
- Headless UI
-
Node server
- express
- vite-node
- FFmpeg