Note: The latest version is under development and we will try to make it close to the real ytdlnis. Also Keep knowing that the current version is outdated and full of bugs and we will work as much as we can to make it the best after the Android version.
A powerful desktop video/audio downloader powered by yt-dlp, ported from the popular YTDLnis Android app.
| Feature | Description |
|---|---|
| 🎵 Audio Downloads | Download audio in MP3, M4A, OPUS, FLAC, and more |
| 🎬 Video Downloads | Download videos in MP4, MKV, WebM with quality selection |
| 📋 Queue Management | Manage multiple downloads with pause/resume support |
| 📜 Download History | Track all your downloads with re-download capability |
| 🔧 Command Templates | Create custom yt-dlp commands for advanced users |
| 🍪 Cookie Support | Import cookies for authenticated downloads |
| 👁️ Observe Sources | Monitor channels/playlists for new content |
| 💻 Terminal Mode | Execute raw yt-dlp commands directly |
| 🎨 Material 3 UI | Modern, beautiful interface with dark mode |
- Java 21 - Download from Oracle or Adoptium
- yt-dlp - Install via:
# Windows (winget) winget install yt-dlp # Windows (pip) pip install yt-dlp # Linux sudo apt install yt-dlp # or use pip # macOS brew install yt-dlp
- FFmpeg (recommended) - For audio conversion and video merging
# Windows (winget) winget install FFmpeg # Linux sudo apt install ffmpeg # macOS brew install ffmpeg
# Clone the repository
git clone https://github.com/wizardcargo8080/ytdlnipc-desktop.git
cd ytdlnipc-desktop
# Run the application
./gradlew desktopApp:run # Linux/macOS
.\gradlew.bat desktopApp:run # Windows# Create a native distribution package
./gradlew desktopApp:packageDistributionForCurrentOSWe welcome contributions from the community! Here's how you can help:
- 🐛 Bug Fixes - Check open issues and help squash bugs
- 🔄 yt-dlp Updates - Keep command building in sync with yt-dlp changes
- 🎨 UI Improvements - Enhance the user interface and UX
- 📱 Feature Parity - Port remaining YTDLnis Android features
- 📖 Documentation - Improve docs and add usage guides
- 🌐 Translations - Help translate the app to other languages
- navigate to issues tab go to the issues tab in this repo.
- open new issue click on the green button with the text of "new issue".
- Implementation put your github's username in the first line in the description and the title write your request in this In our case contribution request.
- Submit submit the issue in the range of 1 day you will be in.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- Follow Kotlin coding conventions
- Use meaningful commit messages
- Add tests for new functionality
- Update documentation as needed
yt-dlp is actively developed with frequent updates. To ensure compatibility:
-
Update yt-dlp regularly:
yt-dlp -U # or pip install -U yt-dlp -
Check for breaking changes in yt-dlp releases
-
Report issues if downloads fail after yt-dlp updates
This project aims to maintain parity with the original YTDLnis Android app:
- 📢 Watch the main repo for new features
- 🔀 Help port new features to desktop
- 📝 Reference Android implementation for consistency
ytdlnis-desktop/
├── shared/ # Shared KMP module
│ └── src/commonMain/
│ ├── kotlin/ # Data models, utilities
│ └── sqldelight/ # Database schema
├── desktopApp/ # Desktop application
│ └── src/jvmMain/kotlin/
│ ├── platform/ # yt-dlp integration
│ └── ui/ # Compose Desktop UI
└── gradle/ # Gradle wrapper
This project is licensed under the MIT License - see the LICENSE file for details.
- YTDLnis - The original Android app by Denis Cerri
- yt-dlp - The powerful download engine
- JetBrains Compose - The UI framework
Feel free to put your ideas and discuss in our discord server
⭐ Star this repo if you find it useful!
Made with ❤️ by @wizardcargo8080