ytsage 4.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
ytsage-4.0.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 oop7
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
ytsage-4.0.0/PKG-INFO ADDED
@@ -0,0 +1,236 @@
1
+ Metadata-Version: 2.2
2
+ Name: ytsage
3
+ Version: 4.0.0
4
+ Summary: Modern YouTube downloader with a clean PySide6 interface.
5
+ Home-page: https://github.com/oop7/YTSage
6
+ Author: oop7
7
+ Author-email: oop7 <oop7_support@proton.me>
8
+ License: MIT License
9
+ Project-URL: Homepage, https://github.com/oop7/YTSage
10
+ Project-URL: Bug-Tracker, https://github.com/oop7/YTSage/issues
11
+ Project-URL: Reddit, https://www.reddit.com/r/NO-N_A_M_E/
12
+ Keywords: youtube,downloader,video,audio,PySide6,yt-dlp,GUI
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.7
16
+ Classifier: Programming Language :: Python :: 3.8
17
+ Classifier: Programming Language :: Python :: 3.9
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: License :: OSI Approved :: MIT License
21
+ Classifier: Operating System :: OS Independent
22
+ Classifier: Topic :: Multimedia :: Video
23
+ Classifier: Topic :: Multimedia :: Sound/Audio
24
+ Classifier: Topic :: Utilities
25
+ Classifier: Intended Audience :: End Users/Desktop
26
+ Classifier: Environment :: X11 Applications :: Qt
27
+ Requires-Python: >=3.7
28
+ Description-Content-Type: text/markdown
29
+ License-File: LICENSE
30
+ Requires-Dist: yt-dlp
31
+ Requires-Dist: PySide6
32
+ Requires-Dist: requests
33
+ Requires-Dist: Pillow
34
+ Requires-Dist: packaging
35
+ Dynamic: author
36
+ Dynamic: home-page
37
+ Dynamic: requires-python
38
+
39
+ <div align="center">
40
+
41
+ # 🎥 YTSage
42
+
43
+ <img src="https://github.com/user-attachments/assets/9566f446-458a-4932-8c5a-7aec0e253a3d" width="800" alt="YTSage Interface"/>
44
+
45
+ [![PyPI version](https://badge.fury.io/py/YTSage.svg)](https://badge.fury.io/py/YTSage)
46
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
47
+ [![Python 3.7+](https://img.shields.io/badge/python-3.7+-blue.svg)](https://www.python.org/downloads/)
48
+ [![Downloads](https://pepy.tech/badge/ytsage)](https://pepy.tech/project/ytsage)
49
+
50
+ **A modern YouTube downloader with a clean PySide6 interface.**
51
+ Download videos in any quality, extract audio, fetch subtitles, and more.
52
+
53
+ [Installation](#installation) •
54
+ [Features](#features) •
55
+ [Usage](#usage) •
56
+ [Screenshots](#screenshots) •
57
+ [Contributing](#contributing)
58
+
59
+ </div>
60
+
61
+ ---
62
+
63
+ ## ✨ Features
64
+
65
+ <div align="center">
66
+
67
+ | Core Features | Advanced Features | Extra Features |
68
+ |--------------|-------------------|----------------|
69
+ | 🎥 Smart Video Quality | 🚫 SponsorBlock Integration | 💾 Save Download Path |
70
+ | 🎵 Audio Extraction | 📝 Subtitle Support & Filtering | 🔄 Auto-Updates |
71
+ | 📊 Real-time Progress | ⚙️ Custom Commands | 🛠️ FFmpeg Tools |
72
+ | 📋 Playlist Support | 🖼️ Thumbnail Management | ⚠️ Error Handling |
73
+
74
+ </div>
75
+
76
+ ## 🚀 Installation
77
+
78
+ ### Quick Install (Recommended)
79
+ ```bash
80
+ pip install YTSage
81
+ ```
82
+ ```bash
83
+ # Run the application
84
+ ytsage
85
+ ```
86
+
87
+ <details>
88
+ <summary>📦 Other Installation Methods</summary>
89
+
90
+ ### Pre-built Executables
91
+ - 🪟 Windows: `YTSage.exe`
92
+ - 🍎 macOS: `YTSage.dmg`
93
+ - 🐧 Linux: `YTSage.AppImage`
94
+
95
+ ### Manual Installation
96
+ ```bash
97
+ # Clone repository
98
+ git clone https://github.com/oop7/YTSage.git
99
+
100
+ # Navigate to directory
101
+ cd YTSage
102
+
103
+ # Install dependencies
104
+ pip install -r requirements.txt
105
+
106
+ # Run application
107
+ python main.py
108
+ ```
109
+ </details>
110
+
111
+ ## 📸 Screenshots
112
+
113
+ <div align="center">
114
+ <table>
115
+ <tr>
116
+ <td><img src="https://github.com/user-attachments/assets/9566f446-458a-4932-8c5a-7aec0e253a3d" alt="Main Interface" width="400"/></td>
117
+ <td><img src="https://github.com/user-attachments/assets/99330ae2-f027-4a13-a08e-16c715d7f481" alt="Playlist Download" width="400"/></td>
118
+ </tr>
119
+ <tr>
120
+ <td align="center"><em>Main Interface</em></td>
121
+ <td align="center"><em>Playlist Download</em></td>
122
+ </tr>
123
+ <tr>
124
+ <td><img src="https://github.com/user-attachments/assets/2023c9d6-1b3a-4d75-85a3-f88cc17e8194" alt="Audio Format Selection with Save Thumbnail" width="400"/></td>
125
+ <td><img src="https://github.com/user-attachments/assets/17bc85bf-20b4-4260-88f7-ee6cb21ab7f3" alt="Subtitle Options merged with Remove Sponsor Segments" width="400"/></td>
126
+ </tr>
127
+ <tr>
128
+ <td align="center"><em>Audio Format Selection with Save Thumbnail</em></td>
129
+ <td align="center"><em>Subtitle Options merged with Remove Sponsor Segments</em></td>
130
+ </tr>
131
+ </table>
132
+ </div>
133
+
134
+ ## 📖 Usage
135
+
136
+ <details>
137
+ <summary>🎯 Basic Usage</summary>
138
+
139
+ 1. **Launch YTSage**
140
+ 2. **Paste YouTube URL** (or use "Paste URL" button)
141
+ 3. **Click "Analyze"**
142
+ 4. **Select Format:**
143
+ - `Video` for video downloads
144
+ - `Audio Only` for audio extraction
145
+ 5. **Choose Options:**
146
+ - Enable subtitles & select language
147
+ - Enable subtitle embedding
148
+ - Save thumbnail
149
+ - Remove sponsor segments
150
+ 6. **Select Output Directory**
151
+ 7. **Click "Download"**
152
+
153
+ </details>
154
+
155
+ <details>
156
+ <summary>📋 Playlist Download</summary>
157
+
158
+ 1. **Paste Playlist URL**
159
+ 2. **Click "Analyze"**
160
+ 3. **Select Best Quality**
161
+ 4. **Click "Download"**
162
+
163
+ > 💡 The application automatically handles the download queue
164
+
165
+ </details>
166
+
167
+ <details>
168
+ <summary>⚙️ Advanced Options</summary>
169
+
170
+ - **Quality Selection:** Choose highest resolution for best quality
171
+ - **Subtitle Options:** Filter languages and embed into video
172
+ - **SponsorBlock:** Automatically skip promotional content
173
+ - **Custom Commands:** Access advanced yt-dlp features
174
+ - **Output Directory:** Ensure sufficient storage space
175
+
176
+ </details>
177
+
178
+ ## 🛠️ Requirements
179
+
180
+ ```plaintext
181
+ Python 3.7+
182
+ PySide6
183
+ yt-dlp
184
+ Pillow
185
+ requests
186
+ FFmpeg
187
+ packaging
188
+ ```
189
+
190
+ ## 👥 Contributing
191
+
192
+ We welcome contributions! Here's how you can help:
193
+
194
+ 1. 🍴 Fork the repository
195
+ 2. 🌿 Create your feature branch:
196
+ ```bash
197
+ git checkout -b feature/AmazingFeature
198
+ ```
199
+ 3. 💾 Commit your changes:
200
+ ```bash
201
+ git commit -m 'Add some AmazingFeature'
202
+ ```
203
+ 4. 📤 Push to the branch:
204
+ ```bash
205
+ git push origin feature/AmazingFeature
206
+ ```
207
+ 5. 🔄 Open a Pull Request
208
+
209
+ ## 📜 License
210
+
211
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
212
+
213
+ ## 🙏 Acknowledgments
214
+
215
+ <div align="center">
216
+
217
+ | Technology | Purpose |
218
+ |------------|---------|
219
+ | [yt-dlp](https://github.com/yt-dlp/yt-dlp) | Download Engine |
220
+ | [PySide6](https://wiki.qt.io/Qt_for_Python) | GUI Framework |
221
+ | [FFmpeg](https://ffmpeg.org/) | Media Processing |
222
+ | [Pillow](https://python-pillow.org/) | Image Processing |
223
+
224
+ </div>
225
+
226
+ ## ⚠️ Disclaimer
227
+
228
+ This tool is for personal use only. Please respect YouTube's terms of service and content creators' rights.
229
+
230
+ ---
231
+
232
+ <div align="center">
233
+
234
+ Made with ❤️ by [oop7](https://github.com/oop7)
235
+
236
+ </div>
ytsage-4.0.0/README.md ADDED
@@ -0,0 +1,198 @@
1
+ <div align="center">
2
+
3
+ # 🎥 YTSage
4
+
5
+ <img src="https://github.com/user-attachments/assets/9566f446-458a-4932-8c5a-7aec0e253a3d" width="800" alt="YTSage Interface"/>
6
+
7
+ [![PyPI version](https://badge.fury.io/py/YTSage.svg)](https://badge.fury.io/py/YTSage)
8
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
9
+ [![Python 3.7+](https://img.shields.io/badge/python-3.7+-blue.svg)](https://www.python.org/downloads/)
10
+ [![Downloads](https://pepy.tech/badge/ytsage)](https://pepy.tech/project/ytsage)
11
+
12
+ **A modern YouTube downloader with a clean PySide6 interface.**
13
+ Download videos in any quality, extract audio, fetch subtitles, and more.
14
+
15
+ [Installation](#installation) •
16
+ [Features](#features) •
17
+ [Usage](#usage) •
18
+ [Screenshots](#screenshots) •
19
+ [Contributing](#contributing)
20
+
21
+ </div>
22
+
23
+ ---
24
+
25
+ ## ✨ Features
26
+
27
+ <div align="center">
28
+
29
+ | Core Features | Advanced Features | Extra Features |
30
+ |--------------|-------------------|----------------|
31
+ | 🎥 Smart Video Quality | 🚫 SponsorBlock Integration | 💾 Save Download Path |
32
+ | 🎵 Audio Extraction | 📝 Subtitle Support & Filtering | 🔄 Auto-Updates |
33
+ | 📊 Real-time Progress | ⚙️ Custom Commands | 🛠️ FFmpeg Tools |
34
+ | 📋 Playlist Support | 🖼️ Thumbnail Management | ⚠️ Error Handling |
35
+
36
+ </div>
37
+
38
+ ## 🚀 Installation
39
+
40
+ ### Quick Install (Recommended)
41
+ ```bash
42
+ pip install YTSage
43
+ ```
44
+ ```bash
45
+ # Run the application
46
+ ytsage
47
+ ```
48
+
49
+ <details>
50
+ <summary>📦 Other Installation Methods</summary>
51
+
52
+ ### Pre-built Executables
53
+ - 🪟 Windows: `YTSage.exe`
54
+ - 🍎 macOS: `YTSage.dmg`
55
+ - 🐧 Linux: `YTSage.AppImage`
56
+
57
+ ### Manual Installation
58
+ ```bash
59
+ # Clone repository
60
+ git clone https://github.com/oop7/YTSage.git
61
+
62
+ # Navigate to directory
63
+ cd YTSage
64
+
65
+ # Install dependencies
66
+ pip install -r requirements.txt
67
+
68
+ # Run application
69
+ python main.py
70
+ ```
71
+ </details>
72
+
73
+ ## 📸 Screenshots
74
+
75
+ <div align="center">
76
+ <table>
77
+ <tr>
78
+ <td><img src="https://github.com/user-attachments/assets/9566f446-458a-4932-8c5a-7aec0e253a3d" alt="Main Interface" width="400"/></td>
79
+ <td><img src="https://github.com/user-attachments/assets/99330ae2-f027-4a13-a08e-16c715d7f481" alt="Playlist Download" width="400"/></td>
80
+ </tr>
81
+ <tr>
82
+ <td align="center"><em>Main Interface</em></td>
83
+ <td align="center"><em>Playlist Download</em></td>
84
+ </tr>
85
+ <tr>
86
+ <td><img src="https://github.com/user-attachments/assets/2023c9d6-1b3a-4d75-85a3-f88cc17e8194" alt="Audio Format Selection with Save Thumbnail" width="400"/></td>
87
+ <td><img src="https://github.com/user-attachments/assets/17bc85bf-20b4-4260-88f7-ee6cb21ab7f3" alt="Subtitle Options merged with Remove Sponsor Segments" width="400"/></td>
88
+ </tr>
89
+ <tr>
90
+ <td align="center"><em>Audio Format Selection with Save Thumbnail</em></td>
91
+ <td align="center"><em>Subtitle Options merged with Remove Sponsor Segments</em></td>
92
+ </tr>
93
+ </table>
94
+ </div>
95
+
96
+ ## 📖 Usage
97
+
98
+ <details>
99
+ <summary>🎯 Basic Usage</summary>
100
+
101
+ 1. **Launch YTSage**
102
+ 2. **Paste YouTube URL** (or use "Paste URL" button)
103
+ 3. **Click "Analyze"**
104
+ 4. **Select Format:**
105
+ - `Video` for video downloads
106
+ - `Audio Only` for audio extraction
107
+ 5. **Choose Options:**
108
+ - Enable subtitles & select language
109
+ - Enable subtitle embedding
110
+ - Save thumbnail
111
+ - Remove sponsor segments
112
+ 6. **Select Output Directory**
113
+ 7. **Click "Download"**
114
+
115
+ </details>
116
+
117
+ <details>
118
+ <summary>📋 Playlist Download</summary>
119
+
120
+ 1. **Paste Playlist URL**
121
+ 2. **Click "Analyze"**
122
+ 3. **Select Best Quality**
123
+ 4. **Click "Download"**
124
+
125
+ > 💡 The application automatically handles the download queue
126
+
127
+ </details>
128
+
129
+ <details>
130
+ <summary>⚙️ Advanced Options</summary>
131
+
132
+ - **Quality Selection:** Choose highest resolution for best quality
133
+ - **Subtitle Options:** Filter languages and embed into video
134
+ - **SponsorBlock:** Automatically skip promotional content
135
+ - **Custom Commands:** Access advanced yt-dlp features
136
+ - **Output Directory:** Ensure sufficient storage space
137
+
138
+ </details>
139
+
140
+ ## 🛠️ Requirements
141
+
142
+ ```plaintext
143
+ Python 3.7+
144
+ PySide6
145
+ yt-dlp
146
+ Pillow
147
+ requests
148
+ FFmpeg
149
+ packaging
150
+ ```
151
+
152
+ ## 👥 Contributing
153
+
154
+ We welcome contributions! Here's how you can help:
155
+
156
+ 1. 🍴 Fork the repository
157
+ 2. 🌿 Create your feature branch:
158
+ ```bash
159
+ git checkout -b feature/AmazingFeature
160
+ ```
161
+ 3. 💾 Commit your changes:
162
+ ```bash
163
+ git commit -m 'Add some AmazingFeature'
164
+ ```
165
+ 4. 📤 Push to the branch:
166
+ ```bash
167
+ git push origin feature/AmazingFeature
168
+ ```
169
+ 5. 🔄 Open a Pull Request
170
+
171
+ ## 📜 License
172
+
173
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
174
+
175
+ ## 🙏 Acknowledgments
176
+
177
+ <div align="center">
178
+
179
+ | Technology | Purpose |
180
+ |------------|---------|
181
+ | [yt-dlp](https://github.com/yt-dlp/yt-dlp) | Download Engine |
182
+ | [PySide6](https://wiki.qt.io/Qt_for_Python) | GUI Framework |
183
+ | [FFmpeg](https://ffmpeg.org/) | Media Processing |
184
+ | [Pillow](https://python-pillow.org/) | Image Processing |
185
+
186
+ </div>
187
+
188
+ ## ⚠️ Disclaimer
189
+
190
+ This tool is for personal use only. Please respect YouTube's terms of service and content creators' rights.
191
+
192
+ ---
193
+
194
+ <div align="center">
195
+
196
+ Made with ❤️ by [oop7](https://github.com/oop7)
197
+
198
+ </div>
@@ -0,0 +1,48 @@
1
+ [build-system]
2
+ requires = ["setuptools>=75.8.0", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "ytsage"
7
+ version = "4.0.0"
8
+ description = "Modern YouTube downloader with a clean PySide6 interface."
9
+ authors = [
10
+ { name = "oop7", email = "oop7_support@proton.me" },
11
+ ]
12
+ dependencies = [
13
+ "yt-dlp",
14
+ "PySide6",
15
+ "requests",
16
+ "Pillow",
17
+ "packaging",
18
+ ]
19
+ requires-python = ">=3.7"
20
+ readme = "README.md"
21
+ license = { text = "MIT License" }
22
+ classifiers = [
23
+ "Development Status :: 4 - Beta",
24
+ "Programming Language :: Python :: 3",
25
+ "Programming Language :: Python :: 3.7",
26
+ "Programming Language :: Python :: 3.8",
27
+ "Programming Language :: Python :: 3.9",
28
+ "Programming Language :: Python :: 3.10",
29
+ "Programming Language :: Python :: 3.11",
30
+ "License :: OSI Approved :: MIT License",
31
+ "Operating System :: OS Independent",
32
+ "Topic :: Multimedia :: Video",
33
+ "Topic :: Multimedia :: Sound/Audio",
34
+ "Topic :: Utilities",
35
+ "Intended Audience :: End Users/Desktop",
36
+ "Environment :: X11 Applications :: Qt"
37
+ ]
38
+
39
+ keywords = ["youtube", "downloader", "video", "audio", "PySide6", "yt-dlp", "GUI"]
40
+
41
+
42
+ [project.urls]
43
+ Homepage = "https://github.com/oop7/YTSage"
44
+ Bug-Tracker = "https://github.com/oop7/YTSage/issues"
45
+ Reddit = "https://www.reddit.com/r/NO-N_A_M_E/"
46
+
47
+ [project.scripts]
48
+ ytsage = "ytsage.main:main"
ytsage-4.0.0/setup.cfg ADDED
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
ytsage-4.0.0/setup.py ADDED
@@ -0,0 +1,47 @@
1
+ from setuptools import setup, find_packages
2
+ from pathlib import Path
3
+
4
+ setup(
5
+ name='ytsage',
6
+ version='4.0.0',
7
+ author='oop7',
8
+ author_email='oop7_support@proton.me',
9
+ description='Modern YouTube downloader with a clean PySide6 interface.',
10
+ long_description=Path('README.md').read_text(encoding='utf-8'),
11
+ long_description_content_type='text/markdown',
12
+ url='https://github.com/oop7/YTSage',
13
+ packages=find_packages(),
14
+ install_requires=[
15
+ 'yt-dlp',
16
+ 'PySide6',
17
+ 'requests',
18
+ 'Pillow',
19
+ 'packaging'
20
+ ],
21
+ classifiers=[
22
+ 'Development Status :: 4 - Beta',
23
+ 'Programming Language :: Python :: 3',
24
+ 'Programming Language :: Python :: 3.7',
25
+ 'Programming Language :: Python :: 3.8',
26
+ 'Programming Language :: Python :: 3.9',
27
+ 'Programming Language :: Python :: 3.10',
28
+ 'Programming Language :: Python :: 3.11',
29
+ 'License :: OSI Approved :: MIT License',
30
+ 'Operating System :: OS Independent',
31
+ 'Topic :: Internet :: WWW/HTTP :: Downloading',
32
+ 'Topic :: Multimedia :: Video',
33
+ 'Topic :: Multimedia :: Sound/Audio',
34
+ 'Topic :: Utilities',
35
+ ],
36
+ python_requires='>=3.7',
37
+ entry_points={
38
+ 'console_scripts': [
39
+ 'ytsage=main:main',
40
+ ],
41
+ },
42
+ project_urls={
43
+ 'Homepage': 'https://github.com/oop7/YTSage',
44
+ 'Bug Tracker': 'https://github.com/oop7/YTSage/issues',
45
+ 'Reddit': 'https://www.reddit.com/r/NO-N_A_M_E/',
46
+ },
47
+ )
@@ -0,0 +1,4 @@
1
+ # Required for Python package recognition
2
+ from .main import YTSageApp, main
3
+
4
+ __version__ = "4.0.0"
@@ -0,0 +1,12 @@
1
+ import sys
2
+ from PySide6.QtWidgets import QApplication
3
+ from .ytsage_gui import YTSageApp
4
+
5
+ def main():
6
+ app = QApplication(sys.argv)
7
+ window = YTSageApp() # Instantiate the main application class
8
+ window.show()
9
+ sys.exit(app.exec())
10
+
11
+ if __name__ == '__main__':
12
+ main()