Polish Russian README translation
Refine the Russian README translation: update UI labels, headings and anchor IDs, translate screenshot alt texts and table entries, normalize installation and troubleshooting instructions, and improve wording/consistency across sections (installation, usage, features, networking, tools, localization and contribution). Small formatting and phrasing tweaks to make the Russian text clearer and more consistent.
This commit is contained in:
+268
-273
@@ -1,7 +1,7 @@
|
|||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
<img src="../branding/svg/ytsage-wordmark.svg" width="400" alt="ytsage-wordmark">
|
<img src="../branding/svg/ytsage-wordmark.svg" width="400" alt="ytsage-wordmark">
|
||||||
<img src="../branding/screenshots/main.png" width="800" alt="YTSage Interface"/>
|
<img src="../branding/screenshots/main.png" width="800" alt="Интерфейс YTSage"/>
|
||||||
|
|
||||||
[](https://www.python.org/downloads/)
|
[](https://www.python.org/downloads/)
|
||||||
[](https://pepy.tech/project/ytsage)
|
[](https://pepy.tech/project/ytsage)
|
||||||
@@ -12,81 +12,82 @@
|
|||||||
[](https://pypi.org/project/ytsage/)
|
[](https://pypi.org/project/ytsage/)
|
||||||
[](https://github.com/sponsors/oop7)
|
[](https://github.com/sponsors/oop7)
|
||||||
|
|
||||||
**Современный загрузчик YouTube с чистым интерфейсом PySide6.**
|
**Современный загрузчик с YouTube с чистым интерфейсом на PySide6.**
|
||||||
Скачивайте видео в любом качестве, извлекайте аудио, получайте субтитры и многое другое.
|
Загружайте видео в любом качестве, извлекайте аудио, получайте субтитры и многое другое.
|
||||||
|
|
||||||
### 🌍 README Языки
|
### 🌍 Языки README
|
||||||
|
|
||||||
Английский: [EN](../README.md)
|
Английский: [EN](../README.md)
|
||||||
| Сообщение: [AR](README.ar.md)
|
| Арабский: [AR](README.ar.md)
|
||||||
| Немецкий: [DE](README.de.md)
|
| Немецкий: [DE](README.de.md)
|
||||||
| Испанский: [ES](README.es.md)
|
| Испанский: [ES](README.es.md)
|
||||||
| Французский: [FR](README.fr.md)
|
| Французский: [FR](README.fr.md)
|
||||||
| Ответ: [HI](README.hi.md)
|
| Хинди: [HI](README.hi.md)
|
||||||
| Бахаса Индонезия: [ID](README.id.md)
|
| Индонезийский: [ID](README.id.md)
|
||||||
| Итальянский: [IT](README.it.md)
|
| Итальянский: [IT](README.it.md)
|
||||||
| 日本語: [JA](README.ja.md)
|
| Японский: [JA](README.ja.md)
|
||||||
| Польски: [PL](README.pl.md)
|
| Польский: [PL](README.pl.md)
|
||||||
| Португальский: [PT](README.pt.md)
|
| Португальский: [PT](README.pt.md)
|
||||||
| Русский: [RU](README.ru.md)
|
| Русский: [RU](README.ru.md)
|
||||||
| Тюркче: [TR](README.tr.md)
|
| Турецкий: [TR](README.tr.md)
|
||||||
| 中文: [ZH](README.zh.md)
|
| Китайский: [ZH](README.zh.md)
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="#installation">Установка</a> •
|
<a href="#установка">Установка</a> •
|
||||||
<a href="#features">Функции</a> •
|
<a href="#функции">Функции</a> •
|
||||||
<a href="#usage">Использование</a> •
|
<a href="#использование">Использование</a> •
|
||||||
<a href="#screenshots">Скриншоты</a> •
|
<a href="#скриншоты">Скриншоты</a> •
|
||||||
<a href="#troubleshooting">Устранение неполадок</a> •
|
<a href="#решение-проблем">Решение проблем</a> •
|
||||||
<a href="#sponsor">Спонсор</a> •
|
<a href="#спонсорство">Спонсорство</a> •
|
||||||
<a href="#contributing">Содействие</a>
|
<a href="#участие-в-проекте">Участие в проекте</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<a id="why-ytsage"></a>
|
<a id="почему-ytsage"></a>
|
||||||
## ❓ Почему YTSage?
|
## ❓ Почему YTSage?
|
||||||
|
|
||||||
YTSage предназначен для пользователей, которым нужен **простой, но мощный загрузчик YouTube**. В отличие от других инструментов, он предлагает:
|
YTSage создан для пользователей, которым нужен **простой, но мощный загрузчик с YouTube**. В отличие от других инструментов, он предлагает:
|
||||||
|
|
||||||
- Чистый, современный интерфейс PySide6.
|
- Современный и чистый интерфейс PySide6
|
||||||
- Загрузка видео, аудио и субтитров в один клик.
|
- Загрузку видео, аудио и субтитров одним щелчком мыши
|
||||||
- Расширенные функции, такие как SponsorBlock, объединение субтитров и выбор списка воспроизведения.
|
- Дополнительные функции, такие как SponsorBlock, объединение субтитров и выбор плейлиста
|
||||||
– Дополнительный общий режим для сайтов, поддерживаемых yt-dlp, за пределами YouTube.
|
- Опциональный "Общий режим" (Generic Mode) для сайтов помимо YouTube, поддерживаемых yt-dlp
|
||||||
- Кроссплатформенная поддержка и простота установки.
|
- Кроссплатформенную поддержку и простую установку
|
||||||
|
|
||||||
<a id="features"></a>
|
<a id="функции"></a>
|
||||||
## ✨ Особенности
|
## ✨ Функции
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
| Основные возможности | Расширенные возможности | Дополнительные возможности |
|
| Основные функции | Продвинутые функции | Дополнительные возможности |
|
||||||
|-----------------------------------|-----------------------------------------|------------------------------------|
|
|-----------------------------------|-----------------------------------------|------------------------------------|
|
||||||
| 🎥 Формат таблицы | 🚫 Интеграция SponsorBlock | 🎞️ Отображение FPS/HDR |
|
| 🎥 Таблица форматов | 🚫 Интеграция SponsorBlock | 🎞️ Отображение FPS/HDR |
|
||||||
| 🎵 Извлечение аудио | 📝 Выбор и объединение нескольких субтитров | 🔄 Автоматическое обновление yt-dlp |
|
| 🎵 Извлечение аудио | 📝 Выбор и объединение субтитров | 🔄 Автообновление yt-dlp |
|
||||||
| ✨ Простой интерфейс | 💾 Сохранить описание и миниатюру | 🛠️ Обнаружение FFmpeg/yt-dlp/Deno |
|
| ✨ Простой пользовательский интерфейс | 💾 Сохранение описания и обложки | 🛠️ Обнаружение FFmpeg/yt-dlp/Deno |
|
||||||
| 📋 Поддержка и выбор плейлистов | 🚀 Ограничитель скорости | ⚙️ Пользовательские команды |
|
| 📋 Поддержка и выбор плейлиста | 🚀 Ограничение скорости | ⚙️ Пользовательские команды |
|
||||||
| 📑 Встроить главы | ✂️ Обрезать разделы видео | 🍪 Вход с помощью файлов cookie |
|
| 📑 Интеграция разделов | ✂️ Обрезка видео | 🍪 Вход через Cookies |
|
||||||
| 📜 История загрузок | 🔄 Выбор канала выпуска | 🌐 Поддержка прокси |
|
| 📜 История загрузок | 🔄 Выбор канала выпуска | 🌐 Поддержка прокси |
|
||||||
| 🎚️ Преобразование аудиоформатов | 🎬 Настройки формата видео | 🆙 Встроенная вкладка «Обновление» |
|
| 🎚️ Конвертация аудиоформатов | 🎬 Настройки видеоформата | 🆙 Встроенная вкладка обновления |
|
||||||
| 🌍 Общий режим | 🔊 Нормализация звука (EBU R128) | 🌍 Локализация на 14 языках |
|
| 🌍 Общий режим | 🔊 Нормализация звука (EBU R128) | 🌍 Локализация на 14 языков |
|
||||||
|
| 💾 Экспорт плейлиста | ⚙️ Качество и субтитры по умолчанию | |
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<a id="installation"></a>
|
<a id="установка"></a>
|
||||||
## 🚀 Установка
|
## 🚀 Установка
|
||||||
|
|
||||||
### ⚡ Быстрая установка (рекомендуется)
|
### ⚡ Быстрая установка (Рекомендуется)
|
||||||
|
|
||||||
Установите YTSage из PyPI:
|
Установите YTSage через PyPI:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pip install ytsage
|
pip install ytsage
|
||||||
```
|
```
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>🔄 Обновите существующую установку</summary>
|
<summary>🔄 Обновить существующую установку</summary>
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pip install --upgrade ytsage
|
pip install --upgrade ytsage
|
||||||
@@ -100,45 +101,45 @@ pip install --upgrade ytsage
|
|||||||
ytsage
|
ytsage
|
||||||
```
|
```
|
||||||
|
|
||||||
### 📦 Готовые исполняемые файлы
|
### 📦 Готовые исполняемые файлы (Executable)
|
||||||
|
|
||||||
> [👉 Download Latest Release](https://github.com/oop7/YTSage/releases/latest)
|
> [👉 Скачать последний релиз](https://github.com/oop7/YTSage/releases/latest)
|
||||||
|
|
||||||
#### 🪟 Окна
|
#### 🪟 Windows
|
||||||
|
|
||||||
| Формат | Описание |
|
| Формат | Описание |
|
||||||
|--------|-------------|
|
|--------|-------------|
|
||||||
|  | Стандартный установщик |
|
|  | Стандартный установщик |
|
||||||
|  | В комплекте FFmpeg |
|
|  | С включенным FFmpeg |
|
||||||
|  | Портативная версия, установка не требуется |
|
|  | Портативная версия (не требует установки) |
|
||||||
|  | Портативный с FFmpeg, в архиве |
|
|  | Портативная с FFmpeg, сжатая (ZIP) |
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>🛠️ Этапы установки</summary>
|
<summary>🛠️ Шаги по установке</summary>
|
||||||
|
|
||||||
1. **Установщик EXE (`.exe`)**: дважды щелкните файл и следуйте указаниям мастера установки.
|
1. **EXE установщик (`.exe`)**: Дважды щелкните файл и следуйте инструкциям мастера установки.
|
||||||
2. **Портативная версия (`.zip`)**: распакуйте архив в нужное место и запустите `ytsage.exe`.
|
2. **Портативная версия (`.zip`)**: Распакуйте файл в нужное место и запустите `ytsage.exe`.
|
||||||
3. **FFmpeg Bundled**: выберите версии в комплекте FFmpeg, если в вашей системе не установлен FFmpeg.
|
3. **Встроенный FFmpeg**: Если в вашей системе не установлен FFmpeg, выбирайте версии со встроенным FFmpeg.
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
#### 🐧 Линукс
|
#### 🐧 Linux
|
||||||
|
|
||||||
| Формат | Описание |
|
| Формат | Описание |
|
||||||
|--------|-------------|
|
|--------|-------------|
|
||||||
|  | Пакет Debian |
|
|  | Пакет Debian |
|
||||||
|  | AppImage, портативный |
|
|  | AppImage, Портативный |
|
||||||
|  | пакет RPM |
|
|  | Пакет RPM |
|
||||||
|  | Комплект Flatpak |
|
|  | Пакет Flatpak |
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>🛠️ Этапы установки</summary>
|
<summary>🛠️ Шаги по установке</summary>
|
||||||
|
|
||||||
- **DEB (`.deb`)**:
|
- **DEB (`.deb`)**:
|
||||||
```bash
|
```bash
|
||||||
sudo dpkg -i ytsage_*.deb
|
sudo dpkg -i ytsage_*.deb
|
||||||
sudo apt-get install -f # Fix missing dependencies if any
|
sudo apt-get install -f # Если нужно исправить зависимости
|
||||||
```
|
```
|
||||||
- **Об/мин (`.rpm`)**:
|
- **RPM (`.rpm`)**:
|
||||||
```bash
|
```bash
|
||||||
sudo rpm -i ytsage-*.rpm
|
sudo rpm -i ytsage-*.rpm
|
||||||
```
|
```
|
||||||
@@ -147,7 +148,7 @@ ytsage
|
|||||||
chmod +x YTSage-*.AppImage
|
chmod +x YTSage-*.AppImage
|
||||||
./YTSage-*.AppImage
|
./YTSage-*.AppImage
|
||||||
```
|
```
|
||||||
- **Flatpak**: следуйте инструкциям на Flathub или запустите:
|
- **Flatpak**: Следуйте инструкциям на Flathub или выполните:
|
||||||
```bash
|
```bash
|
||||||
flatpak install flathub io.github.oop7.ytsage
|
flatpak install flathub io.github.oop7.ytsage
|
||||||
```
|
```
|
||||||
@@ -157,16 +158,16 @@ ytsage
|
|||||||
|
|
||||||
| Формат | Описание |
|
| Формат | Описание |
|
||||||
|--------|-------------|
|
|--------|-------------|
|
||||||
|  | Заархивированное приложение для Apple Silicon |
|
|  | Приложение ZIP для Apple Silicon |
|
||||||
|  | Установщик образа диска для Apple Silicon |
|
|  | Установщик DMG для Apple Silicon |
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>🛠️ Этапы установки</summary>
|
<summary>🛠️ Шаги по установке</summary>
|
||||||
|
|
||||||
- **Установщик DMG (`.dmg`)**: дважды щелкните, чтобы смонтировать, затем перетащите `YTSage.app` в папку «Приложения».
|
- **DMG установщик (`.dmg`)**: Дважды щелкните, чтобы смонтировать, и перетащите `YTSage.app` в папку Applications (Программы).
|
||||||
- **Архив приложений (`.zip`)**: распакуйте zip-архив и переместите `YTSage.app` в папку «Приложения».
|
- **Приложение в архиве (`.zip`)**: Распакуйте ZIP и переместите `YTSage.app` в папку Applications.
|
||||||
|
|
||||||
*Примечание. Если вы столкнулись с ошибкой «Приложение повреждено», см. [macOS troubleshooting section](#troubleshooting) ниже.*
|
*Примечание: Если вы получили ошибку "App is damaged", см. раздел по macOS ниже.*
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -181,21 +182,21 @@ git clone https://github.com/oop7/YTSage.git
|
|||||||
cd YTSage
|
cd YTSage
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. Установите зависимости
|
### 2. Установить зависимости
|
||||||
|
|
||||||
#### ⚡ С уф
|
#### ⚡ С помощью uv
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
uv pip install .
|
uv pip install .
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 📦 Или со стандартным пипом
|
#### 📦 Или через стандартный pip
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pip install .
|
pip install .
|
||||||
```
|
```
|
||||||
|
|
||||||
### 3. Запустите приложение
|
### 3. Запустить приложение
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python -m ytsage.main
|
python -m ytsage.main
|
||||||
@@ -203,147 +204,151 @@ python -m ytsage.main
|
|||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<a id="screenshots"></a>
|
<a id="скриншоты"></a>
|
||||||
## 📸 Скриншоты
|
## 📸 Скриншоты
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td><img src="../branding/screenshots/Download-Settings.png" alt="Download Settings" width="400"/></td>
|
<td><img src="../branding/screenshots/Download-Settings.png" alt="Настройки загрузки" width="400"/></td>
|
||||||
<td><img src="../branding/screenshots/playlist.png" alt="Playlist Download" width="400"/></td>
|
<td><img src="../branding/screenshots/playlist.png" alt="Загрузка плейлиста" width="400"/></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="center"><em>Настройки загрузки</em></td>
|
<td align="center"><em>Настройки загрузки</em></td>
|
||||||
<td align="center"><em>Скачать плейлист</em></td>
|
<td align="center"><em>Загрузка плейлиста</em></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><img src="../branding/screenshots/audio_format.png" alt="Audio Format Selection with Save Thumbnail" width="400"/></td>
|
<td><img src="../branding/screenshots/audio_format.png" alt="Выбор аудиоформата" width="400"/></td>
|
||||||
<td><img src="../branding/screenshots/Custom-Option.png" alt="Custom Options" width="400"/></td>
|
<td><img src="../branding/screenshots/Custom-Option.png" alt="Пользовательские опции" width="400"/></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="center"><em>Аудиоформат</em></td>
|
<td align="center"><em>Аудиоформат</em></td>
|
||||||
<td align="center"><em>Пользовательские параметры</em></td>
|
<td align="center"><em>Пользовательские опции</em></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div><a id="usage"></a>
|
</div>
|
||||||
|
|
||||||
|
<a id="использование"></a>
|
||||||
## 📖 Использование
|
## 📖 Использование
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>🎯 Базовое использование</summary>
|
<summary>🎯 Базовое использование</summary>
|
||||||
|
|
||||||
1. **Запустите YTSage**
|
1. **Запустите YTSage**
|
||||||
2. **Вставьте URL-адрес YouTube** (или нажмите кнопку «Вставить URL-адрес»).
|
2. **Вставьте ссылку на YouTube** (или используйте кнопку "Paste URL")
|
||||||
3. **Нажмите «Анализ»**.
|
3. **Нажмите "Analyze"**
|
||||||
4. **Выберите формат:**
|
4. **Выберите формат:**
|
||||||
- `Video` для загрузки видео.
|
- `Video` для загрузки видео
|
||||||
- `Audio Only` для извлечения звука
|
- `Audio Only` для извлечения аудио
|
||||||
5. **Выберите параметры:**
|
5. **Выберите опции:**
|
||||||
- Включить субтитры и выбрать язык
|
- Включите субтитры и выберите язык
|
||||||
- Включить объединение субтитров
|
- Включите объединение субтитров (Merge)
|
||||||
- Сохранить миниатюру
|
- Сохранить обложку (Save Thumbnail)
|
||||||
- Удалить спонсорские сегменты
|
- Удалить спонсорские вставки (SponsorBlock)
|
||||||
- Сохранить описание
|
- Сохранить описание (Save Description)
|
||||||
- Вставлять главы
|
- Внедрить главы (Embed Chapters)
|
||||||
6. **Выберите выходной каталог**
|
6. **Выберите папку для сохранения**
|
||||||
7. **Нажмите «Загрузить»**.
|
7. **Нажмите "Download"**
|
||||||
|
|
||||||
> 💡 Каталогом загрузки по умолчанию является папка «Загрузки» пользователя.
|
> 💡 Папка загрузок по умолчанию — папка "Загрузки" текущего пользователя.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>📋 Скачать плейлист</summary>
|
<summary>📋 Загрузка плейлиста</summary>
|
||||||
|
|
||||||
1. **Вставьте URL-адрес плейлиста**
|
1. **Вставьте ссылку на плейлист**
|
||||||
2. **Нажмите «Анализ»**.
|
2. **Нажмите "Analyze"**
|
||||||
3. **Выберите видео в селекторе плейлиста (необязательно, по умолчанию — все)**
|
3. **Выберите видео в селекторе (по умолчанию выбраны все)**
|
||||||
4. **Выберите желаемый формат/качество**
|
4. **Выберите нужный формат/качество**
|
||||||
5. **Нажмите «Загрузить»**.
|
5. **Нажмите "Download"**
|
||||||
|
|
||||||
> 💡 Приложение автоматически обрабатывает очередь загрузки
|
> 💡 Приложение автоматически управляет очередью загрузки, и вы можете экспортировать записи плейлиста в файлы `.txt`, `.csv`, `.m3u` или `.json`.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>🌍 Общий режим для сайтов, не принадлежащих YouTube</summary>
|
<summary>🌍 Общий режим для сайтов помимо YouTube</summary>
|
||||||
|
|
||||||
Используйте общий режим, если хотите, чтобы YTSage принимал URL-адреса с сайтов, поддерживаемых yt-dlp, таких как Dailymotion, CBC Gem, TikTok и других.
|
Используйте Общий режим (Generic Mode), когда хотите, чтобы YTSage принимал ссылки с других сайтов, поддерживаемых yt-dlp, таких как Dailymotion, TikTok и другие.
|
||||||
|
|
||||||
Как его использовать:
|
Как использовать:
|
||||||
|
|
||||||
1. Откройте `Download Settings`.
|
1. Откройте `Download Settings`.
|
||||||
2. Включите `Generic Mode`.
|
2. Включите `Generic Mode`.
|
||||||
3. Вставьте поддерживаемый URL-адрес видео или списка воспроизведения, не относящегося к YouTube.
|
3. Вставьте ссылку на видео или плейлист с поддерживаемого сайта (не YouTube).
|
||||||
4. Нажмите `Analyze`.
|
4. Нажмите `Analyze`.
|
||||||
5. Выберите формат и загрузите как обычно.
|
5. Выберите формат и скачайте как обычно.
|
||||||
|
|
||||||
Примечания:
|
Примечания:
|
||||||
|
|
||||||
- Общий режим изменяет только проверку URL-адреса внутри YTSage. Целевой сайт по-прежнему должен поддерживаться установленной версией yt-dlp.
|
- Общий режим только отключает строгую проверку URL внутри YTSage. Сайт все равно должен поддерживаться установленной версией yt-dlp.
|
||||||
– Некоторым сайтам требуются файлы cookie, сеанс входа в систему, прокси-сервер или дополнительные аргументы yt-dlp в зависимости от экстрактора.
|
- Некоторым сайтам требуются cookies, вход, прокси или дополнительные аргументы yt-dlp.
|
||||||
– Если на сайте произошел сбой, сначала обновите yt-dlp на вкладке встроенного средства обновления, прежде чем сообщать о проблеме.
|
- Если сайт перестал работать, обновите yt-dlp во встроенной вкладке обновления, прежде чем сообщать о проблеме.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>🧰 Параметры мультимедиа и загрузки</summary>
|
<summary>🧰 Опции медиа и загрузки</summary>
|
||||||
|
|
||||||
- **Параметры субтитров:** фильтруйте языки и встраивайте субтитры в видеофайл.
|
- **Опции субтитров:** Фильтруйте языки и внедряйте субтитры в видеофайл.
|
||||||
- **Объединение субтитров:** объединение субтитров в видеофайл для жестко запрограммированных субтитров.
|
- **Объединение субтитров:** "Вшивает" субтитры в видеофайл (hardcode).
|
||||||
- **Сохранить описание:** сохранить описание видео в виде текстового файла.
|
- **Сохранить описание:** Сохраняет описание видео в текстовый файл.
|
||||||
- **Сохранить миниатюру:** сохраните миниатюру видео как файл изображения.
|
- **Сохранить обложку:** Сохраняет превью видео как изображение.
|
||||||
- **Встроить главы.** Встраивайте маркеры глав в качестве метаданных для совместимых видеопроигрывателей.
|
- **Внедрить главы:** Добавляет маркеры глав в метаданные для совместимых медиаплееров.
|
||||||
- **Удалить спонсорские сегменты.** Удалите спонсорские сегменты из видео с помощью SponsorBlock.
|
- **Удалить спонсорские вставки:** Использует SponsorBlock для удаления рекламных сегментов из видео.
|
||||||
- **Обрезать видео:** загружайте только определенные части видео, указав временные диапазоны в формате `HH:MM:SS`.
|
- **Обрезать видео:** Загружайте только части видео, указав временной интервал в формате `HH:MM:SS`.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>⚙️ Настройки вывода и файла</summary>
|
<summary>⚙️ Настройки вывода и файлов</summary>
|
||||||
|
|
||||||
|
- **Ограничение скорости:** Ограничьте скорость загрузки, например, `500K` для 500 КБ/с.
|
||||||
|
- **Путь загрузки:** Сохраните путь по умолчанию для будущих загрузок. Доступно в **Download Settings → Download Path**.
|
||||||
|
- **Разрешение по умолчанию:** Установите предпочитаемое разрешение для автовыбора (например, 1080p, 720p). Доступно в **Download Settings → Default Video Resolution**.
|
||||||
|
- **Языки субтитров по умолчанию:** Установите языки по умолчанию для автовыбора (через запятую, например, `ru,en`). Доступно в **Download Settings → Default Subtitle Languages**.
|
||||||
|
- **Формат имени файла:** Настройте формат имени выходного файла, используя переменные типа `%(title)s`, `%(uploader)s` и др. Доступно в **Download Settings → Filename Format**.
|
||||||
|
- **Принудительный формат вывода:** Принудительно скачивайте видео в определенном контейнере, например `mp4`, `webm` или `mkv`. Доступно в **Download Settings → Output Format Settings**.
|
||||||
|
- **Конвертация аудио:** Конвертируйте аудио в форматы `AAC`, `MP3`, `FLAC`, `WAV`, `Opus`, `M4A`, `Vorbis`, или `Best`. Доступно в **Download Settings → Audio Format Settings**.
|
||||||
|
- **Нормализация звука:** Выравнивает громкость аудио загрузок согласно EBU R128.
|
||||||
|
- **Одновременные соединения:** Значительно увеличивает скорость за счет загрузки в несколько потоков. Доступно в **Download Settings → General → Concurrent Connections** (рекомендуется 8-10).
|
||||||
|
|
||||||
- **Ограничитель скорости:** Ограничьте скорость загрузки, например `500K` до 500 КБ/с.
|
|
||||||
- **Сохранить путь загрузки:** сохраните путь загрузки по умолчанию для будущих загрузок. Доступно в **Настройки загрузки → Путь загрузки**.
|
|
||||||
- **Формат имени выходного файла:** Настройте формат имени выходного файла, используя такие переменные, как `%(title)s`, `%(uploader)s` и `%(resolution)s`. Доступно в **Настройки загрузки → Формат имени файла**.
|
|
||||||
- **Принудительный формат вывода.** Принудительно загружайте видео в определенный формат контейнера, например `mp4`, `webm` или `mkv`. Доступно в **Настройки загрузки → Настройки формата вывода**.
|
|
||||||
- **Преобразование аудиоформата:** конвертируйте загрузки, содержащие только аудио, в предпочтительные форматы, такие как `AAC`, `MP3`, `FLAC`, `WAV`, `Opus`, `M4A`, `Vorbis` или `Best`. Доступно в **Настройки загрузки → Настройки аудиоформата**.
|
|
||||||
- **Нормализация звука:** Стандартизируйте громкость для загрузок, содержащих только аудио, используя EBU R128.
|
|
||||||
- **Одновременные соединения:** Значительно увеличьте скорость загрузки, скачивая файлы в виде нескольких фрагментов одновременно. Доступно в **Настройки загрузки → Общие → Одновременные соединения** (По умолчанию 1, рекомендуемый максимум 8-10 для предотвращения блокировки IP).\n
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>🌐 Доступ и сеть</summary>
|
<summary>🌐 Доступ и сеть</summary>
|
||||||
|
|
||||||
- **Войти с помощью файлов cookie:** войдите на YouTube, используя файлы cookie, чтобы получить доступ к личному контенту.
|
- **Вход через Cookies:** Войдите в YouTube через куки для доступа к приватному контенту.
|
||||||
Как его использовать:
|
Как использовать:
|
||||||
1. **Рекомендуется**. Используйте встроенную опцию `Extract cookies from browser` в приложении, затем выберите браузер и, при необходимости, профиль.
|
1. **Рекомендуется:** Используйте встроенную опцию `Extract cookies from browser`, выберите браузер и профиль.
|
||||||
2. Альтернативно извлеките файлы cookie вручную:
|
2. Или вручную:
|
||||||
а. Экспортируйте файлы cookie из вашего браузера, используя расширение, например [cookie-editor](https://github.com/moustachauve/cookie-editor?tab=readme-ov-file).
|
a. Экспортируйте куки через расширение [cookie-editor](https://github.com/moustachauve/cookie-editor).
|
||||||
б. Скопируйте файлы cookie в формате Netscape.
|
b. Скопируйте куки в формате Netscape.
|
||||||
в. Создайте файл с именем `cookies.txt` и вставьте в него файлы cookie.
|
c. Создайте файл `cookies.txt` и вставьте их туда.
|
||||||
д. Выберите файл `cookies.txt` в приложении.
|
d. Выберите этот файл в приложении.
|
||||||
- **Поддержка прокси:** используйте прокси-сервер для загрузки, например `http://<proxy-server>:<port>`
|
- **Поддержка прокси:** Используйте прокси-сервер для загрузок, например: `http://<proxy-server>:<port>`
|
||||||
- **Общий режим.** Разрешить YTSage анализировать и загружать контент с сайтов, не принадлежащих YouTube, и поддерживаемых yt-dlp. Включите его в разделе **Настройки загрузки → Общий режим**.
|
- **Общий режим:** Позволяет скачивать с сайтов помимо YouTube. Включите в **Download Settings → Generic Mode**.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>🛠️ Инструменты и уход</summary>
|
<summary>🛠️ Инструменты и обслуживание</summary>
|
||||||
|
|
||||||
– **Пользовательские команды.** Доступ к расширенным функциям yt-dlp с помощью аргументов командной строки.
|
- **Пользовательские команды:** Доступ к продвинутым функциям yt-dlp через аргументы командной строки.
|
||||||
- **Вкладка «Обновление».** Управляйте встроенными инструментами обновления из одного места в пользовательских настройках:
|
- **Вкладка обновления:** Управляйте инструментами в одном месте (Custom Options):
|
||||||
- **Обновления yt-dlp:** проверяйте наличие обновлений и переключайтесь между стабильными и ночными выпусками.
|
- **Обновление yt-dlp:** Проверка обновлений, переключение между Stable и Nightly ветками.
|
||||||
- **Проверка версии FFmpeg:** проверьте версию FFmpeg и откройте руководства по установке.
|
- **Версия FFmpeg:** Проверка версии и инструкции по установке.
|
||||||
- **Обновления Deno:** проверьте и обновите среду выполнения Deno.
|
- **Обновление Deno:** Проверка и обновление Deno.
|
||||||
- **Обнаружение FFmpeg/yt-dlp/Deno:** автоматическое определение путей и версий FFmpeg, yt-dlp и Deno в диалоговом окне «О программе».
|
- **Обнаружение FFmpeg/yt-dlp/Deno:** Автоматически находит пути и версии в окне "About".
|
||||||
- **История загрузок.** Просматривайте прошлые загрузки с помощью миниатюр и статусов с помощью кнопки **История**.
|
- **История загрузок:** Просматривайте историю с обложками и статусом через кнопку **History**.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>🌍 Локализация</summary>
|
<summary>🌍 Локализация</summary>
|
||||||
|
|
||||||
YTSage поддерживает **14 языков**, что обеспечивает доступность по всему миру. Выберите предпочитаемый язык в меню **Пользовательские параметры → Язык**.
|
YTSage поддерживает **14 языков**. Выберите нужный в **Custom Options → Language**.
|
||||||
|
|
||||||
### Поддерживаемые языки
|
### Поддерживаемые языки
|
||||||
|
|
||||||
@@ -351,183 +356,174 @@ YTSage поддерживает **14 языков**, что обеспечива
|
|||||||
|----------|------|----------|------|
|
|----------|------|----------|------|
|
||||||
| 🇺🇸 Английский | `en` | 🇪🇸 Испанский | `es` |
|
| 🇺🇸 Английский | `en` | 🇪🇸 Испанский | `es` |
|
||||||
| 🇸🇦 Арабский | `ar` | 🇫🇷 Французский | `fr` |
|
| 🇸🇦 Арабский | `ar` | 🇫🇷 Французский | `fr` |
|
||||||
| 🇩🇪 немецкий | `de` | 🇮🇳 Хинди | `hi` |
|
| 🇩🇪 Немецкий | `de` | 🇮🇳 Хинди | `hi` |
|
||||||
| 🇮🇩 Индонезийский | `id` | 🇮🇹 Итальянский | `it` |
|
| 🇮🇩 Индонезийский | `id` | 🇮🇹 Итальянский | `it` |
|
||||||
| 🇯🇵 Японский | `ja` | 🇵🇱 Польский | `pl` |
|
| 🇯🇵 Японский | `ja` | 🇵🇱 Польский | `pl` |
|
||||||
| 🇧🇷 Португальский | `pt` | 🇷🇺 Русский | `ru` |
|
| 🇧🇷 Португальский | `pt` | 🇷🇺 Русский | `ru` |
|
||||||
| 🇹🇷 Турецкий | `tr` | 🇨🇳 Китайский | `zh` |
|
| 🇹🇷 Турецкий | `tr` | 🇨🇳 Китайский | `zh` |
|
||||||
|
|
||||||
### README Переводы
|
### Переводы README
|
||||||
|
|
||||||
| Язык | Файл | Язык | Файл |
|
| Язык | Файл | Язык | Файл |
|
||||||
|----------|------|----------|------|
|
|----------|------|----------|------|
|
||||||
| 🇺🇸 Английский | [README.md](../README.md) | 🇪🇸 Испанский | [README.es.md](README.es.md)
|
| 🇺🇸 Английский | [README.md](README.md) | 🇪🇸 Испанский | [README.es.md](README.es.md) |
|
||||||
| 🇸🇦 Арабский | [README.ar.md](README.ar.md) | 🇫🇷 Французский | [README.fr.md](README.fr.md) |
|
| 🇸🇦 Арабский | [README.ar.md](README.ar.md) | 🇫🇷 Французский | [README.fr.md](README.fr.md) |
|
||||||
| 🇩🇪 немецкий | [README.de.md](README.de.md) | 🇮🇳 Хинди | [README.hi.md](README.hi.md) |
|
| 🇩🇪 Немецкий | [README.de.md](README.de.md) | 🇮🇳 Хинди | [README.hi.md](README.hi.md) |
|
||||||
| 🇮🇩 Индонезийский | [README.id.md](README.id.md) | 🇮🇹 Итальянский | [README.it.md](README.it.md) |
|
| 🇮🇩 Индонезийский | [README.id.md](README.id.md) | 🇮🇹 Итальянский | [README.it.md](README.it.md) |
|
||||||
| 🇯🇵 Японский | [README.ja.md](README.ja.md) | 🇵🇱 Польский | [README.pl.md](README.pl.md) |
|
| 🇯🇵 Японский | [README.ja.md](README.ja.md) | 🇵🇱 Польский | [README.pl.md](README.pl.md) |
|
||||||
| 🇧🇷 Португальский | [README.pt.md](README.pt.md) | 🇷🇺 Русский | [README.ru.md](README.ru.md) |
|
| 🇧🇷 Португальский | [README.pt.md](README.pt.md) | 🇷🇺 Русский | [README.ru.md](README.ru.md) |
|
||||||
| 🇹🇷 Турецкий | [README.tr.md](README.tr.md) | 🇨🇳 Китайский | [README.zh.md](README.zh.md) |
|
| 🇹🇷 Турецкий | [README.tr.md](README.tr.md) | 🇨🇳 Китайский | [README.zh.md](README.zh.md) |
|
||||||
|
|
||||||
> 💡 **Хотите сделать перевод?** Посетите раздел [Contributing](#contributing), чтобы мы могли добавить больше языков!
|
> 💡 **Хотите помочь с переводом?** Ознакомьтесь с разделом [Участие в проекте](#участие-в-проекте), чтобы помочь нам добавить новые языки!
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<a id="troubleshooting"></a>
|
<a id="решение-проблем"></a>
|
||||||
## 🛠️ Устранение неполадок
|
## 🛠️ Решение проблем
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Нажмите, чтобы просмотреть распространенные проблемы и решения</summary>
|
<summary>Нажмите, чтобы увидеть частые вопросы</summary>
|
||||||
|
|
||||||
– **Таблица формата не отображается.** Обновите yt-dlp до последней версии и переключайтесь на yt-dlp каждую ночь.
|
- **Не появляется таблица форматов:** Обновите yt-dlp до последней версии и попробуйте переключиться на канал Nightly.
|
||||||
- **Не удалось загрузить.** Проверьте подключение к Интернету и убедитесь, что видео доступно.
|
- **Загрузка не удалась:** Проверьте интернет-соединение и доступность видео.
|
||||||
- **Конкретные ошибки загрузки:**
|
- **Специфические ошибки:**
|
||||||
- **Частные видео.** Используйте аутентификацию с помощью файлов cookie для доступа к частному контенту.
|
- **Приватные видео:** Используйте вход через Cookies.
|
||||||
- **Контент с возрастными ограничениями.** Войдите в аккаунт YouTube, чтобы просмотреть видео с возрастными ограничениями.
|
- **Ограничение по возрасту:** Войдите в аккаунт YouTube.
|
||||||
– **Видео с геоблокировкой.** Рассмотрите возможность использования VPN, чтобы обойти региональные ограничения.
|
- **Геоблокировка:** Используйте VPN.
|
||||||
– **Удалены видео:** Видео больше не доступно на YouTube.
|
- **Видео удалено:** Видео больше недоступно на YouTube.
|
||||||
- **Прямые трансляции:** Прямые трансляции невозможно загрузить; дождитесь окончания потока.
|
- **Прямые трансляции:** Стримы нельзя скачать, пока они идут; дождитесь завершения.
|
||||||
- **Ошибки сети.** Проверьте подключение к Интернету и повторите попытку.
|
- **Сетевые ошибки:** Проверьте подключение к интернету и повторите попытку.
|
||||||
- **Недопустимые URL-адреса.** Убедитесь, что URL-адрес правильный и принадлежит поддерживаемой платформе.
|
- **Неверный URL:** Убедитесь, что URL указан правильно и принадлежит поддерживаемой платформе.
|
||||||
- **Премиум-контент:** требуется подписка YouTube Premium.
|
- **Премиум-контент:** Требуется подписка YouTube Premium.
|
||||||
- **Блокировка авторских прав.** Контент блокируется из-за ограничений авторских прав.
|
- **Блокировка авторских прав:** Контент заблокирован из-за ограничений авторского права.
|
||||||
- **Разделение видео и аудиофайлов после загрузки.** Это происходит, когда FFmpeg отсутствует или не обнаружен. YTSage требует FFmpeg для объединения высококачественных видео и аудио потоков.
|
- **Видео и аудио разделены после загрузки:** Это происходит, если FFmpeg отсутствует или не обнаружен. YTSage нужен FFmpeg для объединения потоков.
|
||||||
- **Решение:** Убедитесь, что FFmpeg установлен и доступен в PATH вашей системы. Для пользователей Windows самый простой вариант — загрузить файл `YTSage-v<version>-ffmpeg.exe`, который поставляется в комплекте с FFmpeg.
|
- **Решение:** Убедитесь, что FFmpeg установлен и добавлен в PATH. Пользователям Windows проще всего скачать версию с `-ffmpeg.exe`.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
#### 🛡️ Предупреждение Защитника Windows/антивируса
|
#### 🛡️ Предупреждение Windows Defender / Антивируса
|
||||||
|
|
||||||
Некоторые антивирусные программы могут помечать файлы `.exe` как ложные срабатывания. Это **известное ограничение** пакетных приложений.
|
Некоторые антивирусы могут помечать `.exe` файлы как ложные срабатывания. Это **известная особенность** упакованных приложений.
|
||||||
|
|
||||||
**Почему это происходит:**
|
**Причины:**
|
||||||
- Антивирусная эвристика может ошибочно идентифицировать упакованные исполняемые файлы как подозрительные.
|
- Эвристические алгоритмы антивирусов могут ошибочно идентифицировать упакованные исполняемые файлы как подозрительные.
|
||||||
|
|
||||||
**Безопасные альтернативы:**
|
**Безопасные варианты:**
|
||||||
- ✅ **Используйте установку pip:** `pip install ytsage` (рекомендуется)
|
- ✅ **Установка через pip:** `pip install ytsage` (рекомендуется)
|
||||||
- ✅ **Сборка из исходного кода**: следуя этому [guide](../.github/CI_CD_README.md)
|
- ✅ **Сборка из исходников**: Инструкция [здесь](.github/CI_CD_README.md)
|
||||||
- ✅ **Внесите приложение в белый список** в антивирусном программном обеспечении.
|
- ✅ **Добавить в исключения** антивируса.
|
||||||
|
|
||||||
#### 🍎 macOS: «Приложение повреждено и его невозможно открыть»
|
#### 🍎 macOS: "App is damaged and cannot be opened"
|
||||||
Если вы видите эту ошибку в macOS Sonoma или более поздней версии, вам необходимо удалить атрибут карантина.
|
Если вы видите эту ошибку на macOS Sonoma или новее:
|
||||||
|
|
||||||
1. **Откройте терминал** (его можно найти с помощью Spotlight).
|
1. **Откройте Терминал**.
|
||||||
2. **Введите следующую команду**, но **не** пока нажимайте Enter. Обязательно добавьте пробел в конце:
|
2. **Введите команду** (с пробелом в конце):
|
||||||
```bash
|
```bash
|
||||||
xattr -d com.apple.quarantine
|
xattr -d com.apple.quarantine
|
||||||
```
|
```
|
||||||
3. **Перетащите файл `YTSage.app`** из окна Finder и поместите его прямо в окно терминала. Это автоматически вставит правильный путь к файлу.
|
3. **Перетащите `YTSage.app`** из Finder в окно Терминала.
|
||||||
4. **Нажмите Enter**, чтобы запустить команду.
|
4. **Нажмите Enter**.
|
||||||
5. **Попробуйте снова открыть YTSage.app.** Теперь оно должно запуститься правильно.
|
5. Попробуйте открыть программу снова.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
#### **Места конфигурации (дополнительно)**
|
#### **Пути конфигурации (Продвинутым)**
|
||||||
- **Windows:** `%LOCALAPPDATA%\YTSage`
|
- **Windows:** `%LOCALAPPDATA%\YTSage`
|
||||||
- **macOS:** `~/Library/Application Support/YTSage`
|
- **macOS:** `~/Library/Application Support/YTSage`
|
||||||
- **Linux:** `~/.local/share/YTSage`
|
- **Linux:** `~/.local/share/YTSage`
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<a id="sponsor"></a>
|
<a id="спонсорство"></a>
|
||||||
## 💖 Спонсор
|
## 💖 Спонсорство
|
||||||
|
|
||||||
Если YTSage сэкономит вам время, рассмотрите возможность спонсирования проекта. Спонсорство помогает покрыть время разработки, тестирования на разных платформах и будущих улучшений.
|
Если YTSage экономит ваше время, поддержите разработку проекта. Спонсорство помогает поддерживать тестирование на всех платформах и внедрять новые функции.
|
||||||
|
|
||||||
- Спонсоры GitHub: https://github.com/sponsors/oop7
|
- GitHub Sponsors: https://github.com/sponsors/oop7
|
||||||
- Спонсорская ссылка также доступна непосредственно внутри приложения из диалогового окна «О программе».
|
- Ссылка на спонсорство также есть в окне "About" в приложении.
|
||||||
|
|
||||||
[](https://github.com/sponsors/oop7)
|
[](https://github.com/sponsors/oop7)
|
||||||
|
|
||||||
<a id="contributing"></a>
|
<a id="участие-в-проекте"></a>
|
||||||
## 👥 Вклад
|
## 👥 Участие в проекте
|
||||||
|
|
||||||
Мы приветствуем вклады! Вот как вы можете помочь:
|
Мы рады любой помощи!
|
||||||
|
|
||||||
1. 🍴 Форкните репозиторий
|
1. 🍴 Сделайте Fork репозитория
|
||||||
2. 🌿 Создайте свою ветку функций:
|
2. 🌿 Создайте ветку: `git checkout -b feature/NewFeature`
|
||||||
```bash
|
3. 💾 Сделайте коммит: `git commit -m 'Add NewFeature'`
|
||||||
git checkout -b feature/AmazingFeature
|
4. 📤 Отправите изменения: `git push origin feature/NewFeature`
|
||||||
```
|
5. 🔄 Создайте Pull Request
|
||||||
3. 💾 Зафиксируйте изменения:
|
|
||||||
```bash
|
|
||||||
git commit -m 'Add some AmazingFeature'
|
|
||||||
```
|
|
||||||
4. 📤 Нажмите на ветку:
|
|
||||||
```bash
|
|
||||||
git push origin feature/AmazingFeature
|
|
||||||
```
|
|
||||||
5. 🔄 Откройте запрос на включение
|
|
||||||
|
|
||||||
### 🌍 Участие в переводах
|
### 🌍 Помощь с переводами
|
||||||
|
|
||||||
- Обновите соответствующий локализованный файл README (например, `README.es.md`).
|
- Обновите файл README (например, `readme-translations/README.ru.md`)
|
||||||
- Синхронизируйте строки приложения, отредактировав `ytsage/languages/<code>.json`.
|
- Обновите строки интерфейса в `ytsage/languages/<code>.json`
|
||||||
- Если ваш язык отсутствует, начните с `README.md` и создайте `README.<code>.md`.
|
- Если ваш язык отсутствует, начните с `README.md` и создайте `README.<code>.md`
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>📂 Структура проекта</summary>
|
<summary>📂 Структура проекта</summary>
|
||||||
|
|
||||||
## YTSage — Структура проекта
|
## YTSage - Структура проекта
|
||||||
|
|
||||||
В этом документе описывается организованная структура папок YTSage.
|
Этот документ описывает организованную структуру папок YTSage.
|
||||||
|
|
||||||
### 📁 Структура проекта
|
### 📁 Схема проекта
|
||||||
|
|
||||||
```
|
```
|
||||||
YTSage/
|
YTSage/
|
||||||
├── 📁 .github/ # GitHub configuration
|
├── 📁 .github/ # Настройки GitHub
|
||||||
│ ├── 📁 ISSUE_TEMPLATE/ # Issue templates
|
│ ├── 📁 ISSUE_TEMPLATE/ # Шаблоны проблем
|
||||||
│ │ └── 🐛-bug-report.md # Bug report template
|
│ │ └── 🐛-bug-report.md # Шаблон отчета об ошибке
|
||||||
│ ├─── 📁 workflows/ # GitHub Actions workflows
|
│ ├─── 📁 workflows/ # Рабочие процессы GitHub Actions
|
||||||
│ │ ├── build-linux.yml # Linux build workflow
|
│ │ ├── build-linux.yml # Сборка для Linux
|
||||||
│ │ ├── build-macos.yml # macOS build workflow
|
│ │ ├── build-macos.yml # Сборка для macOS
|
||||||
│ │ │── build-windows.yml # Windows build workflow
|
│ │ │── build-windows.yml # Сборка для Windows
|
||||||
| | └── release-all.yml # Master release workflow
|
| | └── release-all.yml # Основной процесс выпуска
|
||||||
│ └── 📄 CI_CD_README.md # CI/CD documentation
|
│ └── 📄 CI_CD_README.md # Документация CI/CD
|
||||||
├── 📁 branding/ # Branding assets (Screenshots, SVGs)
|
├── 📁 branding/ # Брендинг (скриншоты, SVG)
|
||||||
│ ├── 📁 icons/ # Application icons
|
│ ├── 📁 icons/ # Иконки приложения
|
||||||
│ ├── 📁 screenshots/ # Screenshots for documentation
|
│ ├── 📁 screenshots/ # Скриншоты для документации
|
||||||
│ └── 📁 svg/ # SVG assets
|
│ └── 📁 svg/ # SVG ассеты
|
||||||
├── 📄 LICENSE # License file
|
├── 📄 LICENSE # Файл лицензии
|
||||||
├── 📄 pyproject.toml # Project metadata and dependencies
|
├── 📄 pyproject.toml # Метаданные проекта и зависимости
|
||||||
├── 📄 README.md # Project documentation
|
├── 📄 README.md # Документация проекта
|
||||||
├── 📄 requirements.txt # Python dependencies (dev)
|
├── 📄 requirements.txt # Зависимости Python (разработка)
|
||||||
└── 📁 ytsage/ # Source package
|
└── 📁 ytsage/ # Исходный код
|
||||||
├── 📁 assets/ # Runtime assets
|
├── 📁 assets/ # Ресурсы времени выполнения
|
||||||
│ ├── 📁 Icon/ # Application icons
|
│ ├── 📁 Icon/ # Иконки приложения
|
||||||
│ └── 📁 sound/ # Audio files
|
│ └── 📁 sound/ # Звуковые файлы
|
||||||
├── 📁 languages/ # Localization files
|
├── 📁 languages/ # Файлы локализации
|
||||||
│ ├── 📄 ar.json # Arabic translation
|
│ ├── 📄 ar.json # Перевод на арабский
|
||||||
│ ├── 📄 de.json # German translation
|
│ ├── 📄 de.json # Перевод на немецкий
|
||||||
│ ├── 📄 en.json # English translation
|
│ ├── 📄 en.json # Перевод на английский
|
||||||
│ └── ... # Other languages
|
│ └── ... # Другие языки
|
||||||
├── 📁 core/ # Core business logic
|
├── 📁 core/ # Основная бизнес-логика
|
||||||
│ ├── 📄 __init__.py # Core package init
|
│ ├── 📄 __init__.py
|
||||||
│ ├── 📄 ytsage_deno.py # Deno integration
|
│ ├── 📄 ytsage_deno.py # Интеграция Deno
|
||||||
│ ├── 📄 ytsage_downloader.py # Download functionality
|
│ ├── 📄 ytsage_downloader.py # Функционал загрузки
|
||||||
│ ├── 📄 ytsage_ffmpeg.py # FFmpeg integration
|
│ ├── 📄 ytsage_ffmpeg.py # Интеграция FFmpeg
|
||||||
│ ├── 📄 ytsage_utils.py # Utility functions
|
│ ├── 📄 ytsage_utils.py # Вспомогательные функции
|
||||||
│ └── 📄 ytsage_yt_dlp.py # yt-dlp integration
|
│ └── 📄 ytsage_yt_dlp.py # Интеграция yt-dlp
|
||||||
├── 📁 gui/ # User interface components
|
├── 📁 gui/ # Компоненты интерфейса
|
||||||
│ ├── 📄 __init__.py # GUI package init
|
│ ├── 📄 __init__.py
|
||||||
│ ├── 📄 ytsage_gui_main.py # Main application window
|
│ ├── 📄 ytsage_gui_main.py # Главное окно приложения
|
||||||
│ └── 📁 ytsage_gui_dialogs/ # Dialog classes
|
│ └── 📁 ytsage_gui_dialogs/ # Классы диалогов
|
||||||
├── 📁 utils/ # Utility modules
|
├── 📁 utils/ # Утилиты
|
||||||
│ ├── 📄 __init__.py # Utils package init
|
│ ├── 📄 __init__.py
|
||||||
│ ├── 📄 ytsage_config_manager.py # Configuration management
|
│ ├── 📄 ytsage_config_manager.py # Управление конфигурацией
|
||||||
│ └── 📄 ytsage_logger.py # Logging utilities
|
│ └── 📄 ytsage_logger.py # Логирование
|
||||||
├── 📄 __init__.py # Package entry point
|
├── 📄 __init__.py # Точка входа в пакет
|
||||||
└── 📄 main.py # Main execution script
|
└── 📄 main.py # Основной скрипт запуска
|
||||||
```
|
```
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
## ⭐️ Звездная история
|
## ⭐️ История звезд
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
## Звездная история
|
## Star History
|
||||||
|
|
||||||
<a href="https://www.star-history.com/#oop7/YTSage&Date">
|
<a href="https://www.star-history.com/#oop7/YTSage&Date">
|
||||||
<picture>
|
<picture>
|
||||||
@@ -541,7 +537,7 @@ YTSage/
|
|||||||
|
|
||||||
## 📜 Лицензия
|
## 📜 Лицензия
|
||||||
|
|
||||||
Этот проект лицензируется по лицензии MIT — подробности см. в файле [LICENSE](../LICENSE).
|
Проект распространяется под лицензией MIT — подробности в файле [LICENSE](LICENSE).
|
||||||
|
|
||||||
## 🙏 Благодарности
|
## 🙏 Благодарности
|
||||||
|
|
||||||
@@ -550,54 +546,55 @@ YTSage/
|
|||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
<p>Сердечное спасибо всем, кто внес свой вклад в этот проект, открыв проблему, чтобы предложить улучшения или сообщить об ошибке.</p>
|
<p>Большое спасибо всем, кто внес свой вклад в этот проект, открывая проблемы с предложениями по улучшению или отчетами об ошибках.</p>
|
||||||
|
|
||||||
<table>
|
<table>
|
||||||
<tr class="section"><th colspan="2">Основные компоненты</th></tr>
|
<tr class="section"><th colspan="2">Основные компоненты</th></tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td width="35%"><a href="https://github.com/yt-dlp/yt-dlp">yt-dlp</a></td>
|
<td width="35%"><a href="https://github.com/yt-dlp/yt-dlp">yt-dlp</a></td>
|
||||||
<td>Загрузить двигатель</td>
|
<td>Движок загрузки</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://ffmpeg.org/">FFmpeg</a></td>
|
<td><a href="https://ffmpeg.org/">FFmpeg</a></td>
|
||||||
<td>Обработка мультимедиа</td>
|
<td>Обработка медиа</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://deno.com/">Deno</a></td>
|
<td><a href="https://deno.com/">Deno</a></td>
|
||||||
<td>Среда выполнения для интеграции с yt-dlp</td>
|
<td>Среда для интеграции yt-dlp</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="section"><th colspan="2">Библиотеки и платформы</th></tr>
|
<tr class="section"><th colspan="2">Библиотеки и фреймворки</th></tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://wiki.qt.io/Qt_for_Python">PySide6</a></td>
|
<td><a href="https://wiki.qt.io/Qt_for_Python">PySide6</a></td>
|
||||||
<td>GUI Framework</td>
|
<td>GUI фреймворк</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://python-pillow.org/">Подушка</a></td>
|
<td><a href="https://python-pillow.org/">Pillow</a></td>
|
||||||
<td>Обработка изображений</td>
|
<td>Обработка изображений</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td><a href="https://requests.readthedocs.io/">запросы</a></td>
|
<tr>
|
||||||
<td>HTTP-запросы</td>
|
<td><a href="https://requests.readthedocs.io/">requests</a></td>
|
||||||
|
<td>HTTP запросы</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://packaging.python.org/">упаковка</a></td>
|
<td><a href="https://packaging.python.org/">packaging</a></td>
|
||||||
<td>Обработка версий и пакетов</td>
|
<td>Управление версиями</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://python-markdown.github.io/">уценка</a></td>
|
<td><a href="https://python-markdown.github.io/">markdown</a></td>
|
||||||
<td>Рендеринг уценки</td>
|
<td>Рендеринг Markdown</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://github.com/Delgan/loguru">loguru</a></td>
|
<td><a href="https://github.com/Delgan/loguru">loguru</a></td>
|
||||||
<td>Ведение журнала</td>
|
<td>Логирование</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="section"><th colspan="2">Активы и участники</th></tr>
|
<tr class="section"><th colspan="2">Контент и участники</th></tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://pixabay.com/sound-effects/new-notification-09-352705/">Новое уведомление 09 от Universfield</a></td>
|
<td><a href="https://pixabay.com/sound-effects/new-notification-09-352705/">New Notification 09 от Universfield</a></td>
|
||||||
<td>Звук уведомления</td>
|
<td>Звук уведомления</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://github.com/viru185">viru185</a></td>
|
<td><a href="https://github.com/viru185">viru185</a></td>
|
||||||
<td>Соавтор кода</td>
|
<td>Участник разработки</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@@ -607,12 +604,10 @@ YTSage/
|
|||||||
|
|
||||||
## ⚠️ Отказ от ответственности
|
## ⚠️ Отказ от ответственности
|
||||||
|
|
||||||
Этот инструмент предназначен только для личного использования. Пожалуйста, соблюдайте условия обслуживания YouTube и права создателей контента.
|
Этот инструмент предназначен только для личного использования. Пожалуйста, соблюдайте Условия использования YouTube и права создателей контента.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
|
Сделано с ❤️ от [oop7](https://github.com/oop7)
|
||||||
Сделано с ❤️ автором [oop7](https://github.com/oop7)
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+277
-318
@@ -1,85 +1,86 @@
|
|||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
<img src="../branding/svg/ytsage-wordmark.svg" width="400" alt="ytsage-wordmark">
|
<img src="../branding/svg/ytsage-wordmark.svg" width="400" alt="ytsage-wordmark">
|
||||||
<img src="../branding/screenshots/main.png" width="800" alt="YTSage Interface"/>
|
<img src="../branding/screenshots/main.png" width="800" alt="YTSage 界面"/>
|
||||||
|
|
||||||
[](https://www.python.org/downloads/)
|
[](https://www.python.org/downloads/)
|
||||||
[](https://pepy.tech/project/ytsage)
|
[](https://pepy.tech/project/ytsage)
|
||||||
[](https://github.com/oop7/YTSage/releases)
|
[](https://github.com/oop7/YTSage/releases)
|
||||||
[](https://opensource.org/licenses/MIT)
|
[](https://opensource.org/licenses/MIT)
|
||||||
[](https://github.com/oop7/YTSage/releases)
|
[](https://github.com/oop7/YTSage/releases)
|
||||||
[](https://github.com/oop7/YTSage/stargazers)
|
[](https://github.com/oop7/YTSage/stargazers)
|
||||||
[](https://pypi.org/project/ytsage/)
|
[](https://pypi.org/project/ytsage/)
|
||||||
[](https://github.com/sponsors/oop7)
|
[](https://github.com/sponsors/oop7)
|
||||||
|
|
||||||
**具有干净 PySide6 界面的现代 YouTube 下载器。**
|
**一款现代、整洁、基于 PySide6 的 YouTube 下载器。**
|
||||||
下载任何质量的视频、提取音频、获取字幕等等。
|
支持下载任意质量的视频、提取音频、获取字幕等更多功能。
|
||||||
|
|
||||||
### 🌍 自述文件语言
|
### 🌍 README 语言
|
||||||
|
|
||||||
英文:[EN](../README.md)
|
英语: [EN](../README.md)
|
||||||
|巴黎: [AR](README.ar.md)
|
| 阿拉伯语: [AR](README.ar.md)
|
||||||
|德语:[DE](README.de.md)
|
| 德语: [DE](README.de.md)
|
||||||
|西班牙语:[ES](README.es.md)
|
| 西班牙语: [ES](README.es.md)
|
||||||
|法语:[FR](README.fr.md)
|
| 法语: [FR](README.fr.md)
|
||||||
|编号:[HI](README.hi.md)
|
| 印地语: [HI](README.hi.md)
|
||||||
|印度尼西亚语:[ID](README.id.md)
|
| 印尼语: [ID](README.id.md)
|
||||||
|意大利语:[IT](README.it.md)
|
| 意大利语: [IT](README.it.md)
|
||||||
| 日本语:[JA](README.ja.md)
|
| 日语: [JA](README.ja.md)
|
||||||
|波兰斯基:[PL](README.pl.md)
|
| 波兰语: [PL](README.pl.md)
|
||||||
|葡萄牙语:[PT](README.pt.md)
|
| 葡萄牙语: [PT](README.pt.md)
|
||||||
| Русский: [RU](README.ru.md)
|
| 俄语: [RU](README.ru.md)
|
||||||
|土耳其:[TR](README.tr.md)
|
| 土耳其语: [TR](README.tr.md)
|
||||||
| 中文: [ZH](README.zh.md)
|
| 中文: [ZH](README.zh.md)
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="#installation">安装</a> •
|
<a href="#安装">安装</a> •
|
||||||
<a href="#features">特点</a> •
|
<a href="#功能">功能</a> •
|
||||||
<a href="#usage">使用</a> •
|
<a href="#使用说明">使用说明</a> •
|
||||||
<a href="#screenshots">屏幕截图</a> •
|
<a href="#屏幕截图">屏幕截图</a> •
|
||||||
<a href="#troubleshooting">故障排除</a> •
|
<a href="#故障排除">故障排除</a> •
|
||||||
<a href="#sponsor">赞助商</a> •
|
<a href="#赞助支持">赞助支持</a> •
|
||||||
<a href="#contributing">贡献</a>
|
<a href="#贡献">贡献</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<a id="why-ytsage"></a>
|
<a id="为什么选择-ytsage"></a>
|
||||||
## ❓ 为什么选择 YTSage?
|
## ❓ 为什么选择 YTSage?
|
||||||
|
|
||||||
YTSage 专为想要**简单但功能强大的 YouTube 下载器**的用户而设计。与其他工具不同,它提供:
|
YTSage 专为寻找 **简单但强大** 的 YouTube 下载器的用户而设计。与其他工具不同,它提供:
|
||||||
|
|
||||||
- 干净、现代的 PySide6 界面
|
- 现代、整洁的 PySide6 用户界面
|
||||||
- 视频、音频和字幕一键下载
|
- 一键下载视频、音频和字幕
|
||||||
- SponsorBlock、字幕合并和播放列表选择等高级功能
|
- 支持 SponsorBlock、字幕合并和播放列表选择等高级功能
|
||||||
- 适用于 YouTube 以外支持 yt-dlp 的网站的可选通用模式
|
- 可选的“通用模式”,支持 yt-dlp 兼容的其他非 YouTube 网站
|
||||||
- 跨平台支持且易于安装
|
- 跨平台支持,安装简单
|
||||||
|
|
||||||
<a id="features"></a>
|
<a id="功能"></a>
|
||||||
## ✨ 特点
|
## ✨ 功能
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
|核心特点|高级功能 |额外功能 |
|
| 核心功能 | 高级功能 | 更多功能 |
|
||||||
|------------------------------------------------|--------------------------------------------------------|------------------------------------|
|
|-----------------------------------|-----------------------------------------|------------------------------------|
|
||||||
| 🎥 格式化表格 | 🚫 SponsorBlock 集成 | 🎞️ FPS/HDR 显示 |
|
| 🎥 格式选择列表 | 🚫 集成 SponsorBlock | 🎞️ FPS / HDR 显示 |
|
||||||
| 🎵 音频提取 | 📝 多字幕选择和合并 | 🔄 自动更新 yt-dlp |
|
| 🎵 音频提取 | 📝 字幕选择与合并 | 🔄 yt-dlp 自动更新 |
|
||||||
| ✨ 简单的用户界面 | 💾 保存描述和缩略图 | 🛠️ FFmpeg/yt-dlp/Deno 检测 |
|
| ✨ 现代 UI 体验 | 💾 保存描述与缩略图 | 🛠️ FFmpeg/yt-dlp/Deno 检测 |
|
||||||
| 📋 播放列表支持和选择器 | 🚀 限速器 | ⚙️ 自定义命令 |
|
| 📋 播放列表支持与选择 | 🚀 下载限速 | ⚙️ 自定义参数支持 |
|
||||||
| 📑 嵌入章节 | ✂️ 修剪视频部分 | 🍪 使用 Cookie 登录 |
|
| 📑 视频列表集成 | ✂️ 视频剪辑 | 🍪 Cookie 登录集成 |
|
||||||
| 📜 下载历史记录 | 🔄 发布渠道选择 | 🌐 代理支持 |
|
| 📜 下载历史记录 | 🔄 更新版本分支选择 | 🌐 代理支持 |
|
||||||
| 🎚️ 音频格式转换 | 🎬 视频格式设置 | 🆙 内置更新程序选项卡 |
|
| 🎚️ 音频格式转换 | 🎬 视频格式设置 | 🆙 内置更新页签 |
|
||||||
| 🌍 通用模式 | 🔊 音频标准化 (EBU R128) | 🌍 14 种语言本地化 |
|
| 🌍 通用模式 | 🔊 音频归一化 (EBU R128) | 🌍 支持 14 种语言 |
|
||||||
|
| 💾 播放列表导出 | ⚙️ 默认质量与字幕设置 | |
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<a id="installation"></a>
|
<a id="安装"></a>
|
||||||
## 🚀 安装
|
## 🚀 安装
|
||||||
|
|
||||||
### ⚡ 快速安装(推荐)
|
### ⚡ 快速安装 (推荐)
|
||||||
|
|
||||||
从 PyPI 安装 YTSage:
|
通过 PyPI 安装 YTSage:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pip install ytsage
|
pip install ytsage
|
||||||
@@ -94,60 +95,60 @@ pip install --upgrade ytsage
|
|||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
然后启动应用程序:
|
然后通过以下命令运行:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ytsage
|
ytsage
|
||||||
```
|
```
|
||||||
|
|
||||||
### 📦 预构建的可执行文件
|
### 📦 独立可执行文件
|
||||||
|
|
||||||
> [👉 Download Latest Release](https://github.com/oop7/YTSage/releases/latest)
|
> [👉 下载最新版本](https://github.com/oop7/YTSage/releases/latest)
|
||||||
|
|
||||||
#### 🪟 Windows
|
#### 🪟 Windows
|
||||||
|
|
||||||
|格式|描述 |
|
| 格式 | 说明 |
|
||||||
|--------|-------------|
|
|--------|-------------|
|
||||||
|  |标准安装程序 |
|
|  | 标准安装程序 |
|
||||||
|  |与 FFmpeg 捆绑 |
|
|  | 包含 FFmpeg 的安装程序 |
|
||||||
|  |便携版,无需安装|
|
|  | 便携版 (无需安装) |
|
||||||
|  |带有 FFmpeg 的便携式,压缩 |
|
|  | 包含 FFmpeg 的便携版 (ZIP) |
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>🛠️安装步骤</summary>
|
<summary>🛠️ 安装步骤</summary>
|
||||||
|
|
||||||
1. **EXE 安装程序 (`.exe`)**:双击该文件并按照安装向导进行操作。
|
1. **EXE 安装程序 (`.exe`)**: 双击并按照安装向导进行操作。
|
||||||
2. **便携式版本(`.zip`)**:将存档解压到您所需的位置并运行`ytsage.exe`。
|
2. **便携版 (`.zip`)**: 解压到所需位置并运行 `ytsage.exe`。
|
||||||
3. **FFmpeg Bundled**:如果您的系统上没有安装 FFmpeg,请选择 FFmpeg 捆绑版本。
|
3. **内置 FFmpeg**: 如果系统没有安装 FFmpeg,请选择带 `-ffmpeg` 的版本。
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
#### 🐧 Linux
|
#### 🐧 Linux
|
||||||
|
|
||||||
|格式|描述 |
|
| 格式 | 说明 |
|
||||||
|--------|-------------|
|
|--------|-------------|
|
||||||
|  | Debian 软件包 |
|
|  | Debian 软件包 |
|
||||||
|  | AppImage,便携式|
|
|  | 便携 AppImage |
|
||||||
|  |转包 |
|
|  | RPM 软件包 |
|
||||||
|  | Flatpak 捆绑包 |
|
|  | Flatpak 软件包 |
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>🛠️安装步骤</summary>
|
<summary>🛠️ 安装步骤</summary>
|
||||||
|
|
||||||
- **DEB (`.deb`)**:
|
- **DEB (`.deb`)**:
|
||||||
```bash
|
```bash
|
||||||
sudo dpkg -i ytsage_*.deb
|
sudo dpkg -i ytsage_*.deb
|
||||||
sudo apt-get install -f # Fix missing dependencies if any
|
sudo apt-get install -f # 如有依赖问题请运行
|
||||||
```
|
```
|
||||||
- **转速(`.rpm`)**:
|
- **RPM (`.rpm`)**:
|
||||||
```bash
|
```bash
|
||||||
sudo rpm -i ytsage-*.rpm
|
sudo rpm -i ytsage-*.rpm
|
||||||
```
|
```
|
||||||
- **应用程序图像(`.AppImage`)**:
|
- **AppImage (`.AppImage`)**:
|
||||||
```bash
|
```bash
|
||||||
chmod +x YTSage-*.AppImage
|
chmod +x YTSage-*.AppImage
|
||||||
./YTSage-*.AppImage
|
./YTSage-*.AppImage
|
||||||
```
|
```
|
||||||
- **Flatpak**:按照 Flathub 上的说明进行操作或运行:
|
- **Flatpak**: 按照 Flathub 的说明或运行:
|
||||||
```bash
|
```bash
|
||||||
flatpak install flathub io.github.oop7.ytsage
|
flatpak install flathub io.github.oop7.ytsage
|
||||||
```
|
```
|
||||||
@@ -155,47 +156,47 @@ ytsage
|
|||||||
|
|
||||||
#### 🍎 macOS
|
#### 🍎 macOS
|
||||||
|
|
||||||
|格式|描述 |
|
| 格式 | 说明 |
|
||||||
|--------|-------------|
|
|--------|-------------|
|
||||||
|  | Apple Silicon 的压缩应用程序 |
|
|  | Apple Silicon 专用 ZIP 压缩包 |
|
||||||
|  | Apple Silicon 的磁盘映像安装程序 |
|
|  | Apple Silicon 专用 DMG 安装程序 |
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>🛠️安装步骤</summary>
|
<summary>🛠️ 安装步骤</summary>
|
||||||
|
|
||||||
- **DMG 安装程序 (`.dmg`)**:双击安装,然后将 `YTSage.app` 拖到您的应用程序文件夹中。
|
- **DMG 安装程序 (`.dmg`)**: 双击挂载,然后将 `YTSage.app` 拖入 Applications 文件夹。
|
||||||
- **应用程序存档 (`.zip`)**:解压 zip 并将 `YTSage.app` 移动到您的应用程序文件夹。
|
- **ZIP 应用包 (`.zip`)**: 解压并移动 `YTSage.app` 到 Applications 文件夹。
|
||||||
|
|
||||||
*注意:如果您遇到“应用程序已损坏”错误,请参阅下面的[macOS troubleshooting section](#troubleshooting)。*
|
*注意:如果遇到“应用已损坏”的提示,请参阅下方的 macOS 解决办法。*
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>💻从源手动安装</summary>
|
<summary>💻 从源码手动安装</summary>
|
||||||
|
|
||||||
### 1.克隆存储库
|
### 1. 克隆仓库
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/oop7/YTSage.git
|
git clone https://github.com/oop7/YTSage.git
|
||||||
cd YTSage
|
cd YTSage
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2.安装依赖项
|
### 2. 安装依赖
|
||||||
|
|
||||||
#### ⚡ 有紫外线
|
#### ⚡ 使用 uv
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
uv pip install .
|
uv pip install .
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 📦 或使用标准点
|
#### 📦 或使用标准 pip
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pip install .
|
pip install .
|
||||||
```
|
```
|
||||||
|
|
||||||
### 3. 运行应用程序
|
### 3. 运行程序
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python -m ytsage.main
|
python -m ytsage.main
|
||||||
@@ -203,330 +204,289 @@ python -m ytsage.main
|
|||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<a id="screenshots"></a>
|
<a id="屏幕截图"></a>
|
||||||
## 📸 截图
|
## 📸 屏幕截图
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td><img src="../branding/screenshots/Download-Settings.png" alt="Download Settings" width="400"/></td>
|
<td><img src="../branding/screenshots/Download-Settings.png" alt="下载设置" width="400"/></td>
|
||||||
<td><img src="../branding/screenshots/playlist.png" alt="Playlist Download" width="400"/></td>
|
<td><img src="../branding/screenshots/playlist.png" alt="播放列表下载" width="400"/></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="center"><em>下载设置</em></td>
|
<td align="center"><em>下载设置</em></td>
|
||||||
<td align="center"><em>播放列表下载</em></td>
|
<td align="center"><em>播放列表列表</em></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><img src="../branding/screenshots/audio_format.png" alt="Audio Format Selection with Save Thumbnail" width="400"/></td>
|
<td><img src="../branding/screenshots/audio_format.png" alt="音频格式选择" width="400"/></td>
|
||||||
<td><img src="../branding/screenshots/Custom-Option.png" alt="Custom Options" width="400"/></td>
|
<td><img src="../branding/screenshots/Custom-Option.png" alt="自定义选项" width="400"/></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="center"><em>音频格式</em></td>
|
<td align="center"><em>音频格式设置</em></td>
|
||||||
<td align="center"><em>自定义选项</em></td>
|
<td align="center"><em>自定义选项</em></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div><a id="usage"></a>
|
</div>
|
||||||
|
|
||||||
## 📖 用法
|
<a id="使用说明"></a>
|
||||||
|
## 📖 使用说明
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>🎯基本用法</summary>
|
<summary>🎯 基本使用方法</summary>
|
||||||
|
|
||||||
1. **启动 YTSage**
|
1. **运行 YTSage**
|
||||||
2. **粘贴 YouTube URL**(或使用“粘贴 URL”按钮)
|
2. **粘贴 YouTube 地址** (或点击 "Paste URL")
|
||||||
3. **点击“分析”**
|
3. **点击 "Analyze" (分析)**
|
||||||
4. **选择格式:**
|
4. **选择下载模式:**
|
||||||
- `Video` 用于视频下载
|
- `Video` 下载视频
|
||||||
- `Audio Only` 用于音频提取
|
- `Audio Only` 仅提取音频
|
||||||
5. **选择选项:**
|
5. **配置下载项:**
|
||||||
- 启用字幕并选择语言
|
- 启用字幕并选择语言
|
||||||
- 启用字幕合并
|
- 启用字幕合并 (Merge)
|
||||||
- 保存缩略图
|
- 保存缩略图 (Save Thumbnail)
|
||||||
- 删除赞助商部分
|
- 启用赞助内容跳过 (SponsorBlock)
|
||||||
- 保存描述
|
- 下载描述文本 (Save Description)
|
||||||
- 嵌入章节
|
- 嵌入视频章节 (Embed Chapters)
|
||||||
6. **选择输出目录**
|
6. **选择路径**
|
||||||
7. **点击“下载”**
|
7. **点击 "Download" (下载)**
|
||||||
|
|
||||||
> 💡 默认下载目录是用户的“Downloads”文件夹。
|
> 💡 默认下载到系统的“下载”文件夹。
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>📋播放列表下载</summary>
|
<summary>📋 下载播放列表</summary>
|
||||||
|
|
||||||
1. **粘贴播放列表 URL**
|
1. **粘贴播放列表地址**
|
||||||
2. **点击“分析”**
|
2. **添加并分析**
|
||||||
3. **从播放列表选择器中选择视频(可选,默认为全部)**
|
3. **在弹出窗口中选择视频 (默认全选)**
|
||||||
4. **选择所需的格式/质量**
|
4. **设置质量方案**
|
||||||
5. **点击“下载”**
|
5. **开始下载**
|
||||||
|
|
||||||
> 💡 应用程序自动处理下载队列
|
> 💡 程序会自动管理下载队列。您可以将列表导出为 `.txt`, `.csv`, `.m3u` 或 `.json` 格式。
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>🌍非 YouTube 网站的通用模式</summary>
|
<summary>🌍 非 YouTube 网站 (通用模式)</summary>
|
||||||
|
|
||||||
当您希望 YTSage 接受来自 yt-dlp 支持的网站(例如 Dailymotion、CBC Gem、TikTok 等)的 URL 时,请使用通用模式。
|
当您想从被 yt-dlp 支持的其他网站(如 TikTok、Dailymotion 等)下载时,请开启通用模式。
|
||||||
|
|
||||||
使用方法:
|
如何使用:
|
||||||
|
|
||||||
1. 打开`Download Settings`。
|
1. 打开 `Download Settings` (下载设置)。
|
||||||
2. 启用`Generic Mode`。
|
2. 启用 `Generic Mode` (通用模式)。
|
||||||
3. 粘贴受支持的非 YouTube 视频或播放列表 URL。
|
3. 输入非 YouTube 的支持网站链接。
|
||||||
4. 单击`Analyze`。
|
4. 点击 `Analyze` (分析)。
|
||||||
5. 选择格式并照常下载。
|
5. 正常下载。
|
||||||
|
|
||||||
注意事项:
|
说明:
|
||||||
|
|
||||||
- 通用模式仅更改 YTSage 内的 URL 验证。您安装的 yt-dlp 版本仍必须支持目标站点。
|
- 通用模式仅关闭了 YTSage 内部的 URL 类型检查。网站支持程度仍取决于您安装的 yt-dlp。
|
||||||
- 某些站点需要 cookie、登录会话、代理或额外的 yt-dlp 参数,具体取决于提取器。
|
- 有些站点可能需要特定的 Cookie 或代理配置。
|
||||||
- 如果站点出现故障,请先从内置更新程序选项卡更新 yt-dlp,然后再报告问题。
|
- 如果某个网站无法分析,请先在内置更新程序中更新 yt-dlp。
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>🧰媒体和下载选项</summary>
|
<summary>🧰 媒体与下载选项</summary>
|
||||||
|
|
||||||
- **字幕选项:** 过滤语言并将字幕嵌入到视频文件中
|
- **字幕选项:** 过滤特定语言并支持嵌入到视频中。
|
||||||
- **字幕合并:** 将字幕合并到视频文件中以获取硬编码字幕
|
- **字幕合并:** 将字幕“烧录”到视频中(硬字幕)。
|
||||||
- **保存描述:** 将视频描述保存为文本文件
|
- **保存描述:** 将视频描述保存为独立的文本文档。
|
||||||
- **保存缩略图:** 将视频缩略图保存为图像文件
|
- **保存缩略图:** 下载视频的高清封面。
|
||||||
- **嵌入章节:** 将章节标记嵌入为兼容视频播放器的元数据
|
- **嵌入章节:** 允许将视频章节标记写入媒体元数据。
|
||||||
- **删除赞助商片段:** 使用 SponsorBlock 从视频中删除赞助商片段
|
- **赞助商跳过:** 配合 SponsorBlock 自动跳过或剪辑掉广告段落。
|
||||||
- **修剪视频:** 通过以 `HH:MM:SS` 格式指定时间范围,仅下载视频的特定部分
|
- **视频剪裁:** 输入 `HH:MM:SS` 时间点来实现部分下载。
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>⚙️输出和文件设置</summary>
|
<summary>⚙️ 文件与输出设置</summary>
|
||||||
|
|
||||||
- **限速器:**限制下载速度,例如`500K`为500 KB/s
|
- **下载限速:** 输入如 `500K` 表示限制为 500 KB/s。
|
||||||
- **保存下载路径:** 保存默认下载路径以供将来下载。在**下载设置→下载路径**中可用。
|
- **保存路径:** 在 **Download Settings → Download Path** 中保存您的默认位置。
|
||||||
- **输出文件名格式:** 使用`%(title)s`、`%(uploader)s`和`%(resolution)s`等变量自定义输出文件名格式。在**下载设置 → 文件名格式**中可用。- **强制输出格式:** 强制视频下载为特定容器格式,例如`mp4`、`webm`或`mkv`。在**下载设置 → 输出格式设置**中可用。
|
- **默认分辨率:** 设置您首选的清晰度(如 1080p, 720p)。
|
||||||
- **音频格式转换:** 将纯音频下载转换为首选格式,例如 `AAC`、`MP3`、`FLAC`、`WAV`、`Opus`、`M4A`、 `Vorbis`,或`Best`。在**下载设置 → 音频格式设置**中可用。
|
- **默认字幕语言:** 输入语言代码(如 `zh,en`)来自动选择默认字幕。
|
||||||
- **音频归一化:** 使用 EBU R128 标准化纯音频下载的音量。
|
- **文件命名模板:** 通过 `%(title)s` 等变量自定义文件名格式。
|
||||||
- **并发连接数:** 通过同时分多部分下载文件来显着提高下载速度。可在 **下载设置 → 常规 → 并发连接数** 中找到(默认为1,建议最大为 8-10 以防止 IP 限制)。\n
|
- **强制输出格式:** 强制转换输出容器,如 `mp4`, `webm` 或 `mkv`。
|
||||||
</details>
|
- **音频转换:** 将音频转换为 `AAC`, `MP3`, `FLAC` 等格式。
|
||||||
|
- **音量归一化:** 使用 EBU R128 标准使下载的音量均衡。
|
||||||
<details>
|
- **多线程连接:** 设置 **Concurrent Connections** 为 8-10 以最大化下载速度。
|
||||||
<summary>🌐接入和网络</summary>
|
|
||||||
|
|
||||||
- **使用 Cookie 登录:** 使用 Cookie 登录 YouTube 以访问私人内容。
|
|
||||||
使用方法:
|
|
||||||
1. **推荐:** 使用应用程序中的内置`Extract cookies from browser`选项,然后选择您的浏览器和可选的配置文件。
|
|
||||||
2. 或者,手动提取 cookie:
|
|
||||||
a.使用类似 [cookie-editor](https://github.com/moustachauve/cookie-editor?tab=readme-ov-file) 的扩展程序从浏览器导出 cookie
|
|
||||||
b.以 Netscape 格式复制 cookie
|
|
||||||
c.创建一个名为 `cookies.txt` 的文件并将 cookie 粘贴到其中
|
|
||||||
d.在应用程序中选择`cookies.txt`文件
|
|
||||||
- **代理支持:** 使用代理服务器进行下载,例如`http://<proxy-server>:<port>`
|
|
||||||
- **通用模式:** 允许 YTSage 从 yt-dlp 支持的非 YouTube 网站分析和下载。从**下载设置 → 通用模式**启用它。
|
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>🛠️工具与维护</summary>
|
<summary>🌐 进阶访问与网络</summary>
|
||||||
|
|
||||||
- **自定义命令:** 通过命令行参数访问高级 yt-dlp 功能
|
- **Cookie 登录:** 允许通过 Cookie 下载私人内容或绕过限制。
|
||||||
- **更新程序选项卡:** 从自定义选项中的一处管理内置更新工具:
|
推荐方法:
|
||||||
- **yt-dlp 更新:** 检查更新并在稳定版和夜间发布频道之间切换
|
1. 在设置中点击 `Extract cookies from browser`,选择您的浏览器。
|
||||||
- **FFmpeg 版本检查器:** 检查您的 FFmpeg 版本并打开安装指南
|
2. 或:导出 Netscape 格式的 `cookies.txt` 文件并手动载入。
|
||||||
- **Deno 更新:** 检查并更新 Deno 运行时
|
- **代理支持:** 支持设置 HTTP 代理,例如 `http://127.0.0.1:8080`。
|
||||||
- **FFmpeg/yt-dlp/Deno 检测:** 从“关于”对话框中自动检测 FFmpeg、yt-dlp 和 Deno 路径和版本。
|
|
||||||
- **下载历史记录:** 通过“**历史记录**”按钮查看过去的下载,其中包含缩略图和状态。
|
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>🌍本地化</summary>
|
<summary>🛠️ 系统工具与维护</summary>
|
||||||
|
|
||||||
YTSage 支持**14 种语言**,可在全球范围内访问。从**自定义选项 → 语言**中选择您的首选语言。
|
- **自定义参数:** 为 yt-dlp 传递特定的命令行参数。
|
||||||
|
- **内置更新器:** (在 Custom Options 中)
|
||||||
|
- **yt-dlp 更新:** 在稳定版和测试版之间切换。
|
||||||
|
- **FFmpeg 检测:** 验证安装路劲。
|
||||||
|
- **Deno 更新:** 维护相关的集成环境。
|
||||||
|
- **下载历史:** 管理您的所有下载历史记录,包含缩略图和状态。
|
||||||
|
|
||||||
### 支持的语言
|
</details>
|
||||||
|
|
||||||
|语言 |代码|语言 |代码|
|
<details>
|
||||||
|
<summary>🌍 语言支持</summary>
|
||||||
|
|
||||||
|
YTSage 支持 **14 种语言**。您可以在 **Custom Options → Language** 中更改。
|
||||||
|
|
||||||
|
### 支持的界面语言
|
||||||
|
|
||||||
|
| 语言 | 代码 | 语言 | 代码 |
|
||||||
|----------|------|----------|------|
|
|----------|------|----------|------|
|
||||||
| 🇺🇸 英语 | `en` | 🇪🇸 西班牙语 | `es` |
|
| 🇺🇸 英语 | `en` | 🇪🇸 西班牙语 | `es` |
|
||||||
| 🇸🇦 阿拉伯语 | `ar` | 🇫🇷 法语 | `fr` |
|
| 🇸🇦 阿拉伯语 | `ar` | 🇫🇷 法语 | `fr` |
|
||||||
| 🇩🇪 德语 | `de` | 🇮🇳 印地语 | `hi` |
|
| 🇩🇪 德语 | `de` | 🇮🇳 印地语 | `hi` |
|
||||||
| 🇮🇩 印度尼西亚语 | `id` | 🇮🇹 意大利语 | `it` |
|
| 🇮🇩 印尼语 | `id` | 🇮🇹 意大利语 | `it` |
|
||||||
| 🇯🇵 日语 | `ja` | 🇵🇱 波兰语 | `pl` |
|
| 🇯🇵 日语 | `ja` | 🇵🇱 波兰语 | `pl` |
|
||||||
| 🇧🇷 葡萄牙语 | `pt` | 🇷🇺 俄语 | `ru` |
|
| 🇧🇷 葡萄牙语 | `pt` | 🇷🇺 俄语 | `ru` |
|
||||||
| 🇹🇷 土耳其语 | `tr` | 🇨🇳 中文 | `zh` |
|
| 🇹🇷 土耳其语 | `tr` | 🇨🇳 中文 | `zh` |
|
||||||
|
|
||||||
### 自述文件翻译
|
### README 翻译版
|
||||||
|
|
||||||
|语言 |文件 |语言 |文件 |
|
| 语言 | 文件 | 语言 | 文件 |
|
||||||
|----------|------|----------|------|
|
|----------|------|----------|------|
|
||||||
| 🇺🇸 英语 | [README.md](../README.md) | 🇪🇸 西班牙语 | [README.es.md](README.es.md)
|
| 🇺🇸 英语 | [README.md](README.md) | 🇪🇸 西班牙语 | [README.es.md](README.es.md) |
|
||||||
| 🇸🇦 阿拉伯语 | [README.ar.md](README.ar.md) | 🇫🇷 法语 | [README.fr.md](README.fr.md) |
|
| 🇸🇦 阿拉伯语 | [README.ar.md](README.ar.md) | 🇫🇷 法语 | [README.fr.md](README.fr.md) |
|
||||||
| 🇩🇪 德语 | [README.de.md](README.de.md) | 🇮🇳 印地语 | [README.hi.md](README.hi.md) |
|
| 🇩🇪 德语 | [README.de.md](README.de.md) | 🇮🇳 印地语 | [README.hi.md](README.hi.md) |
|
||||||
| 🇮🇩 印度尼西亚语 | [README.id.md](README.id.md) | 🇮🇹 意大利语 | [README.it.md](README.it.md) |
|
| 🇮🇩 印尼语 | [README.id.md](README.id.md) | 🇮🇹 意大利语 | [README.it.md](README.it.md) |
|
||||||
| 🇯🇵 日语 | [README.ja.md](README.ja.md) | 🇵🇱 波兰语 | [README.pl.md](README.pl.md) |
|
| 🇯🇵 日语 | [README.ja.md](README.ja.md) | 🇵🇱 波兰语 | [README.pl.md](README.pl.md) |
|
||||||
| 🇧🇷 葡萄牙语 | [README.pt.md](README.pt.md) | 🇷🇺 俄语 | [README.ru.md](README.ru.md) |
|
| 🇧🇷 葡萄牙语 | [README.pt.md](README.pt.md) | 🇷🇺 俄语 | [README.ru.md](README.ru.md) |
|
||||||
| 🇹🇷 土耳其语 | [README.tr.md](README.tr.md) | 🇨🇳 中文 | [README.zh.md](README.zh.md) |
|
| 🇹🇷 土耳其语 | [README.tr.md](README.tr.md) | 🇨🇳 中文 | [README.zh.md](README.zh.md) |
|
||||||
|
|
||||||
> 💡 **想要贡献翻译吗?** 查看 [Contributing](#contributing) 部分以帮助我们添加更多语言!
|
> 💡 **想要贡献翻译?** 欢迎查看 [贡献指南](#贡献) 部分!
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<a id="troubleshooting"></a>
|
<a id="故障排除"></a>
|
||||||
## 🛠️ 故障排除
|
## 🛠️ 故障排除
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>点击查看常见问题及解决方案</summary>
|
<summary>常见问题解答</summary>
|
||||||
|
|
||||||
- **格式表不显示:** 将 yt-dlp 更新到最新版本,并切换到 yt-dlp nightly。
|
- **没有显示格式表格:** 请更新 yt-dlp。如果仍无效,请尝试切换到测试版 (Nightly) 分支。
|
||||||
- **下载失败:** 检查您的互联网连接并确保视频可用。
|
- **下载失败:** 请检查网络连接或该地区视频是否可用。
|
||||||
- **具体下载错误:**
|
- **常见特定的错误提示:**
|
||||||
- **私人视频:** 使用cookie身份验证访问私人内容。
|
- **私有视频:** 需提供 Cookie 登录。
|
||||||
- **有年龄限制的内容:** 登录 YouTube 帐户即可观看有年龄限制的视频。
|
- **内容受限:** 部分视频需登录账号。
|
||||||
- **地理封锁的视频:** 考虑使用 VPN 来绕过区域限制。
|
- **地理锁定:** 需使用代理或 VPN。
|
||||||
- **删除/删除的视频:** YouTube 上不再提供视频。
|
- **视频已删除:** 视频已不存在。
|
||||||
- **直播:** 直播无法下载;等待流结束。
|
- **直播内容:** YTSage 目前不支持实时直播下载,请等直播结束后再试。
|
||||||
- **网络错误:** 检查您的互联网连接并重试。
|
- **下载后画面和声音分离:** 意味着系统中未安装或未检测到 FFmpeg。
|
||||||
- **无效 URL:** 确保 URL 正确且来自受支持的平台。
|
- **解决方法:** 确保 FFmpeg 已安装并加入 PATH,或下载带 `-ffmpeg` 版本的 Windows 程序。
|
||||||
- **高级内容:** 需要 YouTube Premium 会员资格。
|
|
||||||
- **版权封锁:** 由于版权限制,内容被封锁。
|
|
||||||
- **下载后分离视频和音频文件:** 当 FFmpeg 丢失或未检测到时会发生这种情况。 YTSage 需要 FFmpeg 来合并高质量的视频和音频流。
|
|
||||||
- **解决方案:** 确保 FFmpeg 已安装并可在系统路径中访问。对于 Windows 用户,最简单的选择是下载与 FFmpeg 捆绑在一起的 `YTSage-v<version>-ffmpeg.exe` 文件。
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
#### 🛡️ Windows Defender / 防病毒警告
|
#### 🛡️ Windows Defender / 杀毒软件警告
|
||||||
|
|
||||||
某些防病毒软件可能会将“.exe”文件标记为误报。这是打包应用程序的**已知限制**。
|
某些杀毒软件可能会误报。这是打包程序的常见现象。
|
||||||
|
|
||||||
**为什么会发生这种情况:**
|
**原因:**
|
||||||
- 防病毒启发式可能会将打包的可执行文件误认为可疑
|
- 启发式查杀可能会误认为打包的可执行文件是恶意软件。
|
||||||
|
|
||||||
**安全替代品:**
|
**安全建议:**
|
||||||
- ✅ **使用pip安装:** `pip install ytsage`(推荐)
|
- ✅ **通过 pip 安装:** `pip install ytsage`(推荐)
|
||||||
- ✅ **从源代码构建**:按照此[guide](../.github/CI_CD_README.md)
|
- ✅ **自行构建**: 参照 [CI_CD 指南](.github/CI_CD_README.md)
|
||||||
- ✅ **在防病毒软件中将应用程序列入白名单**
|
- ✅ **添加排除项**。
|
||||||
|
|
||||||
#### 🍎 macOS:“应用程序已损坏且无法打开”
|
#### 🍎 macOS: "应用已损坏,无法打开"
|
||||||
如果您在 macOS Sonoma 或更高版本上看到此错误,则需要删除隔离属性。
|
在 macOS Sonoma 及以后版本:
|
||||||
|
|
||||||
1. **打开终端**(您可以使用 Spotlight 找到它)。
|
1. 打开 **终端 (Terminal)**。
|
||||||
2. **键入以下命令**,但**不要**按 Enter 键。确保末尾包含空格:
|
2. 输入命令 (结尾有一个空格):
|
||||||
```bash
|
```bash
|
||||||
xattr -d com.apple.quarantine
|
xattr -d com.apple.quarantine
|
||||||
```
|
```
|
||||||
3. **将 `YTSage.app` 文件**从 Finder 窗口拖放到终端窗口中。这将自动粘贴正确的文件路径。
|
3. 从 Finder 中将 **YTSage.app** 拖入终端窗口。
|
||||||
4. **按 Enter** 运行命令。
|
4. 按回车。
|
||||||
5. **再次尝试打开 YTSage.app。** 现在它应该可以正确启动。
|
5. 再次打开应用。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
#### **配置位置(高级)**
|
#### **配置存放路径**
|
||||||
- **Windows:** `%LOCALAPPDATA%\YTSage`
|
- **Windows:** `%LOCALAPPDATA%\YTSage`
|
||||||
- **macOS:** `~/Library/Application Support/YTSage`
|
- **macOS:** `~/Library/Application Support/YTSage`
|
||||||
- **Linux:** `~/.local/share/YTSage`
|
- **Linux:** `~/.local/share/YTSage`
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<a id="sponsor"></a>
|
<a id="赞助支持"></a>
|
||||||
## 💖 赞助商
|
## 💖 赞助支持
|
||||||
|
|
||||||
如果 YTSage 可以节省您的时间,请考虑赞助该项目。赞助有助于涵盖开发时间、跨平台测试以及未来的改进。
|
如果 YTSage 节省了您的时间,请考虑资助本项目。赞助收入将用于多平台测试环境的维护和新功能开发。
|
||||||
|
|
||||||
- GitHub 赞助商:https://github.com/sponsors/oop7
|
- GitHub Sponsors: https://github.com/sponsors/oop7
|
||||||
- 赞助商链接也可以直接在应用程序内的“关于”对话框中找到。
|
- 您也可以通过应用内的“About (关于)”窗口找到捐赠链接。
|
||||||
|
|
||||||
[](https://github.com/sponsors/oop7)
|
[](https://github.com/sponsors/oop7)
|
||||||
|
|
||||||
<a id="contributing"></a>
|
<a id="贡献"></a>
|
||||||
## 👥 贡献
|
## 👥 贡献
|
||||||
|
|
||||||
我们欢迎贡献!以下是您可以提供帮助的方法:
|
感谢所有帮助!
|
||||||
|
|
||||||
1. 🍴 分叉存储库
|
1. 🍴 Fork 仓库
|
||||||
2. 🌿 创建您的功能分支:
|
2. 🌿 创建特性分支: `git checkout -b feature/NewFeature`
|
||||||
```bash
|
3. 💾 提交更改: `git commit -m 'Add NewFeature'`
|
||||||
git checkout -b feature/AmazingFeature
|
4. 📤 推送分支: `git push origin feature/NewFeature`
|
||||||
```
|
5. 🔄 开启 Pull Request
|
||||||
3. 💾 提交您的更改:
|
|
||||||
```bash
|
|
||||||
git commit -m 'Add some AmazingFeature'
|
|
||||||
```
|
|
||||||
4. 📤推送到分支:
|
|
||||||
```bash
|
|
||||||
git push origin feature/AmazingFeature
|
|
||||||
```
|
|
||||||
5. 🔄 打开拉取请求
|
|
||||||
|
|
||||||
### 🌍 贡献翻译
|
### 🌍 翻译贡献
|
||||||
|
|
||||||
- 更新匹配的本地化自述文件(例如`README.es.md`)
|
- 您可以更新各语种 README (例如 `readme-translations/README.zh.md`)。
|
||||||
- 通过编辑`ytsage/languages/<code>.json`保持应用程序字符串同步
|
- 也可以翻译界面词条:`ytsage/languages/<语言代码>.json`。
|
||||||
- 如果您的语言缺失,请从`README.md`开始并创建`README.<code>.md`
|
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>📂项目结构</summary>
|
<summary>📂 项目结构</summary>
|
||||||
|
|
||||||
## YTSage - 项目结构
|
## YTSage - 项目结构
|
||||||
|
|
||||||
本文档描述了 YTSage 的组织文件夹结构。
|
### 📁 目录概览
|
||||||
|
|
||||||
### 📁 项目结构
|
|
||||||
|
|
||||||
```
|
```
|
||||||
YTSage/
|
YTSage/
|
||||||
├── 📁 .github/ # GitHub configuration
|
├── 📁 .github/ # GitHub 设置
|
||||||
│ ├── 📁 ISSUE_TEMPLATE/ # Issue templates
|
│ ├── 📁 ISSUE_TEMPLATE/ # 问题模板
|
||||||
│ │ └── 🐛-bug-report.md # Bug report template
|
│ ├─── 📁 workflows/ # GitHub Actions 流程
|
||||||
│ ├─── 📁 workflows/ # GitHub Actions workflows
|
├── 📁 branding/ # 品牌资源 (截图, SVG)
|
||||||
│ │ ├── build-linux.yml # Linux build workflow
|
│ ├── 📁 icons/ # 图标
|
||||||
│ │ ├── build-macos.yml # macOS build workflow
|
│ ├── 📁 screenshots/ # 截图说明
|
||||||
│ │ │── build-windows.yml # Windows build workflow
|
│ └── 📁 svg/ # SVG 素材
|
||||||
| | └── release-all.yml # Master release workflow
|
├── 📄 LICENSE # 许可证
|
||||||
│ └── 📄 CI_CD_README.md # CI/CD documentation
|
├── 📄 pyproject.toml # 项目元数据与依赖
|
||||||
├── 📁 branding/ # Branding assets (Screenshots, SVGs)
|
├── 📄 README.md # 英语 README
|
||||||
│ ├── 📁 icons/ # Application icons
|
├── 📄 requirements.txt # 开发依赖
|
||||||
│ ├── 📁 screenshots/ # Screenshots for documentation
|
└── 📁 ytsage/ # 源代码
|
||||||
│ └── 📁 svg/ # SVG assets
|
├── 📁 assets/ # 运行时资源 (音频, 图标)
|
||||||
├── 📄 LICENSE # License file
|
├── 📁 languages/ # 多语言 JSON 文件
|
||||||
├── 📄 pyproject.toml # Project metadata and dependencies
|
├── 📁 core/ # 下载与集成核心逻辑
|
||||||
├── 📄 README.md # Project documentation
|
├── 📁 gui/ # UI 组件
|
||||||
├── 📄 requirements.txt # Python dependencies (dev)
|
├── 📁 utils/ # 工具类
|
||||||
└── 📁 ytsage/ # Source package
|
├── 📄 __init__.py
|
||||||
├── 📁 assets/ # Runtime assets
|
└── 📄 main.py # 程序入口
|
||||||
│ ├── 📁 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
|
|
||||||
```
|
```
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
## ⭐️ 明星历史
|
## ⭐️ 关注趋势
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
## 明星历史
|
## Star History
|
||||||
|
|
||||||
<a href="https://www.star-history.com/#oop7/YTSage&Date">
|
<a href="https://www.star-history.com/#oop7/YTSage&Date">
|
||||||
<picture>
|
<picture>
|
||||||
@@ -540,63 +500,64 @@ YTSage/
|
|||||||
|
|
||||||
## 📜 许可证
|
## 📜 许可证
|
||||||
|
|
||||||
该项目已获得 MIT 许可证 - 有关详细信息,请参阅[LICENSE](../LICENSE) 文件。
|
本项目基于 MIT 许可证分发 - 详情请参阅 [LICENSE](LICENSE) 文件。
|
||||||
|
|
||||||
## 🙏致谢
|
## 🙏 鸣谢
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>显示致谢</summary>
|
<summary>查看致谢名单</summary>
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
<p>衷心感谢所有通过提出改进建议或报告错误为该项目做出贡献的人。</p>
|
<p>特别鸣谢所有通过反馈、建议或代码合并来完善此工具的贡献者。</p>
|
||||||
|
|
||||||
<table>
|
<table>
|
||||||
<tr class="section"><th colspan="2">核心组件</th></tr>
|
<tr class="section"><th colspan="2">核心组件</th></tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td width="35%"><a href="https://github.com/yt-dlp/yt-dlp">yt-dlp</a></td>
|
<td width="35%"><a href="https://github.com/yt-dlp/yt-dlp">yt-dlp</a></td>
|
||||||
<td>下载引擎</td>
|
<td>核心下载引擎</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://ffmpeg.org/">FFmpeg</a></td>
|
<td><a href="https://ffmpeg.org/">FFmpeg</a></td>
|
||||||
<td>媒体处理</td>
|
<td>媒体流处理</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://deno.com/">德诺</a></td>
|
<td><a href="https://deno.com/">Deno</a></td>
|
||||||
<td>与 yt-dlp 集成的运行时</td>
|
<td>集成运行环境</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="section"><th colspan="2">库和框架</th></tr>
|
<tr class="section"><th colspan="2">库与框架</th></tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://wiki.qt.io/Qt_for_Python">PySide6</a></td>
|
<td><a href="https://wiki.qt.io/Qt_for_Python">PySide6</a></td>
|
||||||
<td>GUI框架</td>
|
<td>GUI 框架</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://python-pillow.org/">枕头</a></td>
|
<td><a href="https://python-pillow.org/">Pillow</a></td>
|
||||||
<td>图像处理</td>
|
<td>图片处理</td>
|
||||||
</tr>
|
|
||||||
<tr><td><a href="https://requests.readthedocs.io/">请求</a></td>
|
|
||||||
<td>HTTP 请求</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://packaging.python.org/">包装</a></td>
|
<td><a href="https://requests.readthedocs.io/">requests</a></td>
|
||||||
<td>版本和包处理</td>
|
<td>网络请求</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://python-markdown.github.io/">降价</a></td>
|
<td><a href="https://packaging.python.org/">packaging</a></td>
|
||||||
|
<td>版本管理</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><a href="https://python-markdown.github.io/">markdown</a></td>
|
||||||
<td>Markdown 渲染</td>
|
<td>Markdown 渲染</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://github.com/Delgan/loguru">loguru</a></td>
|
<td><a href="https://github.com/Delgan/loguru">loguru</a></td>
|
||||||
<td>记录</td>
|
<td>日志记录</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="section"><th colspan="2">资产和贡献者</th></tr>
|
<tr class="section"><th colspan="2">内容与贡献</th></tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://pixabay.com/sound-effects/new-notification-09-352705/">Universfield 的新通知 09</a></td>
|
<td><a href="https://pixabay.com/sound-effects/new-notification-09-352705/">Universfield 的通知音效</a></td>
|
||||||
<td>通知声音</td>
|
<td>通知声音</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://github.com/viru185">viru185</a></td>
|
<td><a href="https://github.com/viru185">viru185</a></td>
|
||||||
<td>代码贡献者</td>
|
<td>代码贡献</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@@ -606,12 +567,10 @@ YTSage/
|
|||||||
|
|
||||||
## ⚠️ 免责声明
|
## ⚠️ 免责声明
|
||||||
|
|
||||||
该工具仅供个人使用。请尊重 YouTube 的服务条款和内容创作者的权利。
|
本工具仅供个人学习与研究使用。请尊重 YouTube 服务条款及创作者版权。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
|
由 [oop7](https://github.com/oop7) 倾力协作 ❤️
|
||||||
由[oop7](https://github.com/oop7)用❤️制作
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user