Revise README with improved structure and details
Updated the README to use tables for executable formats, added new formats for Linux and macOS, expanded troubleshooting section, and revised the project folder structure for clarity. Also replaced the star history chart with a new source and improved its presentation.
This commit is contained in:
@@ -71,17 +71,31 @@ ytsage
|
|||||||
|
|
||||||
### 📦 Pre-built Executables
|
### 📦 Pre-built Executables
|
||||||
|
|
||||||
- 🪟 **Windows:**
|
#### 🪟 Windows
|
||||||
- <code style="background-color: #333842; color: #C9D1D9; padding: 3px 6px; border-radius: 6px; font-family: monospace;">YTSage-v<version>.exe</code> (Standard installer)
|
|
||||||
- <code style="background-color: #333842; color: #C9D1D9; padding: 3px 6px; border-radius: 6px; font-family: monospace;">YTSage-v<version>-ffmpeg.exe</code> (With FFmpeg bundled)
|
| Format | Description |
|
||||||
- <code style="background-color: #333842; color: #C9D1D9; padding: 3px 6px; border-radius: 6px; font-family: monospace;">YTSage-v<version>-portable</code> (Portable version, no installation required)
|
|--------|-------------|
|
||||||
- <code style="background-color: #333842; color: #C9D1D9; padding: 3px 6px; border-radius: 6px; font-family: monospace;">YTSage-v<version>-ffmpeg-portable.zip</code> (Portable with FFmpeg, zipped)
|
| `YTSage-v<version>.exe` | Standard installer |
|
||||||
- 🐧 **Linux:**
|
| `YTSage-v<version>-ffmpeg.exe` | With FFmpeg bundled |
|
||||||
- <code style="background-color: #333842; color: #C9D1D9; padding: 3px 6px; border-radius: 6px; font-family: monospace;">YTSage-v<version>-amd64.deb</code> (Debian package)
|
| `YTSage-v<version>-portable` | Portable version, no installation required |
|
||||||
- <code style="background-color: #333842; color: #C9D1D9; padding: 3px 6px; border-radius: 6px; font-family: monospace;">YTSage-v<version>-x86_64.AppImage</code> (AppImage, portable)
|
| `YTSage-v<version>-ffmpeg-portable.zip` | Portable with FFmpeg, zipped |
|
||||||
- 🍎 **macOS:**
|
|
||||||
- <code style="background-color: #333842; color: #C9D1D9; padding: 3px 6px; border-radius: 6px; font-family: monospace;">YTSage-v<version>-macOS.zip</code> (Zipped application)
|
#### 🐧 Linux
|
||||||
- <code style="background-color: #333842; color: #C9D1D9; padding: 3px 6px; border-radius: 6px; font-family: monospace;">YTSage-v<version>.dmg</code> (Disk image installer)
|
|
||||||
|
| Format | Description |
|
||||||
|
|--------|-------------|
|
||||||
|
| `YTSage-v<version>-amd64.deb` | Debian package |
|
||||||
|
| `YTSage-v<version>-x86_64.AppImage` | AppImage, portable |
|
||||||
|
| `YTSage-v<version>-x86_64.rpm` | RPM package |
|
||||||
|
|
||||||
|
#### 🍎 macOS
|
||||||
|
|
||||||
|
| Format | Description |
|
||||||
|
|--------|-------------|
|
||||||
|
| `YTSage-v<version>-arm64.app.zip` | Zipped application for ARM64 |
|
||||||
|
| `YTSage-v<version>-arm64.dmg` | Disk image installer for ARM64 |
|
||||||
|
| `YTSage-v<version>-x64.app.zip` | Zipped application for x64 |
|
||||||
|
| `YTSage-v<version>-x64.dmg` | Disk image installer for x64 |
|
||||||
|
|
||||||
> [👉 Download Latest Release](https://github.com/oop7/YTSage/releases/latest)
|
> [👉 Download Latest Release](https://github.com/oop7/YTSage/releases/latest)
|
||||||
|
|
||||||
@@ -212,6 +226,16 @@ python main.py
|
|||||||
|
|
||||||
- **Format table not displaying:** Update yt-dlp to the latest version.
|
- **Format table not displaying:** Update yt-dlp to the latest version.
|
||||||
- **Download fails:** Check your internet connection and ensure the video is available.
|
- **Download fails:** Check your internet connection and ensure the video is available.
|
||||||
|
- **Specific download errors:**
|
||||||
|
- **Private videos:** Use cookie authentication to access private content.
|
||||||
|
- **Age-restricted content:** Login to YouTube account to view age-restricted videos.
|
||||||
|
- **Geo-blocked videos:** Consider using a VPN to bypass regional restrictions.
|
||||||
|
- **Removed/deleted videos:** Video is no longer available on YouTube.
|
||||||
|
- **Live streams:** Live streams cannot be downloaded; wait for the stream to end.
|
||||||
|
- **Network errors:** Check your internet connection and try again.
|
||||||
|
- **Invalid URLs:** Ensure the URL is correct and from a supported platform.
|
||||||
|
- **Premium content:** Requires YouTube Premium membership.
|
||||||
|
- **Copyright blocks:** Content is blocked due to copyright restrictions.
|
||||||
- **Separate video and audio files after download:** This happens when FFmpeg is missing or not detected. YTSage requires FFmpeg to merge high-quality video and audio streams.
|
- **Separate video and audio files after download:** This happens when FFmpeg is missing or not detected. YTSage requires FFmpeg to merge high-quality video and audio streams.
|
||||||
- **Solution:** Ensure FFmpeg is installed and accessible in your system's PATH. For Windows users, the easiest option is to download the `YTSage-v<version>-ffmpeg.exe` file, which comes bundled with FFmpeg.
|
- **Solution:** Ensure FFmpeg is installed and accessible in your system's PATH. For Windows users, the easiest option is to download the `YTSage-v<version>-ffmpeg.exe` file, which comes bundled with FFmpeg.
|
||||||
|
|
||||||
@@ -226,7 +250,7 @@ Some antivirus software may flag the `.exe` files as false positives. This is a
|
|||||||
|
|
||||||
**Safe alternatives:**
|
**Safe alternatives:**
|
||||||
- ✅ **Use pip installation:** `pip install ytsage` (recommended)
|
- ✅ **Use pip installation:** `pip install ytsage` (recommended)
|
||||||
- ✅ **Build from source**
|
- ✅ **Build from source**: by following this [guide](.github/CI_CD_README.md)
|
||||||
- ✅ **Whitelist the application** in your antivirus software
|
- ✅ **Whitelist the application** in your antivirus software
|
||||||
|
|
||||||
#### 🍎 macOS: "App is damaged and can’t be opened"
|
#### 🍎 macOS: "App is damaged and can’t be opened"
|
||||||
@@ -280,45 +304,61 @@ This document describes the organized folder structure of YTSage.
|
|||||||
### 📁 Project Structure
|
### 📁 Project Structure
|
||||||
|
|
||||||
```
|
```
|
||||||
YTSage-main/
|
YTSage/
|
||||||
├── 📁 assets/ # Static assets and resources
|
├── 📁 .github/ # GitHub configuration
|
||||||
│ ├── 📁 Icon/ # Application icons
|
│ ├── 📄 CI_CD_README.md # CI/CD documentation
|
||||||
|
│ ├── 📁 ISSUE_TEMPLATE/ # Issue templates
|
||||||
|
│ │ └── 🐛-bug-report.md # Bug report template
|
||||||
|
│ └── 📁 workflows/ # GitHub Actions workflows
|
||||||
|
│ ├── build-linux.yml # Linux build workflow
|
||||||
|
│ ├── build-macos.yml # macOS build workflow
|
||||||
|
│ └── build-windows.yml # Windows build workflow
|
||||||
|
├── .gitignore # Git ignore rules
|
||||||
|
├── 📁 assets/ # Static assets and resources
|
||||||
|
│ ├── 📁 branding/ # Branding assets
|
||||||
|
│ │ ├── 📁 icons/ # Application icons
|
||||||
|
│ │ │ ├── icon.icns # macOS icon
|
||||||
|
│ │ │ ├── icon.png # PNG icon
|
||||||
|
│ │ │ └── YTSage.ico # Windows icon
|
||||||
|
│ │ └── 📁 screenshots/ # Screenshots for documentation
|
||||||
|
│ │ ├── audio_format.png
|
||||||
|
│ │ ├── main.png
|
||||||
|
│ │ ├── playlist.png
|
||||||
|
│ │ └── subtitle_options.png
|
||||||
|
│ ├── 📁 Icon/ # Legacy icon directory
|
||||||
│ │ └── icon.png
|
│ │ └── icon.png
|
||||||
│ └── 📁 sound/ # Audio files
|
│ └── 📁 sound/ # Audio files
|
||||||
│ └── notification.mp3
|
│ └── notification.mp3
|
||||||
│
|
|
||||||
├── 📁 src/ # Source code
|
|
||||||
│ ├── 📁 core/ # Core business logic
|
|
||||||
│ │ ├── __init__.py # Core package init
|
|
||||||
│ │ ├── ytsage_downloader.py # Download functionality
|
|
||||||
│ │ ├── ytsage_ffmpeg.py # FFmpeg integration
|
|
||||||
│ │ ├── ytsage_style.py # UI styling
|
|
||||||
│ │ ├── ytsage_utils.py # Utility functions
|
|
||||||
│ │ └── ytsage_yt_dlp.py # yt-dlp integration
|
|
||||||
│ │
|
|
||||||
│ ├── 📁 gui/ # User interface components
|
|
||||||
│ │ ├── 📁 dialogs/ # Dialog classes
|
|
||||||
│ │ │ ├── __init__.py # Dialogs package init (re-exports all)
|
|
||||||
│ │ │ ├── ytsage_dialogs_base.py # Basic dialogs (Log, About)
|
|
||||||
│ │ │ ├── ytsage_dialogs_custom.py # Custom functionality dialogs
|
|
||||||
│ │ │ ├── ytsage_dialogs_ffmpeg.py # FFmpeg-related dialogs
|
|
||||||
│ │ │ ├── ytsage_dialogs_selection.py # Selection dialogs
|
|
||||||
│ │ │ ├── ytsage_dialogs_settings.py # Settings dialogs
|
|
||||||
│ │ │ └── ytsage_dialogs_update.py # Update dialogs
|
|
||||||
│ │ │
|
|
||||||
│ │ ├── __init__.py # GUI package init
|
|
||||||
│ │ ├── ytsage_gui_dialogs.py # Dialog aggregator (backward compatibility)
|
|
||||||
│ │ ├── ytsage_gui_format_table.py # Format table functionality
|
|
||||||
│ │ ├── ytsage_gui_main.py # Main application window
|
|
||||||
│ │ └── ytsage_gui_video_info.py # Video information display
|
|
||||||
│ │
|
|
||||||
│ └── __init__.py # Main package init
|
|
||||||
│
|
|
||||||
├── 📄 main.py # Application entry point
|
|
||||||
├── 📄 requirements.txt # Python dependencies
|
|
||||||
├── 📄 README.md # Project documentation
|
|
||||||
├── 📄 LICENSE # License file
|
├── 📄 LICENSE # License file
|
||||||
└── 📄 .gitignore # Git ignore rules
|
├── 📄 main.py # Application entry point
|
||||||
|
├── 📄 README.md # Project documentation
|
||||||
|
├── 📄 requirements.txt # Python dependencies
|
||||||
|
└── 📁 src/ # Source code
|
||||||
|
├── 📄 __init__.py # Main package init
|
||||||
|
├── 📁 core/ # Core business logic
|
||||||
|
│ ├── 📄 __init__.py # Core package init
|
||||||
|
│ ├── 📄 ytsage_downloader.py # Download functionality
|
||||||
|
│ ├── 📄 ytsage_ffmpeg.py # FFmpeg integration
|
||||||
|
│ ├── 📄 ytsage_logging.py # Logging utilities
|
||||||
|
│ ├── 📄 ytsage_style.py # UI styling
|
||||||
|
│ ├── 📄 ytsage_utils.py # Utility functions
|
||||||
|
│ └── 📄 ytsage_yt_dlp.py # yt-dlp integration
|
||||||
|
├── 📁 gui/ # User interface components
|
||||||
|
│ ├── 📄 __init__.py # GUI package init
|
||||||
|
│ ├── 📄 ytsage_gui_format_table.py # Format table functionality
|
||||||
|
│ ├── 📄 ytsage_gui_main.py # Main application window
|
||||||
|
│ ├── 📄 ytsage_gui_video_info.py # Video information display
|
||||||
|
│ └── 📁 ytsage_gui_dialogs/ # Dialog classes
|
||||||
|
│ ├── 📄 __init__.py # Dialogs package init
|
||||||
|
│ ├── 📄 ytsage_dialogs_base.py # Basic dialogs
|
||||||
|
│ ├── 📄 ytsage_dialogs_custom.py # Custom functionality dialogs
|
||||||
|
│ ├── 📄 ytsage_dialogs_ffmpeg.py # FFmpeg-related dialogs
|
||||||
|
│ ├── 📄 ytsage_dialogs_selection.py # Selection dialogs
|
||||||
|
│ ├── 📄 ytsage_dialogs_settings.py # Settings dialogs
|
||||||
|
│ └── 📄 ytsage_dialogs_update.py # Update dialogs
|
||||||
|
└── 📁 utils/ # Utility modules
|
||||||
|
├── 📄 __init__.py # Utils package init
|
||||||
|
└── 📄 ytsage_constants.py # Application constants
|
||||||
```
|
```
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
@@ -327,11 +367,14 @@ YTSage-main/
|
|||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
<a href="https://next.ossinsight.io/widgets/official/analyze-repo-stars-history?repo_id=896163475" target="_blank" style="display: block" align="center">
|
## Star History
|
||||||
<picture>
|
|
||||||
<source media="(prefers-color-scheme: dark)" srcset="https://next.ossinsight.io/widgets/official/analyze-repo-stars-history/thumbnail.png?repo_id=896163475&image_size=auto&color_scheme=dark" width="721" height="auto">
|
<a href="https://www.star-history.com/#oop7/YTSage&Date">
|
||||||
<img alt="Star History of oop7/YTSage" src="https://next.ossinsight.io/widgets/official/analyze-repo-stars-history/thumbnail.png?repo_id=896163475&image_size=auto&color_scheme=light" width="721" height="auto">
|
<picture>
|
||||||
</picture>
|
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=oop7/YTSage&type=Date&theme=dark" />
|
||||||
|
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=oop7/YTSage&type=Date" />
|
||||||
|
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=oop7/YTSage&type=Date" />
|
||||||
|
</picture>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user