====== Утилиты ======
В разделе рассмотрены различные утилиты для создания локальных коллекций и оформления торрент-раздач.
===== Веб =====
==== wget ====
Локальное зеркало веб-сайта:
wget -e robots=off --relative --recursive --timestamping --page-requisites --convert-links --adjust-extension --no-remove-listing "url"
===== GIT =====
Собрать только измененные файлы в архив ''.zip'' - удобно для дополнений к раздачам при выпуске обновлений:
zip modified-files.zip $(git ls-files --modified)
===== YouTube =====
==== yt-dlp ====
[[https://github.com/yt-dlp/yt-dlp|yt-dlp]] - это форк известной CLI утилиты [[https://github.com/ytdl-org/youtube-dl|youtube-dl]], позволяющий загружать плейлисты и отдельные ролики с YouTube.
API YouTube постоянно обновляется, и прежде чем приступить к загрузке контента, важно установить последнюю версию из исходников или загрузить готовую сборку в разделе [[https://github.com/yt-dlp/yt-dlp/releases|релизов]].
Создадим целевую директорию для загружаемого плейлиста:
mkdir NAME
cd NAME
Загрузка осуществляется одной командой, по-умолчанию используется формат оригинала, на момент написания материала - [[https://ru.wikipedia.org/wiki/WebM|webm]]
yt-dlp CHANNEL_URL|PLAYLIST_URL|VIDEO_URL
По-умолчанию, будет загружена версия в максимально возможном качестве. Если нужно уменьшить размер файлов в релизе, например до 1080p, нужно указать дополнительный флаг:
yt-dlp CHANNEL_URL|PLAYLIST_URL|VIDEO_URL -S res:1080
Чтобы загрузить весь канал и автоматически разложить видео по директориям с названием плей-листа, можно использовать флаг //output// и [[https://github.com/yt-dlp/yt-dlp#output-template-examples|макросы]], например:
yt-dlp CHANNEL_URL/playlists -o '%(uploader)s/%(playlist)s/%(title)s.%(ext)s'
Если нужно сохранить только аудио-дорожку, указываем флаг //extract-audio// или сокращенно - //x//\\
По-умолчанию, будет использован оригинальный аудио-кодек или opus, если нужно осуществить пост-конвертацию, например в mp3 или vorbis (ogg), добавляется флаг //audio-format//\\
Качество аудио указывается параметром //audio-quality// в значении от 0-10 (5 по-молчанию)\\
yt-dlp CHANNEL_URL|PLAYLIST_URL|VIDEO_URL --extract-audio --audio-format vorbis
Узнать все доступные опции, можно командой
yt-dlp --help
В случае, если загрузка была прервана, при повторном запуске будет произведена проверка целостности файлов и загрузка продолжится с последнего успешно загруженного файла в плейлисте.
=== yt-dlp-web-ui ===
Локально-ориентированная графическая оболочка для загрузки в браузере:
[[https://github.com/marcopeocchi/yt-dlp-web-ui]]
==== FreeTube ====
[[https://github.com/FreeTubeApp/FreeTube|FreeTube]] - это альтернативный клиент, с открытым исходным кодом, для приватного просмотра и загрузки видео с YouTube.
Характерной особенностью проекта является возможность создания локальных коллекций и подписок, без передачи данных третьим лицам.\\
В качестве шлюза, используется случайная инстанция [[https://api.invidious.io/|Invidious]].
Интерфейс содержит инструменты для удобной загрузки субтитров, видео и аудео дорожек.
На момент написания материала, к недостаткам можно отнести отсутствие возможности загружать видео в более высоком качестве, чем 720p/25fps\\
Поэтому проект больше подойдет для локального просмотра видео YouTube без наличия аккаунта, рекламы а также без географических ограничений.
~~DISCUSSION~~