A simple WPF application for searching, downloading, and playing videos and audio from YouTube. It uses yt-dlp and mpv as external tools.
- 🔎 Search videos by keywords (up to 30 results)
- 📥 Download video or audio only (MP3)
▶️ Play video or audio viampv- 📂 Open the downloads folder
- 📊 Tabular list with column sorting
- yt-dlp — for fetching metadata and downloading videos
- ffmpeg — required for conversion during downloads
- mpv — for playing video and audio
All .exe files must be in the same folder as the application's executable file:
/ZV Player/
├─ yt-dlp.exe
├─ ffmpeg.exe
├─ mpv.exe
└─ ZV Player.exe
The project uses standard WPF libraries. No external packages are required.
ZV Player/
├── Models/
│ └── YouTubeVideo.cs # Data model for a YouTube video
├── Services/
│ ├── SearchService.cs # Wrapper around yt-dlp for search
│ └── VideoService.cs # Downloading, playback, and utilities
├── MainWindow.xaml # XAML interface of the main window
├── MainWindow.xaml.cs # Interaction logic and event handlers
└── README.md
- Search — when a query is entered,
yt-dlp ytsearch30:"..." --print-jsonis run, the results are parsed, and anObservableCollectionis filled. - Download —
yt-dlpdownloads the video or audio, with the path specified asdownloads/Title.%(ext)s. - Playback —
mpv.exeis launched with the required URL and flags. - Sorting — implemented through
CollectionView, supported by clicking column headers.
Open the project in Visual Studio (Windows), project type — WPF App (.NET).
- Make sure that
yt-dlp,ffmpeg, andmpvare located next to the.exe. They are required for the application to function. - The downloads folder is created automatically in
./downloads/.
📌 Created with ❤️ for local use.
