Desktop application built with Electron to play YouTube videos without background music
🔎 Why this? Let's dive in...
Desktop application ...
A web page would have been more convenient for the end user, but the processing of the video requires a high CPU and/or GPU consumption combined with non-javascript dependencies that cannot take place in a browser (client side). A solution could have been to place this processing on the server side, but this would have had a considerable cost and the primary objective of this service is to be 100% free. This could happen in the future in cha Allah with the financial support of the community, but not now.
"What about a mobile app?" Here, the problem with doing client-side processing is that the machine learning model trained to separate voice from audio is not currently compatible to run on a phone (as far as I know, this PR is still opened, this project doesn't seem to work, and the processing time would have been to slow anyway). As for the problem of server-side processing, it's the same as for the web version: not impossible, but it's not free
... built with Electron ...
A GUI built with a Python framework would have been technically simpler, but I turned to Electron to deepen my knowledge of the front end stack: JS / TS / React / HTML / CSS and be able to build more complex ui
... to play YouTube videos without background music
For the moment, only youtube videos are supported, but in the future, audios/videos can also be imported directly from the computer to have the background music removed, bi idhni Allah. The app is centred around youtube as there is a lot of useful (e.g. tutorials) and/or entertaining (e.g. documentaries) content available on this platform with music in the background. This being haram in Islam, this app makes it... Moubah
demo.mp4
Download the app : 🍏 Apple (or for M1) | 🪟 Windows | 🐧 Linux
Windows | Mac (Intel) | Mac (Apple silicon) | Linux |
---|---|---|---|
✅ | 📆 | ✅ (Python 3.8.10 required) | ❌ |
✅ Supported | 📆 Not tested yet | ❌ Not support plannned yet
Use the --recursive
option because of the git submodule:
git clone git@github.com:karim-bouchez/moubah.git --recursive
Install npm packages:
npm install
Install the music remover server:
cd music-remover
... then follow the "🔧 Setup" section here
npm run dev
npm run dist
no such file or directory ... protobuf/main.proto
onnpm run dev
-> run:git submodule update --init
- Blank screen with:
electron: Failed to load URL: http://localhost:3000/ with error: ERR_CONNECTION_REFUSED
onnpm run dev
-> refresh (Cmd + R)
See the to-do list for more informations on the coming fix/feat
This project is licensed under the AGPL-3.0 license - see the LICENSE file for details.