SSTube is a powerful, open-source YouTube downloader application built with PyQt6 and yt-dlp. This release (v2.1.0) introduces enhanced cookie handling through a browser extension, multiple download modes (videos, playlists, channels, shorts, and MP3 extraction), and a refined user interface.
-
Multiple Download Modes
- Single Video / MP3 Only
Download a single YouTube video or extract its audio as MP3. - Playlist Video / Playlist MP3
Download an entire playlist with an option to select specific videos. - Channel Videos / Channel Videos MP3
Download all videos (or extract audio) from a YouTube channel. - Channel Shorts / Channel Shorts MP3
Focus on downloading YouTube Shorts.
- Single Video / MP3 Only
-
Cookie Extension Support
- Secure Cookie File Import:
Instead of automatic browser cookie extraction, SSTube now relies on a cookie file exported by the "Get cookies.txt Locally" extension. - Guided Workflow:
If the extension isn’t installed, SSTube will automatically open the extension’s page in your selected browser, then prompt you to export and select your YouTube cookie file. - Validation:
SSTube verifies that the selected cookie file contains YouTube cookies to ensure proper authentication.
- Secure Cookie File Import:
-
Modern PyQt6 Interface
- Intuitive sidebar navigation for quick access to Download and Activity pages.
- Real-time status updates and activity logs.
-
Flexible Quality Options
- Choose from “Best Available” or specific resolutions (8K, 4K, 1080p, etc.) for video downloads.
- MP3 extraction defaults to 320 kbps audio quality.
-
Lightweight & Easy to Use
- Single-file application (
SSTube.py
) plus a few assets. - Minimal external dependencies.
- Single-file application (
SSTube/
├── SSTube.py
├── LICENSE
├── README.md
├── requirements.txt
├── .gitignore
├── assets/
│ ├── Favicon.png
│ ├── download.png
│ ├── activity.png
│ └── video-favicon.png
├── bin/
│ └── ffmpeg.exe
└── screenshots/
└── (optional images or screenshots)
- SSTube.py — Main application code (PyQt6 & yt-dlp logic).
- requirements.txt — Python dependencies.
- assets/ — Icons and images for the GUI.
- bin/ — Contains
ffmpeg.exe
(required for merging audio/video streams). - screenshots/ — Optional folder for screenshots and additional images.
- Python 3.8+
- ffmpeg (already included in
bin/ffmpeg.exe
on Windows) - yt-dlp
- PyQt6
(Install all dependencies via pip install -r requirements.txt
.)
-
Clone or Download this repository:
git clone https://github.com/UKR-PROJECTS/SSTube.git cd SSTube
-
(Optional) Create a Virtual Environment:
python -m venv venv source venv/bin/activate # On Windows use: venv\Scripts\activate
-
Install Dependencies:
pip install -r requirements.txt
-
Ensure ffmpeg is Accessible:
- Confirm that
bin/ffmpeg.exe
exists. If you're on another platform, adjust the path or install ffmpeg separately.
- Confirm that
-
Run the Application:
python SSTube.py
The SSTube GUI will open.
-
Cookie Login Feature
- Click File > Login from the menu bar.
- A dialog will prompt you to select the browser you use for YouTube login.
- You will then be asked if you have installed the "Get cookies.txt Locally" extension.
- If Yes:
You’ll be prompted to select the exported cookie file. SSTube validates the file to ensure it contains YouTube cookies. - If No:
The extension’s page will be opened in your selected browser so you can install it. After installing, export your cookies and then select the exported cookie file.
- If Yes:
- Once a valid cookie file is selected, SSTube uses it for authentication and access to restricted YouTube content.
-
Download Workflow
- Go to the Download page via the sidebar.
- Enter the YouTube URL (video, playlist, channel, or shorts).
- Select a save location for the downloads.
- Choose the appropriate Download Mode and, if applicable, set the video quality.
- Click Download to add the task to the queue.
-
Activity Log
- Use the Activity page to monitor real-time logs and download progress.
You can use PyInstaller to package SSTube as a standalone executable. For example:
pyinstaller --onefile --windowed --icon "assets/Favicon.png" --add-data "assets;assets" --add-data "bin;bin" SSTube.py
This command creates a single executable (SSTube.exe
) in the dist/
folder.
Contributions are welcome! Please follow these steps:
- Fork the project on GitHub.
- Create a new branch (e.g.,
feature/new-feature
). - Commit your changes with clear messages.
- Submit a Pull Request with a detailed description of your changes.
For major changes, please open an issue first to discuss what you would like to change.
This project is licensed under the MIT License. See the LICENSE file for details.
- yt-dlp for the robust downloading backend.
- PyQt6 for the powerful GUI framework.
- ffmpeg for multimedia processing.
- Thanks to all the contributors and testers!
Enjoy using SSTube! If you encounter any issues or have suggestions, please open an issue or submit a pull request.
This README.md provides a complete overview of SSTube v2.1.0 with detailed instructions on using the cookie extension feature, installation, usage, building, and contribution guidelines.