greeple
Gold Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: Ну вообще-то мне желателен такой вариант скрипта чтоб работал автономно вообще. | Ну по сути так он и работает, потести, я не тестил на реальном стриме если стрим закончится, как он будет дальше в цикле отрабатывать, но если самому закрыть ffmpeg, то нормально запускает заново. Там в названии стрима время с часами и минутами обычно если остановится и начнётся то создаст новый файл, но если минута в минуту я не пробовал, по идее не будет качать пока не изменится минута. А если ты с флагом --live-from-start запускаешь, то файл с одним названием, и если в папке будет файл (ну ты например уже качал стрим, он оборвался и запустился заново) то yt-dlp не будет его записывать. Будет просто цикл бесконечный с вызовом yt-dlp который будет говорить что файл уже есть. Надо тогда добавлять ещё флаги куда сохранять, не -o а по другому можно было бы и так -P temp:\"C:\\Temp\" -P home:\"~\\desktop\" но так тоже видит в последней файл и не запускает Тогда только добавляя в название время %(title)s_%(epoch-3600>%H-%M)s.%(ext)s Проверил, так нормально, каждый запуск будет нормально записывать. Но ты не учитываешь что флаг каждый раз будет заново стрим сначала качать, если будет обрыв по каким-то причинам. Будет просто несколько файлов с одним стримом. А если оставить без добавления времени, то не будет записывать при обрыве, будет писать файл уже есть. Перетаскивать его скриптом в другое место, но это как последняя мера. А если стрим без записи идёт, то потом ты его не скачаешь, если у тебя стрим качался и тормознулся и ты в цикл попал. Ну кароче дальше уже сам думай как удобней, либо качать в несколько одинаковых файлов при обрыве с флагом и минутами в названии, или без флага. Потестишь - расскажешь. Добавлено: Просто если ты мониторишь стрим, то он у тебя и без флага будет качать сначала. Если в тайминг попадёт, то не пропустил ни секунды, а максимум может потерять 30 секунд, но может и меньше. Много не потеряешь. можешь добавить перемещение move c:\test\file1.txt D:\folder2\file2.txt пути должны быть полными Код: function w(wh){ while (xhr(wsarg)!=true) {WSH.Sleep(30000)}; wh.Run ("yt-dlp.exe --no-part --playlist-end 1 " + wsarg,1,true); WSH.Sleep(50) wh.Run ("move .... ",1,true); w(wh); }; | сюда, но надо в move передать название стрима, каждый раз брать из стрима не вариант, можно один раз получить и записать в переменную, но надо тестить, а если во время стрима будет меняться название, то надо тоже как то менять иначе не переместит файл и опять попадёт в цикл Либо называть стрим по своему и потом переименовывать, кароче очень много всего может быть | Всего записей: 5541 | Зарегистр. 11-02-2020 | Отправлено: 21:54 28-04-2024 | Исправлено: greeple, 21:56 28-04-2024 |
|