Files

123 lines
10 KiB
Markdown

# RedGifs Video Downloader
![RedGifs Video Downloader preview](docs/release-preview.png)
Локальное расширение Chromium для сохранения разрешённых пользователю видео с RedGIFs. Расширение добавляет кнопку загрузки непосредственно на карточки, показывает ход выполнения и собирает HLS-потоки на устройстве пользователя.
> [!IMPORTANT]
> Это неофициальный проект, не связанный с RedGIFS, Google или GitHub. Он предназначен только для совершеннолетних пользователей и только для материалов, которые пользователь создал сам либо получил явное разрешение сохранить. Условия RedGIFS могут ограничивать скачивание контента; ответственность за соблюдение условий сайта и прав авторов несёт пользователь.
## Возможности
- кнопка загрузки на обнаруженных карточках, в ленте и полноэкранном просмотре;
- автоматический выбор HD MP4 с резервными вариантами;
- локальная обработка MP4, GIF и HLS без стороннего сервера;
- наглядное уведомление с ходом загрузки и пятисекундным обратным отсчётом;
- отметка уже скачанных роликов по стабильному RedGIFS ID;
- повторная загрузка через оранжевую кнопку при наведении на зелёную галочку;
- понятные имена файлов из метаданных ролика;
- пользовательская подпапка внутри `Загрузок`;
- необязательная группировка по имени профиля;
- резервный сканер видимых роликов в popup;
- диагностический журнал с удалением токенов, cookie и других секретов;
- без регистрации, платного счётчика, аналитики и телеметрии.
## Установка
### Из Gitea Release
1. Скачайте архив `RedGifs-Video-Downloader-v0.6.23.zip` из последнего Release.
2. Распакуйте архив в постоянную папку. Не удаляйте её после установки.
3. Откройте `chrome://extensions` в Chrome, Chromium, Brave или другом совместимом браузере.
4. Включите **Режим разработчика**.
5. Нажмите **Загрузить распакованное расширение**.
6. Выберите распакованную папку, внутри которой находится `manifest.json`.
Расширение распространяется вручную: его публикация в Chrome Web Store не планируется из-за правил магазина для расширений, основная функция которых относится к сайтам с контентом для взрослых.
## Использование
1. Откройте страницу ролика, профиль, нишу или ленту RedGIFS.
2. На распознанной видеокарточке появится круглая розовая кнопка загрузки.
3. Нажмите её и дождитесь завершения. Страница покажет текущий этап и ход загрузки.
4. После успешного сохранения кнопка станет зелёной. При наведении появится действие повторной загрузки.
Если кнопка не появилась, откройте popup расширения и запустите резервное сканирование видимых роликов. При бесконечной ленте новые карточки обрабатываются по мере прокрутки.
## Настройки
Настройки находятся под шестерёнкой в popup и по умолчанию свёрнуты.
- **Подпапка внутри Загрузок** — относительный путь, например `Видео/RedGifs`.
- **Группировать по профилям** — добавляет к пути имя профиля из URL или метаданных карточки.
- **Всегда спрашивать место сохранения** — включает системный диалог браузера.
Пример итогового пути:
```text
Загрузки/RedGifs/example-profile/Название ролика.mp4
```
Фактическая корневая папка определяется настройками загрузок браузера. Расширения Chromium не могут произвольно сохранять файлы за пределами разрешённого браузером каталога.
## Приватность и безопасность
- видео обрабатывается локально в браузере;
- сторонние серверы проекта отсутствуют;
- аккаунт и email не требуются;
- аналитика и телеметрия отсутствуют;
- сетевой доступ ограничен `redgifs.com` и его поддоменами;
- настройки и история скачанных ID хранятся в локальном хранилище расширения;
- диагностический журнал создаётся только по команде пользователя;
- чувствительные заголовки, токены, cookie, query-параметры и hash удаляются или заменяются на `[redacted]`.
Подробнее: [PRIVACY.md](PRIVACY.md).
## Разрешения браузера
| Разрешение | Назначение |
| --- | --- |
| `activeTab`, `scripting` | обнаружение роликов и отображение интерфейса на открытой вкладке RedGIFS |
| `downloads` | передача готового файла менеджеру загрузок браузера |
| `offscreen` | локальная сборка Blob/HLS вне жизненного цикла popup |
| `storage` | настройки, история скачанных ID и временная диагностика |
| `tabs` | связь popup и service worker с открытой вкладкой |
| `https://redgifs.com/*`, `https://*.redgifs.com/*` | получение разрешённых медиа и метаданных только с RedGIFS |
## Поддерживаемые форматы
- прямой MP4;
- GIF;
- HLS с выбором потока наибольшего доступного разрешения;
- AES-128 HLS.
SAMPLE-AES и DRM не поддерживаются и не обходятся. Очень большие HLS-ролики могут потребовать заметный объём оперативной памяти, поскольку сегменты собираются локально.
## Диагностика
Диагностика по умолчанию выключена. Для поиска проблемы откройте настройки popup, включите переключатель **Включить диагностику**, воспроизведите проблему и нажмите **Скачать диагностический лог**. После отключения накопленные диагностические события и история позиционирования очищаются. Журнал не содержит тело видео и намеренно очищается от известных секретов.
Перед публикацией диагностического файла всё равно рекомендуется просмотреть его вручную.
## Правовой статус
Исходный код и релизные сборки предоставляются по проприетарной лицензии **All Rights Reserved**. Разрешена только установка и запуск неизменённого официального релиза для личного некоммерческого использования. Копирование, изменение, форки, публикация зеркал, перераспространение, продажа и создание производных работ запрещены без предварительного письменного разрешения правообладателя.
Полный текст: [LICENSE](LICENSE).
Публичная доступность файлов в Gitea сама по себе не предоставляет дополнительных прав. Технически Gitea позволяет создать fork любого публичного репозитория, однако такой fork или иное копирование может нарушать условия этой лицензии.
## Версия
Текущая версия: **0.6.23**.
История релиза: [RELEASE_NOTES.md](RELEASE_NOTES.md).
## Отказ от гарантий
Программа предоставляется «как есть», без гарантий работоспособности, доступности RedGIFS, соответствия сторонним условиям или сохранности данных. Структура сайта и API могут измениться без предупреждения.
## Сайт проекта
[Сайт расширения](https://git.lonarpgproxy.space/extention/redgifs/).