A fast, modern desktop application for downloading media from YouTube and various online platforms as MP3 or MP4 files, built on the powerful yt-dlp command-line engine. Developed in Java with a beautiful, responsive local Web UI.
This project is specifically designed with features to ensure robust and seamless operation for NetFree filtered networks.
-
Universal Browser Extension (New in v3.1.0): The companion browser extension has been expanded to sniff and download video/audio media from almost any site across the web, going beyond YouTube.
-
Extension Customization & Cookies (New in v3.1.0): Adjust the look of the download button directly under YouTube videos (Classic, Official YT, or Floating) and export Netscape-compatible cookies with a single click.
-
Advanced Subtitle Integration (New in v3.1.0): Download video subtitles as selectable embedded tracks (CC), burn/hardcode them directly into the video stream, or save them as separate
.srtfiles. -
Advanced Playlist Management: Easily select specific tracks from large playlists using a Live Search bar and sticky action controls.
-
Bilingual UI: Fully translated interface supporting both English and Hebrew (with automatic RTL/LTR layout switching).
-
Customizable Interface: Change background colors, set custom background images (saved locally via IndexedDB), and adjust UI scaling.
-
Browser Integration: Launch the application and initiate downloads directly from your browser using a custom protocol (
nfmp3downloader://). -
Ultimate NetFree Compatibility & Stability:
- Bypasses certificate validation (
--no-check-certificates) to work seamlessly with NetFree's filtering. - Fallback Metadata: Intelligently fetches video titles and thumbnails safely even if the main download is initially blocked.
- Robust background process cleanup ensuring no hanging
ffmpegoryt-dlptasks remain active on cancellation.
- Bypasses certificate validation (
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: Clone the repository using Git:
git clone https://github.com/mps435/NFmp3Downloader.git cd NFmp3Downloader -
Binaries (yt-dlp & ffmpeg): For a quick and easy build, this repository includes the required
yt-dlp.exeandffmpeg.exebinaries in thesrc/main/resources/bindirectory.
For security reasons, you can download these files yourself from their official sources:
- 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 (the
ffmpeg-release-essentials.7zbuild is recommended)
- yt-dlp.exe: Official GitHub Releases (download
-
Build the Executable JAR using Maven: Compile and package the code into a single, executable "fat JAR" in the
targetdirectory:mvn clean package
-
Create the Self-Contained Application Image: Use
jpackageto bundle the JAR with a minimal Java runtime. This creates a directory (release\NF Downloader) 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 "NF Downloader" --main-class com.mps.App --main-jar NFmp3Downloader-3.1.0.jar --java-options "-Dfile.encoding=UTF-8" --icon icon.ico --app-version 3.1.0 --vendor "mps" --copyright "Copyright (c) 2026 mps