Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/urantij/twitchrecords

Создание клипов на твиче
https://github.com/urantij/twitchrecords

telegram twitch

Last synced: 12 days ago
JSON representation

Создание клипов на твиче

Awesome Lists containing this project

README

        

## Что

Небольшое приложение для создания клипов на твиче с последующей загрузкой их в тг канал.

По большей части я просто скопировал код из другого своего проекта, но впихнул это всё в DI на базе асп нета, чтобы можно было потом веб панельку сделать.

## Как запустить

Для работы потребуется заполнить конфиг файл.
Имя канала и его айди. В теории можно было бы через твич апи брать айди, но мне лень, его можно найти за полминуты.

Твич апи это приложение, регистрируемое в консоли твича.
Твич чат заполнять не обязательно. Просто бот будет отвечать в чате, если есть аккаунт.

В конверсии нужно указать путь до *папки*, в которой лежат ffmpeg и ffprobe. Если не указано, будет пытаться просто запускать их без пути, что сработает, если система сама их может найти.

Для телеграма нужно создать своё приложение, указать айди и хеш.
Номер телефона аккаунта, через который будет идти загрузка.
Айди канала, куда будет загружаться видео.

При первом запуске программы на аккаунт придёт уведомление, что происходит вход через приложение. Нужно будет ввести код в консоль программы.

## Как использовать

В чате модераторы и владелец трансляции имеют следующие команды:

=старт [текст]

Начинает считать сегменты и запоминает указанный текст. Если текст не указан, ничего позже написано не будет.

=стоп [текст]

Заканчивает считать сегменты через 15 секунд, после чего загружает их в указанный тг канал. Если текст указан, перезапишет тот, что был указан при старте. Если не указан, оставит тот, что был при старте.

=снимок [текст]

Берёт все текущие живые сегменты и загружает их в тг канал. С текстом, если он указан.

На данный момент есть проблема, что для отслеживания используются уже скачанные сегменты. То есть после команды старт начнут отслеживаться только будущие сегменты. Длина одного сегмента примерно 2 секунды.

## Чуть подробнее про что

Программа постоянно опрашивает твич на предмет наличия стрима через пабсаб и апи.
Если стрим обнаружен, его сегменты загружаются в файлы в папке кеша.

Хранятся сегменты до достижения определённой длительности, после чего старые сегменты удаляются, и они не занимают слишком много места.
1 секунда 1080п60 стрима весит чуть больше мегабайта. По умолчанию программа хранит сегменты на пять минут, то есть примерно три сотни мегабайт.

Твич присылает фрагменты в формате .ts, что можно грузить в тг, но тогда не будет доступен предпросмотр. ffmpeg берёт сегменты, конвертирует их в .mp4 формат, делает тамбнейл, и это уже загружается в тг.

Если сегменты нужны для команды старт, они не удаляются, пока не будет написан стоп. Лимита на запись нет, так что если забыть, будет записан весь стрим.

Ещё в тг есть ограничение на размер файлов. В 1080п60 за раз можно залить примерно полчаса. Программа не делит слишком большие сегменты, такое использование не предполагается.

При запуске программы файлы в папке кеша удаляются по умолчанию.