update README
This commit is contained in:
@@ -1,151 +1,198 @@
|
||||
# YTSage
|
||||
<div align="center">
|
||||
|
||||
A modern YouTube downloader with a clean PySide6 interface. Download videos in any quality, extract audio, fetch subtitles (including auto-generated), and view video metadata. Built with yt-dlp for reliable performance.
|
||||
# 🎥 YTSage
|
||||
|
||||
## Screenshots
|
||||
<img src="https://github.com/user-attachments/assets/04959c77-695b-4a69-b8fc-7103fe530236" width="800" alt="YTSage Interface"/>
|
||||
|
||||
### Main Interface
|
||||
[](https://badge.fury.io/py/YTSage)
|
||||
[](https://opensource.org/licenses/MIT)
|
||||
[](https://www.python.org/downloads/)
|
||||
[](https://pepy.tech/project/ytsage)
|
||||
|
||||

|
||||
**A modern YouTube downloader with a clean PySide6 interface.**
|
||||
Download videos in any quality, extract audio, fetch subtitles, and more.
|
||||
|
||||
*Main interface with video metadata and thumbnail preview*
|
||||
[Installation](#installation) •
|
||||
[Features](#features) •
|
||||
[Usage](#usage) •
|
||||
[Screenshots](#screenshots) •
|
||||
[Contributing](#contributing)
|
||||
|
||||
### Playlist download support with auto-detection
|
||||
</div>
|
||||
|
||||

|
||||
---
|
||||
|
||||
*Playlist download with auto-detection*
|
||||
### Audio Format Selection
|
||||
## ✨ Features
|
||||
|
||||

|
||||
<div align="center">
|
||||
|
||||
*Smart format selection with quality options*
|
||||
| Core Features | Advanced Features | Extra Features |
|
||||
|--------------|-------------------|----------------|
|
||||
| 🎥 Smart Video Quality | 🚫 SponsorBlock Integration | 💾 Save Download Path |
|
||||
| 🎵 Audio Extraction | 📝 Subtitle Support & Filtering | 🔄 Auto-Updates |
|
||||
| 📊 Real-time Progress | ⚙️ Custom Commands | 🛠️ FFmpeg Tools |
|
||||
| 📋 Playlist Support | 🖼️ Thumbnail Management | ⚠️ Error Handling |
|
||||
|
||||
### Subtitle Options
|
||||
</div>
|
||||
|
||||

|
||||
## 🚀 Installation
|
||||
|
||||
*Support for both manual and auto-generated subtitles*
|
||||
|
||||
## Features
|
||||
|
||||
- 🎥 Smart video quality selection with automatic audio merging
|
||||
- 🎵 Audio-only extraction
|
||||
- 📝 Manual and auto-generated subtitle support with language filtering
|
||||
- ℹ️ Video metadata display (views, upload date, duration)
|
||||
- 🖼️ Thumbnail preview
|
||||
- 🎨 Clean, modern PySide6 interface
|
||||
- 🚀 Built on yt-dlp for robust downloading
|
||||
- ⏯️ Download control (pause, resume, and cancel)
|
||||
- 📊 Real-time progress tracking (speed, ETA, percentage)
|
||||
- 🖼️ Save Thumbnail
|
||||
- ⚙️ Custom yt-dlp command support with real-time output
|
||||
- 📋 Playlist download support with auto-detection
|
||||
- 💾 Save download path memory
|
||||
- 🔄 One-click yt-dlp updater
|
||||
- ⚠️ User-friendly error messages
|
||||
- 🛠️ FFmpeg installation checker and guide
|
||||
- 📎 Quick URL paste button
|
||||
- 🎯 Smart format filtering (Video/Audio)
|
||||
|
||||
## Download
|
||||
|
||||
You can download the latest executable from the [Releases](https://github.com/oop7/YTSage/releases) page.
|
||||
|
||||
### Pre-built Executables
|
||||
- Windows: `YTSage.exe`
|
||||
- macOS: `YTSage.dmg`
|
||||
- Linux: `YTSage.AppImage`
|
||||
- No installation required - just download and run!
|
||||
|
||||
### PyPI Package
|
||||
You can also install YTSage directly from PyPI:
|
||||
### Quick Install (Recommended)
|
||||
```bash
|
||||
pip install YTSage
|
||||
```
|
||||
|
||||
|
||||
### Installation
|
||||
|
||||
1. Clone the repository:
|
||||
```bash
|
||||
# Run the application
|
||||
ytsage
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>📦 Other Installation Methods</summary>
|
||||
|
||||
### Pre-built Executables
|
||||
- 🪟 Windows: `YTSage.exe`
|
||||
- 🍎 macOS: `YTSage.dmg`
|
||||
- 🐧 Linux: `YTSage.AppImage`
|
||||
|
||||
### Manual Installation
|
||||
```bash
|
||||
# Clone repository
|
||||
git clone https://github.com/oop7/YTSage.git
|
||||
|
||||
# Navigate to directory
|
||||
cd YTSage
|
||||
```
|
||||
2. Install the required dependencies:
|
||||
```bash
|
||||
|
||||
# Install dependencies
|
||||
pip install -r requirements.txt
|
||||
|
||||
# Run application
|
||||
python main.py
|
||||
```
|
||||
3. Run the application:
|
||||
```bash
|
||||
python YTSage.py
|
||||
</details>
|
||||
|
||||
## 📸 Screenshots
|
||||
|
||||
<div align="center">
|
||||
<table>
|
||||
<tr>
|
||||
<td><img src="https://github.com/user-attachments/assets/04959c77-695b-4a69-b8fc-7103fe530236" alt="Main Interface" width="400"/></td>
|
||||
<td><img src="https://github.com/user-attachments/assets/537b8553-9657-42b2-a452-051c4cb2e32a" alt="Playlist Download" width="400"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><em>Main Interface</em></td>
|
||||
<td align="center"><em>Playlist Download</em></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="https://github.com/user-attachments/assets/51a6a613-6c97-4581-b728-38c91c0b2d24" alt="Audio Format" width="400"/></td>
|
||||
<td><img src="https://github.com/user-attachments/assets/4e8c686f-98e2-435a-add8-758e317b56fe" alt="Subtitle Options" width="400"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><em>Audio Format Selection with Save Thumbnail</em></td>
|
||||
<td align="center"><em>Subtitle Options merged with Remove Sponsor Segments</em></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
## 📖 Usage
|
||||
|
||||
<details>
|
||||
<summary>🎯 Basic Usage</summary>
|
||||
|
||||
1. **Launch YTSage**
|
||||
2. **Paste YouTube URL** (or use "Paste URL" button)
|
||||
3. **Click "Analyze"**
|
||||
4. **Select Format:**
|
||||
- `Video` for video downloads
|
||||
- `Audio Only` for audio extraction
|
||||
5. **Choose Options:**
|
||||
- Enable subtitles & select language
|
||||
- Enable subtitle embedding
|
||||
- Save thumbnail
|
||||
- Remove sponsor segments
|
||||
6. **Select Output Directory**
|
||||
7. **Click "Download"**
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>📋 Playlist Download</summary>
|
||||
|
||||
1. **Paste Playlist URL**
|
||||
2. **Click "Analyze"**
|
||||
3. **Select Best Quality**
|
||||
4. **Click "Download"**
|
||||
|
||||
> 💡 The application automatically handles the download queue
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>⚙️ Advanced Options</summary>
|
||||
|
||||
- **Quality Selection:** Choose highest resolution for best quality
|
||||
- **Subtitle Options:** Filter languages and embed into video
|
||||
- **SponsorBlock:** Automatically skip promotional content
|
||||
- **Custom Commands:** Access advanced yt-dlp features
|
||||
- **Output Directory:** Ensure sufficient storage space
|
||||
|
||||
</details>
|
||||
|
||||
## 🛠️ Requirements
|
||||
|
||||
```plaintext
|
||||
Python 3.7+
|
||||
PySide6
|
||||
yt-dlp
|
||||
Pillow
|
||||
requests
|
||||
FFmpeg
|
||||
packaging
|
||||
```
|
||||
|
||||
# Usage
|
||||
## 👥 Contributing
|
||||
|
||||
1. **Run the application**
|
||||
2. **Paste a YouTube URL** into the input field
|
||||
3. **Click "Analyze"** to load video information
|
||||
4. **Select your desired format**:
|
||||
- Choose **"Video"** for video downloads (will automatically merge with best audio)
|
||||
- Choose **"Audio Only"** for audio extraction
|
||||
5. **Enable subtitle download** if needed
|
||||
6. **Select the output directory**
|
||||
7. **Click "Download"** to start
|
||||
We welcome contributions! Here's how you can help:
|
||||
|
||||
---
|
||||
1. 🍴 Fork the repository
|
||||
2. 🌿 Create your feature branch:
|
||||
```bash
|
||||
git checkout -b feature/AmazingFeature
|
||||
```
|
||||
3. 💾 Commit your changes:
|
||||
```bash
|
||||
git commit -m 'Add some AmazingFeature'
|
||||
```
|
||||
4. 📤 Push to the branch:
|
||||
```bash
|
||||
git push origin feature/AmazingFeature
|
||||
```
|
||||
5. 🔄 Open a Pull Request
|
||||
|
||||
### Additional Steps for Playlist Download:
|
||||
|
||||
1. **Paste the Playlist URL**: Instead of a single video URL, paste the URL of the entire YouTube playlist into the input field.
|
||||
2. **Analyze the Playlist**: Click "Analyze" to load information for all videos in the playlist.
|
||||
3. **Select Best Quality**: Ensure that the best quality option is selected for both video and audio.
|
||||
4. **Download the Playlist**: Click "Download" to start downloading all videos in the playlist. The application should automatically handle the download queue.
|
||||
|
||||
---
|
||||
|
||||
### Note:
|
||||
- **Best Quality**: Always select the highest available resolution (e.g., 1080p, 4K) for video and the best audio format (e.g., 320kbps) for the best experience.
|
||||
- **Subtitle Download**: If you need subtitles, enable this option before starting the download.
|
||||
- **Output Directory**: Choose a directory with enough storage space, especially for large playlists.
|
||||
|
||||
By following these steps, you can efficiently download entire playlists in the best quality without encountering issues.
|
||||
|
||||
## Requirements
|
||||
|
||||
- Python 3.7+
|
||||
- PySide6
|
||||
- yt-dlp
|
||||
- Pillow
|
||||
- requests
|
||||
- FFmpeg
|
||||
- packaging
|
||||
|
||||
## Contributing
|
||||
|
||||
Contributions are welcome! Please feel free to submit a Pull Request.
|
||||
|
||||
1. Fork the repository
|
||||
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
|
||||
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
|
||||
4. Push to the branch (`git push origin feature/AmazingFeature`)
|
||||
5. Open a Pull Request
|
||||
|
||||
## License
|
||||
## 📜 License
|
||||
|
||||
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
||||
|
||||
## Acknowledgments
|
||||
## 🙏 Acknowledgments
|
||||
|
||||
- [yt-dlp](https://github.com/yt-dlp/yt-dlp) for the powerful downloading engine
|
||||
- [PySide6](https://en.wikipedia.org/wiki/PySide) for the GUI framework
|
||||
- [FFmpeg](https://ffmpeg.org/) for the audio and video processing
|
||||
- [Pillow](https://pypi.org/project/Pillow/) for the image processing
|
||||
- [requests](https://pypi.org/project/requests/) for the HTTP requests
|
||||
- [packaging](https://pypi.org/project/packaging/) for the package management
|
||||
- [PyInstaller](https://pypi.org/project/PyInstaller/) for the executable creation
|
||||
<div align="center">
|
||||
|
||||
## Disclaimer
|
||||
| Technology | Purpose |
|
||||
|------------|---------|
|
||||
| [yt-dlp](https://github.com/yt-dlp/yt-dlp) | Download Engine |
|
||||
| [PySide6](https://wiki.qt.io/Qt_for_Python) | GUI Framework |
|
||||
| [FFmpeg](https://ffmpeg.org/) | Media Processing |
|
||||
| [Pillow](https://python-pillow.org/) | Image Processing |
|
||||
|
||||
</div>
|
||||
|
||||
## ⚠️ Disclaimer
|
||||
|
||||
This tool is for personal use only. Please respect YouTube's terms of service and content creators' rights.
|
||||
|
||||
---
|
||||
|
||||
<div align="center">
|
||||
|
||||
Made with ❤️ by [oop7](https://github.com/oop7)
|
||||
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user