Overview
Click here to try the live demo.
mp3-react-app is a simple React application that allows users to download MP3 files from YouTube links. The application also supports tagging the downloaded MP3 files with metadata (artist, album, track name) and organizing the files into a Plex-friendly structure. Additionally, it can acquire and download lyrics from a provided Genius URL.
Features
- Download MP3 files from YouTube links.
- Tag MP3 files with metadata: artist name, album name, track name.
- Organize downloaded files in a Plex-friendly structure.
- Optional lyrics acquisition and downloading from Genius.
Usage
Enter the YouTube link: Paste the URL of the YouTube video you want to download.
-
Artist Name
-
Album Name
-
Track Name
-
Optional Lyrics: Enter the Genius URL for the lyrics if available.
Download: Click the βDownloadβ button to start the process.
Output Structure: The downloaded MP3 files will be organized in the following Plex-friendly structure:
Artist Name
βββ Album Name
βββ Track Name.mp3
βββ Track Name.txt (optional)
βββ Track Name.webp (YouTube thumbnail for album cover)
Development
Installation
Prerequisites
- Node.js
- npm or yarn
- Python (for the backend)
- Flask (for the backend)
- ffmpeg (for YouTube to MP3 conversion)
- Docker (Optional but recommended for gunicorn deployment)
Steps
Testing
-
Clone the Repository
1 2
git clone https://github.com/JakeTurner616/mp3-react-app cd mp3-react-app
-
Install Frontend Dependencies
1 2 3
npm install # or yarn install
-
Build and deploy for testing
1 2
npm run start # start the dev server
-
Install Backend for testing
1 2 3 4 5 6 7 8 9 10 11 12
# Create a virtual environment python -m venv venv # Activate the virtual environment # On Windows: venv\Scripts\activate # On macOS/Linux: source venv/bin/activate # Install dependencies from requirements.txt pip install -r requirements.txt
-
Run the Backend dev server for testing (donβt forward or proxy this!)
1 2
python backend.py (requires ffmpeg) # start the flask dev server manually
Deployment
-
Build and deploy static site with backend domain set in .env
1 2
npm run build # build the production assets
-
Install Backend for deployment
1 2 3
docker build -t mp3-react-app . docker run -p 50616:50616 mp3-react-app # now we can forward and/or proxy the API backend
License
This project is licensed under the GNU GPL 3.0 License. See the LICENSE file for details.
Edit this pageβs markdown on github.