Update translated README feature lists to include audio normalization (EBU R128). Applied the change across multiple language files in readme-translations (ar, de, es, fr, hi, id, it, ja, pl, pt, ru, tr, zh) to reflect the new audio normalization feature in the project documentation.
35 KiB
Современный загрузчик YouTube с чистым интерфейсом PySide6.
Скачивайте видео в любом качестве, извлекайте аудио, получайте субтитры и многое другое.
🌍 README Языки
Английский: EN | Сообщение: AR | Немецкий: DE | Испанский: ES | Французский: FR | Ответ: HI | Бахаса Индонезия: ID | Итальянский: IT | 日本語: JA | Польски: PL | Португальский: PT | Русский: RU | Тюркче: TR | 中文: ZH
Установка • Функции • Использование • Скриншоты • Устранение неполадок • Спонсор • Содействие
❓ Почему YTSage?
YTSage предназначен для пользователей, которым нужен простой, но мощный загрузчик YouTube. В отличие от других инструментов, он предлагает:
- Чистый, современный интерфейс PySide6.
- Загрузка видео, аудио и субтитров в один клик.
- Расширенные функции, такие как SponsorBlock, объединение субтитров и выбор списка воспроизведения. – Дополнительный общий режим для сайтов, поддерживаемых yt-dlp, за пределами YouTube.
- Кроссплатформенная поддержка и простота установки.
✨ Особенности
| Основные возможности | Расширенные возможности | Дополнительные возможности |
|---|---|---|
| 🎥 Формат таблицы | 🚫 Интеграция SponsorBlock | 🎞️ Отображение FPS/HDR |
| 🎵 Извлечение аудио | 📝 Выбор и объединение нескольких субтитров | 🔄 Автоматическое обновление yt-dlp |
| ✨ Простой интерфейс | 💾 Сохранить описание и миниатюру | 🛠️ Обнаружение FFmpeg/yt-dlp/Deno |
| 📋 Поддержка и выбор плейлистов | 🚀 Ограничитель скорости | ⚙️ Пользовательские команды |
| 📑 Встроить главы | ✂️ Обрезать разделы видео | 🍪 Вход с помощью файлов cookie |
| 📜 История загрузок | 🔄 Выбор канала выпуска | 🌐 Поддержка прокси |
| 🎚️ Преобразование аудиоформатов | 🎬 Настройки формата видео | 🆙 Встроенная вкладка «Обновление» |
| 🌍 Общий режим | 🔊 Нормализация звука (EBU R128) | 🌍 Локализация на 14 языках |
🚀 Установка
⚡ Быстрая установка (рекомендуется)
Установите YTSage из PyPI:
pip install ytsage
🔄 Обновите существующую установку
pip install --upgrade ytsage
Затем запустите приложение:
ytsage
📦 Готовые исполняемые файлы
🪟 Окна
| Формат | Описание |
|---|---|
| Стандартный установщик | |
| В комплекте FFmpeg | |
| Портативная версия, установка не требуется | |
| Портативный с FFmpeg, в архиве |
🛠️ Этапы установки
- Установщик EXE (
.exe): дважды щелкните файл и следуйте указаниям мастера установки. - Портативная версия (
.zip): распакуйте архив в нужное место и запуститеytsage.exe. - FFmpeg Bundled: выберите версии в комплекте FFmpeg, если в вашей системе не установлен FFmpeg.
🐧 Линукс
| Формат | Описание |
|---|---|
| Пакет Debian | |
| AppImage, портативный | |
| пакет RPM | |
| Комплект Flatpak |
🛠️ Этапы установки
- DEB (
.deb):sudo dpkg -i ytsage_*.deb sudo apt-get install -f # Fix missing dependencies if any - Об/мин (
.rpm):sudo rpm -i ytsage-*.rpm - AppImage (
.AppImage):chmod +x YTSage-*.AppImage ./YTSage-*.AppImage - Flatpak: следуйте инструкциям на Flathub или запустите:
flatpak install flathub io.github.oop7.ytsage
🍎 macOS
| Формат | Описание |
|---|---|
| Заархивированное приложение для Apple Silicon | |
| Установщик образа диска для Apple Silicon |
🛠️ Этапы установки
- Установщик DMG (
.dmg): дважды щелкните, чтобы смонтировать, затем перетащитеYTSage.appв папку «Приложения». - Архив приложений (
.zip): распакуйте zip-архив и переместитеYTSage.appв папку «Приложения».
Примечание. Если вы столкнулись с ошибкой «Приложение повреждено», см. macOS troubleshooting section ниже.
💻 Ручная установка из исходного кода
1. Клонировать репозиторий
git clone https://github.com/oop7/YTSage.git
cd YTSage
2. Установите зависимости
⚡ С уф
uv pip install .
📦 Или со стандартным пипом
pip install .
3. Запустите приложение
python -m ytsage.main
📸 Скриншоты
📖 Использование
🎯 Базовое использование
- Запустите YTSage
- Вставьте URL-адрес YouTube (или нажмите кнопку «Вставить URL-адрес»).
- Нажмите «Анализ».
- Выберите формат:
Videoдля загрузки видео.Audio Onlyдля извлечения звука
- Выберите параметры:
- Включить субтитры и выбрать язык
- Включить объединение субтитров
- Сохранить миниатюру
- Удалить спонсорские сегменты
- Сохранить описание
- Вставлять главы
- Выберите выходной каталог
- Нажмите «Загрузить».
💡 Каталогом загрузки по умолчанию является папка «Загрузки» пользователя.
📋 Скачать плейлист
- Вставьте URL-адрес плейлиста
- Нажмите «Анализ».
- Выберите видео в селекторе плейлиста (необязательно, по умолчанию — все)
- Выберите желаемый формат/качество
- Нажмите «Загрузить».
💡 Приложение автоматически обрабатывает очередь загрузки
🌍 Общий режим для сайтов, не принадлежащих YouTube
Используйте общий режим, если хотите, чтобы YTSage принимал URL-адреса с сайтов, поддерживаемых yt-dlp, таких как Dailymotion, CBC Gem, TikTok и других.
Как его использовать:
- Откройте
Download Settings. - Включите
Generic Mode. - Вставьте поддерживаемый URL-адрес видео или списка воспроизведения, не относящегося к YouTube.
- Нажмите
Analyze. - Выберите формат и загрузите как обычно.
Примечания:
- Общий режим изменяет только проверку URL-адреса внутри YTSage. Целевой сайт по-прежнему должен поддерживаться установленной версией yt-dlp. – Некоторым сайтам требуются файлы cookie, сеанс входа в систему, прокси-сервер или дополнительные аргументы yt-dlp в зависимости от экстрактора. – Если на сайте произошел сбой, сначала обновите yt-dlp на вкладке встроенного средства обновления, прежде чем сообщать о проблеме.
🧰 Параметры мультимедиа и загрузки
- Параметры субтитров: фильтруйте языки и встраивайте субтитры в видеофайл.
- Объединение субтитров: объединение субтитров в видеофайл для жестко запрограммированных субтитров.
- Сохранить описание: сохранить описание видео в виде текстового файла.
- Сохранить миниатюру: сохраните миниатюру видео как файл изображения.
- Встроить главы. Встраивайте маркеры глав в качестве метаданных для совместимых видеопроигрывателей.
- Удалить спонсорские сегменты. Удалите спонсорские сегменты из видео с помощью SponsorBlock.
- Обрезать видео: загружайте только определенные части видео, указав временные диапазоны в формате
HH:MM:SS.
⚙️ Настройки вывода и файла
- Ограничитель скорости: Ограничьте скорость загрузки, например
500Kдо 500 КБ/с. - Сохранить путь загрузки: сохраните путь загрузки по умолчанию для будущих загрузок. Доступно в Настройки загрузки → Путь загрузки.
- Формат имени выходного файла: Настройте формат имени выходного файла, используя такие переменные, как
%(title)s,%(uploader)sи%(resolution)s. Доступно в Настройки загрузки → Формат имени файла. - Принудительный формат вывода. Принудительно загружайте видео в определенный формат контейнера, например
mp4,webmилиmkv. Доступно в Настройки загрузки → Настройки формата вывода. - Преобразование аудиоформата: конвертируйте загрузки, содержащие только аудио, в предпочтительные форматы, такие как
AAC,MP3,FLAC,WAV,Opus,M4A,VorbisилиBest. Доступно в Настройки загрузки → Настройки аудиоформата. - Нормализация звука: Стандартизируйте громкость для загрузок, содержащих только аудио, используя EBU R128.
🌐 Доступ и сеть
- Войти с помощью файлов cookie: войдите на YouTube, используя файлы cookie, чтобы получить доступ к личному контенту.
Как его использовать:
- Рекомендуется. Используйте встроенную опцию
Extract cookies from browserв приложении, затем выберите браузер и, при необходимости, профиль. - Альтернативно извлеките файлы cookie вручную:
а. Экспортируйте файлы cookie из вашего браузера, используя расширение, например cookie-editor.
б. Скопируйте файлы cookie в формате Netscape.
в. Создайте файл с именем
cookies.txtи вставьте в него файлы cookie. д. Выберите файлcookies.txtв приложении.
- Рекомендуется. Используйте встроенную опцию
- Поддержка прокси: используйте прокси-сервер для загрузки, например
http://<proxy-server>:<port> - Общий режим. Разрешить YTSage анализировать и загружать контент с сайтов, не принадлежащих YouTube, и поддерживаемых yt-dlp. Включите его в разделе Настройки загрузки → Общий режим.
🛠️ Инструменты и уход
– Пользовательские команды. Доступ к расширенным функциям yt-dlp с помощью аргументов командной строки.
- Вкладка «Обновление». Управляйте встроенными инструментами обновления из одного места в пользовательских настройках:
- Обновления yt-dlp: проверяйте наличие обновлений и переключайтесь между стабильными и ночными выпусками.
- Проверка версии FFmpeg: проверьте версию FFmpeg и откройте руководства по установке.
- Обновления Deno: проверьте и обновите среду выполнения Deno.
- Обнаружение FFmpeg/yt-dlp/Deno: автоматическое определение путей и версий FFmpeg, yt-dlp и Deno в диалоговом окне «О программе».
- История загрузок. Просматривайте прошлые загрузки с помощью миниатюр и статусов с помощью кнопки История.
🌍 Локализация
YTSage поддерживает 14 языков, что обеспечивает доступность по всему миру. Выберите предпочитаемый язык в меню Пользовательские параметры → Язык.
Поддерживаемые языки
| Язык | Код | Язык | Код |
|---|---|---|---|
| 🇺🇸 Английский | en |
🇪🇸 Испанский | es |
| 🇸🇦 Арабский | ar |
🇫🇷 Французский | fr |
| 🇩🇪 немецкий | de |
🇮🇳 Хинди | hi |
| 🇮🇩 Индонезийский | id |
🇮🇹 Итальянский | it |
| 🇯🇵 Японский | ja |
🇵🇱 Польский | pl |
| 🇧🇷 Португальский | pt |
🇷🇺 Русский | ru |
| 🇹🇷 Турецкий | tr |
🇨🇳 Китайский | zh |
README Переводы
| Язык | Файл | Язык | Файл |
|---|---|---|---|
| 🇺🇸 Английский | README.md | 🇪🇸 Испанский | README.es.md |
| 🇸🇦 Арабский | README.ar.md | 🇫🇷 Французский | README.fr.md |
| 🇩🇪 немецкий | README.de.md | 🇮🇳 Хинди | README.hi.md |
| 🇮🇩 Индонезийский | README.id.md | 🇮🇹 Итальянский | README.it.md |
| 🇯🇵 Японский | README.ja.md | 🇵🇱 Польский | README.pl.md |
| 🇧🇷 Португальский | README.pt.md | 🇷🇺 Русский | README.ru.md |
| 🇹🇷 Турецкий | README.tr.md | 🇨🇳 Китайский | README.zh.md |
💡 Хотите сделать перевод? Посетите раздел Contributing, чтобы мы могли добавить больше языков!
🛠️ Устранение неполадок
Нажмите, чтобы просмотреть распространенные проблемы и решения
– Таблица формата не отображается. Обновите yt-dlp до последней версии и переключайтесь на yt-dlp каждую ночь.
- Не удалось загрузить. Проверьте подключение к Интернету и убедитесь, что видео доступно.
- Конкретные ошибки загрузки:
- Частные видео. Используйте аутентификацию с помощью файлов cookie для доступа к частному контенту.
- Контент с возрастными ограничениями. Войдите в аккаунт YouTube, чтобы просмотреть видео с возрастными ограничениями. – Видео с геоблокировкой. Рассмотрите возможность использования VPN, чтобы обойти региональные ограничения. – Удалены видео: Видео больше не доступно на YouTube.
- Прямые трансляции: Прямые трансляции невозможно загрузить; дождитесь окончания потока.
- Ошибки сети. Проверьте подключение к Интернету и повторите попытку.
- Недопустимые URL-адреса. Убедитесь, что URL-адрес правильный и принадлежит поддерживаемой платформе.
- Премиум-контент: требуется подписка YouTube Premium.
- Блокировка авторских прав. Контент блокируется из-за ограничений авторских прав.
- Разделение видео и аудиофайлов после загрузки. Это происходит, когда FFmpeg отсутствует или не обнаружен. YTSage требует FFmpeg для объединения высококачественных видео и аудио потоков.
- Решение: Убедитесь, что FFmpeg установлен и доступен в PATH вашей системы. Для пользователей Windows самый простой вариант — загрузить файл
YTSage-v<version>-ffmpeg.exe, который поставляется в комплекте с FFmpeg.
- Решение: Убедитесь, что FFmpeg установлен и доступен в PATH вашей системы. Для пользователей Windows самый простой вариант — загрузить файл
🛡️ Предупреждение Защитника Windows/антивируса
Некоторые антивирусные программы могут помечать файлы .exe как ложные срабатывания. Это известное ограничение пакетных приложений.
Почему это происходит:
- Антивирусная эвристика может ошибочно идентифицировать упакованные исполняемые файлы как подозрительные.
Безопасные альтернативы:
- ✅ Используйте установку pip:
pip install ytsage(рекомендуется) - ✅ Сборка из исходного кода: следуя этому guide
- ✅ Внесите приложение в белый список в антивирусном программном обеспечении.
🍎 macOS: «Приложение повреждено и его невозможно открыть»
Если вы видите эту ошибку в macOS Sonoma или более поздней версии, вам необходимо удалить атрибут карантина.
- Откройте терминал (его можно найти с помощью Spotlight).
- Введите следующую команду, но не пока нажимайте Enter. Обязательно добавьте пробел в конце:
xattr -d com.apple.quarantine - Перетащите файл
YTSage.appиз окна Finder и поместите его прямо в окно терминала. Это автоматически вставит правильный путь к файлу. - Нажмите Enter, чтобы запустить команду.
- Попробуйте снова открыть YTSage.app. Теперь оно должно запуститься правильно.
Места конфигурации (дополнительно)
- Windows:
%LOCALAPPDATA%\YTSage - macOS:
~/Library/Application Support/YTSage - Linux:
~/.local/share/YTSage
💖 Спонсор
Если YTSage сэкономит вам время, рассмотрите возможность спонсирования проекта. Спонсорство помогает покрыть время разработки, тестирования на разных платформах и будущих улучшений.
- Спонсоры GitHub: https://github.com/sponsors/oop7
- Спонсорская ссылка также доступна непосредственно внутри приложения из диалогового окна «О программе».
👥 Вклад
Мы приветствуем вклады! Вот как вы можете помочь:
- 🍴 Форкните репозиторий
- 🌿 Создайте свою ветку функций:
git checkout -b feature/AmazingFeature
- 💾 Зафиксируйте изменения:
git commit -m 'Add some AmazingFeature'
- 📤 Нажмите на ветку:
git push origin feature/AmazingFeature
- 🔄 Откройте запрос на включение
🌍 Участие в переводах
- Обновите соответствующий локализованный файл README (например,
README.es.md). - Синхронизируйте строки приложения, отредактировав
ytsage/languages/<code>.json. - Если ваш язык отсутствует, начните с
README.mdи создайтеREADME.<code>.md.
📂 Структура проекта
YTSage — Структура проекта
В этом документе описывается организованная структура папок YTSage.
📁 Структура проекта
YTSage/
├── 📁 .github/ # GitHub configuration
│ ├── 📁 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
| | └── release-all.yml # Master release workflow
│ └── 📄 CI_CD_README.md # CI/CD documentation
├── 📁 branding/ # Branding assets (Screenshots, SVGs)
│ ├── 📁 icons/ # Application icons
│ ├── 📁 screenshots/ # Screenshots for documentation
│ └── 📁 svg/ # SVG assets
├── 📄 LICENSE # License file
├── 📄 pyproject.toml # Project metadata and dependencies
├── 📄 README.md # Project documentation
├── 📄 requirements.txt # Python dependencies (dev)
└── 📁 ytsage/ # Source package
├── 📁 assets/ # Runtime assets
│ ├── 📁 Icon/ # Application icons
│ └── 📁 sound/ # Audio files
├── 📁 languages/ # Localization files
│ ├── 📄 ar.json # Arabic translation
│ ├── 📄 de.json # German translation
│ ├── 📄 en.json # English translation
│ └── ... # Other languages
├── 📁 core/ # Core business logic
│ ├── 📄 __init__.py # Core package init
│ ├── 📄 ytsage_deno.py # Deno integration
│ ├── 📄 ytsage_downloader.py # Download functionality
│ ├── 📄 ytsage_ffmpeg.py # FFmpeg integration
│ ├── 📄 ytsage_utils.py # Utility functions
│ └── 📄 ytsage_yt_dlp.py # yt-dlp integration
├── 📁 gui/ # User interface components
│ ├── 📄 __init__.py # GUI package init
│ ├── 📄 ytsage_gui_main.py # Main application window
│ └── 📁 ytsage_gui_dialogs/ # Dialog classes
├── 📁 utils/ # Utility modules
│ ├── 📄 __init__.py # Utils package init
│ ├── 📄 ytsage_config_manager.py # Configuration management
│ └── 📄 ytsage_logger.py # Logging utilities
├── 📄 __init__.py # Package entry point
└── 📄 main.py # Main execution script
⭐️ Звездная история
📜 Лицензия
Этот проект лицензируется по лицензии MIT — подробности см. в файле LICENSE.
🙏 Благодарности
Показать благодарности
Сердечное спасибо всем, кто внес свой вклад в этот проект, открыв проблему, чтобы предложить улучшения или сообщить об ошибке.
| Основные компоненты | |
|---|---|
| yt-dlp | Загрузить двигатель |
| FFmpeg | Обработка мультимедиа |
| Deno | Среда выполнения для интеграции с yt-dlp |
| Библиотеки и платформы | |
| PySide6 | GUI Framework |
| Подушка | Обработка изображений |
| запросы | HTTP-запросы |
| упаковка | Обработка версий и пакетов |
| уценка | Рендеринг уценки |
| loguru | Ведение журнала |
| Активы и участники | |
| Новое уведомление 09 от Universfield | Звук уведомления |
| viru185 | Соавтор кода |
⚠️ Отказ от ответственности
Этот инструмент предназначен только для личного использования. Пожалуйста, соблюдайте условия обслуживания YouTube и права создателей контента.
Сделано с ❤️ автором oop7



