/YTSage

Modern YouTube downloader with a clean PyQt6 interface. Download videos in any quality, extract audio, fetch subtitles (including auto-generated), and view video metadata. Built with yt-dlp for reliable performance.

Primary LanguagePythonMIT LicenseMIT

YTSage

A modern YouTube downloader with a clean PyQt6 interface. Download videos in any quality, extract audio, fetch subtitles (including auto-generated), and view video metadata. Built with yt-dlp for reliable performance.

Screenshots

Main Interface

Main Interface

Main interface with video metadata and thumbnail preview

Audio Format Selection

Format Selection

Smart format selection with quality options

Subtitle Options

Subtitle Options

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
  • ℹ️ Video metadata display (views, upload date, duration)
  • 🖼️ Thumbnail preview
  • 🎨 Clean, user-friendly interface
  • 🚀 Built on yt-dlp for robust downloading

Download

You can download the latest executable from the Releases page.

Pre-built Executables

  • Windows: YTSage.exe
  • No installation required - just download and run!

Build from Source

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/YTSage.git

cd YTSage
  1. Install the required dependencies:
pip install -r requirements.txt
  1. Run the application:
python YTSage.py

Usage

  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

Build Executable

Install PyInstaller if you haven't already

  • Create the executable
pyinstaller --onefile --windowed --icon=icon.ico --name=YTSage YTSage.py

Requirements

  • Python 3.7+
  • PyQt6
  • yt-dlp
  • Pillow
  • requests

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

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • yt-dlp for the powerful downloading engine
  • PyQt6 for the GUI framework

Disclaimer

This tool is for personal use only. Please respect YouTube's terms of service and content creators' rights.