A simple desktop application for downloading YouTube videos as MP3 or MP4 files, built on the powerful yt-dlp command-line tool. The app is developed in Java with a local web UI.
This project is specifically designed with features to ensure smooth operation for NetFree users.
- Download Single Videos or Entire Playlists: Easily download any YouTube content.
- High-Quality MP3 Conversion: Converts videos to MP3 with embedded metadata and thumbnails.
- Multiple MP4 Resolutions: Download videos in various qualities, from 480p to the best available.
- Bilingual UI: Fully translated interface supporting both English and Hebrew.
- Browser Integration: Launch the application and initiate downloads directly from your browser using a custom protocol (
nfmp3downloader://). - NetFree Compatibility:
- All download commands bypass certificate validation (
--no-check-certificates) to work seamlessly with NetFree's filtering. - Includes an automatic self-update mechanism for
yt-dlpto resolve common format errors without manual intervention.
- All download commands bypass certificate validation (
- Download the latest installer from the Releases page.
- Install the application. The installer will register the necessary
nfmp3downloader://protocol. - A browser window will open with the UI. You can also launch it anytime from the Start Menu shortcut or by dragging the icon in the UI to your bookmarks bar.
- Paste a YouTube link and download.
If you want to build the project yourself, follow these steps.
- JDK 11 or newer (must include
jpackage). - Apache Maven.
- (For building the installer) Inno Setup.
-
Get the Source Code: The recommended way is to clone the repository using Git:
git clone https://github.com/mps435/NFmp3Downloader.git cd NFmp3DownloaderAlternatively, you can download the source code as a ZIP file from the main repository page (Code -> Download ZIP).
-
Binaries (yt-dlp & ffmpeg): For a quick and easy build, this repository includes the required
yt-dlp.exeandffmpeg.exebinaries in thesrc/main/resources/bindirectory.
However, for security reasons, you can download these files yourself from their official sources. To do this:
- Delete the existing
.exefiles fromsrc/main/resources/bin. - Download the latest versions from the links below and place them in this directory.
- yt-dlp.exe: Official GitHub Releases (download
yt-dlp.exe) - ffmpeg.exe: Gyan.dev (theffmpeg-release-essentials.7zbuild is recommended)
-
Build the Executable JAR using Maven: This command will compile the code and package it into a single, executable "fat JAR" in the
targetdirectory.mvn package
-
Create the Self-Contained Application Image: Use
jpackageto bundle the JAR with a minimal Java runtime. This creates a directory (release\NFmp3Downloader) containing an.exeand all necessary files, making the application independent of any installed Java on the user's machine. Run the following command from the project's root directory:jpackage --type app-image --dest release --input target --name NFmp3Downloader --main-class com.mps.App --main-jar NFmp3Downloader-1.0-SNAPSHOT.jar --java-options "-Dfile.encoding=UTF-8" --icon src/main/resources/icon.ico --app-version 2.2.1 --vendor "mps" --copyright "Copyright (c) 2025 mps"
-
(Optional) Build the Windows Installer: To create a user-friendly
setup.exethat also registers the customnfmp3downloader://protocol for browser integration, compile therun.issscript using Inno Setup. The script is configured to package the application image created in the previous step.
- The core download functionality is powered by the excellent yt-dlp project.
- FFmpeg is used for audio extraction and format processing.
- The application icon (
icon.ico) was created with the assistance of OpenAI's GPT model.
This tool is provided for educational purposes only. Downloading copyrighted content from YouTube may violate their Terms of Service and infringe on copyright laws in your country. Please respect the rights of content creators and use this tool responsibly. The developer assumes no liability for any misuse of this software.