Skip to content
/ moubah Public

Desktop application to play YouTube videos without background music

License

Notifications You must be signed in to change notification settings

itkho/moubah

Repository files navigation

(logo) Moubah


ℹ️ Descritpion

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


📚 Tech Stack

Electron.js TypeScript React Tailwind CSS NodeJS Vite gRPC GitHub Actions


🗺 Architecture diagram

Moubah architecture diagram


💻 Supported OS

Windows Mac (Intel) Mac (Apple silicon) Linux
📆 ✅ (Python 3.8.10 required)

✅ Supported | 📆 Not tested yet | ❌ Not support plannned yet


🔧 Setup

📥 Download the source code

Use the --recursive option because of the git submodule:

git clone git@github.com:karim-bouchez/moubah.git --recursive

🔗 Install dependencies

Install npm packages:

npm install

Install the music remover server:

cd music-remover

... then follow the "🔧 Setup" section here


☄️ Run

npm run dev

📦 Create an executable file

npm run dist

🛠 Troubleshooting

  • no such file or directory ... protobuf/main.proto on npm run dev -> run: git submodule update --init
  • Blank screen with: electron: Failed to load URL: http://localhost:3000/ with error: ERR_CONNECTION_REFUSED on npm run dev -> refresh (Cmd + R)

🎯 To-do list

See the to-do list for more informations on the coming fix/feat


📜 License

This project is licensed under the AGPL-3.0 license - see the LICENSE file for details.