Собрать только измененные файлы в архив ''.zip'' - удобно для дополнений к раздачам при выпуске обновлений:
<code>
zip modified-files.zip $(git ls-files --modified)
</code>
===== 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|релизов]].
Создадим целевую директорию для загружаемого плейлиста:
<code>
mkdir NAME
</code>
<code>
cd NAME
</code>
Загрузка осуществляется одной командой, по-умолчанию используется формат оригинала, на момент написания материала - [[https://ru.wikipedia.org/wiki/WebM|webm]]
<code>
yt-dlp CHANNEL_URL|PLAYLIST_URL|VIDEO_URL
</code>
По-умолчанию, будет загружена версия в максимально возможном качестве. Если нужно уменьшить размер файлов в релизе, например до 1080p, нужно указать дополнительный флаг:
Чтобы загрузить весь канал и автоматически разложить видео по директориям с названием плей-листа, можно использовать флаг //output// и [[https://github.com/yt-dlp/yt-dlp#output-template-examples|макросы]], например:
Если нужно сохранить только аудио-дорожку, указываем флаг //extract-audio// или сокращенно - //x//\\
По-умолчанию, будет использован оригинальный аудио-кодек или opus, если нужно осуществить пост-конвертацию, например в mp3 или vorbis (ogg), добавляется флаг //audio-format//\\
Качество аудио указывается параметром //audio-quality// в значении от 0-10 (5 по-молчанию)\\
В случае, если загрузка была прервана, при повторном запуске будет произведена проверка целостности файлов и загрузка продолжится с последнего успешно загруженного файла в плейлисте.
[[https://github.com/FreeTubeApp/FreeTube|FreeTube]] - это альтернативный клиент, с открытым исходным кодом, для приватного просмотра и загрузки видео с YouTube.
Характерной особенностью проекта является возможность создания локальных коллекций и подписок, без передачи данных третьим лицам.\\
В качестве шлюза, используется случайная инстанция [[https://api.invidious.io/|Invidious]].
Интерфейс содержит инструменты для удобной загрузки субтитров, видео и аудео дорожек.
На момент написания материала, к недостаткам можно отнести отсутствие возможности загружать видео в более высоком качестве, чем 720p/25fps\\
Поэтому проект больше подойдет для локального просмотра видео YouTube без наличия аккаунта, рекламы а также без географических ограничений.