👋 Welcome to MediaFetcher! This little app aims to make downloading media easier using the power of yt-dlp.
MediaFetcher provides a user-friendly interface to download video and audio from various websites supported by yt-dlp. It allows users to easily select formats, resolutions, and other options without needing to use the command line directly. You can check supported websites here.
- URL Input: Simple text box to paste the URL of the media you want to download.
- Media Type Selection: Choose between downloading:
- Video with Audio (default)
- Video Only
- Audio Only
- Format Selection:
- Video Formats: mp4, webm, mkv
- Audio Formats: mp3, m4a, opus, aac, flac, wav, vorbis
- Resolution Selection: Choose video resolution from 144p up to 8K, including "Best" and "Worst" options.
- Playlist Handling: Option to download entire playlists or just the single video specified by the URL.
- Force Format: Option to force recoding or merging into the selected output format (requires
ffmpegto be available toyt-dlp). - Custom Output:
- Specify a custom output directory.
- Define a custom filename template using
yt-dlpsyntax (default:%(title)s.%(ext)s).
- Download Management:
- View real-time download progress and speed.
- See detailed logs from
yt-dlp. - Cancel ongoing downloads.
- Error Handling: Configure how download errors are handled (None, Ignore Errors, Abort on Errors).
- Settings Persistence: Saves configuration (output path, filename template, error handling) to a
settings.jsonfile. - Preferred Metadata Language: Set a preferred language code (e.g.,
vi,en) for YouTube titles/descriptions in Settings. - Custom Arguments: Add extra command-line arguments for
yt-dlpvia the Settings page for advanced use cases.
Both provided download versions are self-contained and include the necessary .NET runtime. No separate .NET installation is required for either version.
The difference lies in the inclusion of external tools:
-
📦 Packed Version
- Download the "Packed" version (
*Packed.zip) from the Releases page. - Includes the application AND the
yt-dlpandffmpegexecutables. Ready to run out of the box.
- Download the "Packed" version (
-
💨 No Dependencies Version
- Download the "NoLibrary" version (
*NoLibrary.zip)from the Releases page. - Includes the application but does NOT include
yt-dlporffmpeg. - Requires
yt-dlp: You must provide your ownyt-dlpexecutable. Place it in the application folder or ensure it's in your system's PATH. Download from the official yt-dlp GitHub repository. - Requires
ffmpeg(Optional but really recommended): You should provide your ownffmpegexecutable for best results (merging, format conversion). Place it withyt-dlpor ensure it's in PATH. Download from here. - Choose this if you prefer to install
yt-dlpandffmpegyourself.
- Download the "NoLibrary" version (
- Make sure you have the necessary requirements installed (see Requirements section), or use the "Packed" version from Releases.
- Run the
MediaFetcherexecutable. - Paste the URL of the media you want to download into the URL box.
- Select the desired Media Type, Format, and Resolution.
- Check/uncheck Playlist and Force Format options as needed.
- Click the "Download" button.
- Monitor progress and logs in the text area below.
- Use the "Cancel" button to stop a download.
- Navigate to the "Settings" page (⚙️ gear icon) to configure the output directory, filename template, preferred language, custom arguments, and error handling. Click "Save Settings" to apply changes.
- Manual Dependency Installation: Does not automatically download or install
yt-dlporffmpeg(unless using the Packed release version). - No Playlist Item Selection: When downloading a playlist, the entire playlist is downloaded; there is no option to select specific videos from it.
- Limited Customization: Lacks basic options like theme selection.
- Manual Dependency Management: Does not manage
yt-dlp/ffmpegupdates or versions; users must handle this themselves. - Missing Advanced Options: Does not include many advanced
yt-dlpfeatures like SponsorBlock integration, etc., unless added via Custom Arguments.
Found a bug or have a suggestion? Feel free to open an issue on GitHub!
Please Note: This application was developed as a school project, with significant help from AI tools during development. It serves as a learning exercise!

