urantij / twitchvor Goto Github PK
View Code? Open in Web Editor NEWВорует стрим с твича
Ворует стрим с твича
В логах просто ни следа. При первом запуске работает, потом кидает ошибку таймаут за 100 сек и всё, афк.
Раньше обновлял видео, чтобы добавлять время загрузки. Вот бы вернуть это...
System.Net.Http.HttpRequestException: Sent 41735071744 request content bytes, but Content-Length promised 43260089113.
То есть расхождение по количеству байт роляет, если оно слишком большое.
Наверное, можно засунуть ещё один контент стрим, который зальёт недостающие байты.
Или мб изменение размера можно просчитать. Это же контейнер меняется, мб их размеры не варьируемые
На данный момент финишер сам собирает стампы, например по доте.
А если я захочу добавить радугу? Буду тут же пихать?
Логичнее было бы сделать ивент, чтобы был менеджер доты, который подписался бы, у себя бы отработал добавление стампов, и было бы чистенько и гладенько.
Подручный выглядит забавно, но заюзать реальный было бы прикольнее
оно становится дефолтным, его нужно указывать
Там же тоже есть вёдра, можно их тоже прикрутить, а не только вольюм юзать
Че паблик, че не паблик, жесть какая то
На данный момент каждый загрузчик вычисляет всю информацию, каждый раз считает итоговый размер видео и прочее. Плюс удаляет файлы, если не стоит конфиг на сохранение, что руина.
Только как бы его сделать цветным...
Если долго ничего не писать в пайп вк аплоадера, то он ломает этот пайп. Время для таймаута неизвестно, но тут че то придумать надо.
#30 Вот если сделать буфферизацию, можно текущий сегмент писать медленно, пока не появится следующий.
Известно время сегментов. Можно посмотреть, сколько секунд за сколько секунд обрабатывается, делать предположения
Вернуть
Даже если видео успешно загрузилось, бд, вроде как, лежит. Нужно проверить.
Можно запускать ффмпег, считать его выданные байты, но передавать их в дев/нул. Скорость смены контейнера в таком случае 190х, то есть сценарий реалистичный.
Если чанкед (1080п60) поменяется на chunked (1080п), ты ничего не заметишь, и запишешь всё в один видеворолик. И пизда.
Вернуть
Они же теряются..
Например, я хочу кастомные временные отметки делать. Или добавлять всякое в описание видео.
Нужен какой-то апи, но просто чтение с сокета чему то поднимает стоимость по памяти значительно. С того же твича личку читать впадлу... хз короче.
В информации стрима есть инфа о том, как долго стрим идёт. Только проблема в том, что нужно пропуски переделать, потому что не привязано к сегментам.
После стрима пришло. Бтв, ведро удалено.
TimewebNet.Exceptions.BadCodeException: Плохой код вернулся. GatewayTimeout Gateway Timeout
TimewebSpaceProvider.cs:line 196
StreamHandler.cs:line 143
StreamsManager.cs:line 83
Сейчас стример сменил ник, я забыл в конфиге это поменять. В итоге бот всё равно нашёл, что стрим начался, но при попытке загрузки падала странная ошибка.
TwitchStreamDownloader.Exceptions.WrongContentException: Content wasnt parsed properly. (GetAccessToken)
{"data":{"streamPlaybackAccessToken":null},"extensions":{"durationMilliseconds":24,"requestID":"тут айди реквеста не знаю можно ли показывать хд"}}
То есть ответ от жикуеля есть, но там нулл. И это на старый ник всё.
Не уверен, что тут нужно делать. Мб через апи проверять, что стример тот же, если айди есть? Ситуация редкая, но, как выяснилось, возможная.
При асинхронном спейсе на каждый сегмент создаётся свой таск, при том сегменты приходят пачками, что даёт спайки нагрузки
Ведра не выдерживают 20к запросов за пару часов. Можно хранить сегменты на диске по 500МБ или около того, сделать доп таблицу, в которой будет инфа о соединении, и такими сегментами их уже выгружать
Было бы неплохо качать чат, чтобы потом его в субтитры превращать
Нет смысла ориентироваться только на програмдейт сегментов.
Ты сам можешь не загрузить часть сегментов, например. Лучше выяснять скипы в момент сегментирования видосов в финишере.
Можно качать наперёд сегменты, чтобы не ждал рукопожатия каждый раз
Типа записался второй видос из трёх, как по сегментам при перезаливе будем бить? Нужно сейвить инфу о видосе, типа какие сегменты он занял
Можно после загрузки стрима обновлять описание страницы в вк, типа
При инициализации Timeweb спейс провайдера возможно, шо ацес токен будет инвалид, несмотря на временные рамки? Мб и да, тогда нужно делать проверку на форбиден и обновлять.
Че то он начала умирать страшным и непонятным образом
Если всё вылетит, то есть бд и есть сегменты, можно че-то да восстановить
Таймаут загрузки вк 4 часа, потому что оно не различает таймаут начала запроса и всего запроса.
https://thomaslevesque.com/2018/02/25/better-timeout-handling-with-httpclient/
У меня было несколько допущений в проверке успешности, и в гугле выяснил, что нормально я не исправил, потому что ффмпег не всегда даёт статус код != 0, если провал.
В теории, он пишет что-то, если ошибка, но я не выяснил что.
В случае успеха пишет что-то вроде
video:5132kB audio:562kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.314068%
Нуно следить.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.