Автор выложил весь процесс своих роликов: забрать оттуда можно по одному скрипту

20 сентября 2026 года автор, который публикует по два-три ролика в день, открыл под MIT весь свой производственный процесс - скрипты, правила и замеренные цифры. Что из этого работает у любого монтажёра, почему ни один скрипт не запускается из папки репозитория и как получить субтитры, если озвучиваете своим голосом.

20 сентября 2026 года автор канала с расследованиями выложил под лицензией MIT весь процесс, по которому делает свои ролики: от поиска фактов до текстов под восемь площадок. По его словам, канал выходит по два-три раза в день, а один ролик собрал 700 тысяч просмотров.

Ролики там чужие вам по формату - горизонтальные десятиминутки, синтезированный голос, лица в кадре нет. Ценность в другом: каждый кусок процесса лежит отдельным скриптом или отдельным правилом, и вы берёте один, не трогая остальные. Денег это не стоит: лицензия MIT, скачивается напрямую.

Первые двадцать секунд его ролика: у каждого кадра слева внизу источник с датой, внизу целиком фраза субтитра, скриншоты вставлены карточками с тенью
Источник ролика: GitHub, investigation-video-skill

Музыку под голос приглушает скрипт

mix-bgm.sh - двадцать строк, которые кладут музыку под озвучку. Обычно громкость музыки под каждую фразу вы рисуете руками, и на десятиминутном ролике таких точек выходят сотни; здесь их ставит скрипт.

Музыка идёт на 22% громкости, проседает через 20 миллисекунд после начала фразы и возвращается через 350 после её конца; въезд длится 1,5 секунды, выезд - 3,5.

Картинка при этом копируется как есть: перекодируется только звук, поэтому минутный ролик собирается за секунды и качество кадра не меняется.

Готовый файл до выгрузки смотрит машина

qa.py открывает готовый ролик и отвечает списком: размер кадра, частота кадров, длительность, вес файла, ошибки декодирования, чёрные кадры от 0,3 секунды, паузы в звуке длиннее полутора секунд, число субтитров и не вылезает ли последний за конец ролика. Отдельно скрипт нарезает по кадру из каждой сцены на один лист - глазами вы смотрите уже этот лист.

Ориентир по звуку там же: средняя громкость около -16 LUFS, пиковая около -2 dBTP. Дальше автор советует подгонять под нормы той площадки, куда выкладываете.

Замеренные цифры действительно замеренные

Автор пишет, что числа в документации получены опытом. Я прогнал его же выложенный ролик через ту самую проверку и через замер громкости.

проверка чужого ролика теми же командами
ffmpeg -i sample-preview.mp4 -vf blackdetect=d=0.3:pix_th=0.06 \
  -af silencedetect=n=-45dB:d=1.5 -f null -
ffmpeg -i sample-preview.mp4 -af ebur128=peak=true -f null -

Результат: ни одного чёрного кадра, ни одной паузы длиннее полутора секунд, средняя громкость -16,2 LUFS при обещанных -16, пик -1,8 при обещанных -2. Своё же правило он держит с точностью до десятых.

Сколько секунд надпись обязана висеть

Эта часть процесса переносится в любой монтаж и не требует ни одного скрипта. Время автор считает с того момента, когда текст полностью встал и перестал двигаться: анимация появления и ухода в счёт не идёт.

  • Короткая надпись в углу - от 2,5 до 3 секунд.

  • Целая фраза - от 4 секунд и дальше по числу знаков.

  • Скриншот-доказательство - около 5 секунд после того, как он встал, весь кадр обычно выходит на 8-9.

  • Итоговое число - от 3 секунд.

И запрет: не хватает голоса под кадр - режьте текст или удлиняйте сцену. Ужимать доказательство с восьми секунд до трёх нельзя.

⚠️
Две вещи, которые выяснятся на первом запуске

Скрипты работают только из папки вашего ролика. Субтитры на своём голосе собираются другой командой.

  • Каждый ролик там - отдельная папка проекта, и скрипты ищут файлы рядом с собой. Запустите qa.py или mix-bgm.sh из репозитория - получите «не найден renderer/...», и это задумано так. Сначала копируете скрипт в папку своего ролика, потом запускаете оттуда.

  • Субтитры автор получает от синтеза речи: китайский Volcengine возвращает начало и конец каждого символа в миллисекундах, и распознавание ему не нужно вовсе. На своём голосе приём остаётся, времена для него даёт разбор записи, и запасной путь под это в скрипте уже прошит: нет времён от синтеза - берёт разбор Whisper. Как это выглядит на деле - в разделе ниже.

Свой голос: времена даёт разбор записи

Приём с субтитрами переносится целиком, меняется в нём один источник времён. У автора их отдаёт синтез речи. Если ролик наговорен своим голосом, те же времена достаёт Whisper - бесплатная программа распознавания речи, работающая прямо на вашем компьютере. Её просят вернуть каждое слово отдельной строкой, с началом и концом.

пословная разметка своей записи
whisper-cli -m ~/whisper-models/ggml-large-v3-turbo.bin \
  -f audio.wav -l ru -ml 1 -sow -ojf

Работают тут три ключа: -ml 1 режет разбор на отрезки длиной в одно слово, -sow держит слово целым и не даёт разорвать его посередине, -ojf кладёт результат в файл JSON - оттуда времена и забирает скрипт монтажа.

Я прогнал так свою запись на 54 секунды: 120 слов с границами в миллисекундах, шесть секунд работы. «Опыт» - с 0,00 по 0,32 секунды, «вижу» - с 1,44 по 1,58, «проблему» - с 1,58 по 2,30; медиана длины слова вышла 375 миллисекунд. Модель ggml-large-v3-turbo весит 1,5 гигабайта и скачивается один раз, дальше считает сам компьютер, и каждый следующий разбор бесплатный.

Огрехи в разборе есть, и видно их сразу: первое слово записи потерялось - в начале файла стоит отрезок нулевой длины; «вайб-кодинг» разъехалось на два слова; «телеграм» записалось латиницей. Правится это руками в готовом файле: границы там уже проставлены, меняется одно написание.

Из программ понадобятся ffmpeg, yt-dlp, Node и Python с Pillow. Платная часть тут одна - тот самый китайский синтез речи, и он живёт в двух отдельных файлах, которые меняются на свои.

Документация целиком на китайском, английской нет. Репозиторий вышел 20 сентября 2026 года и собрал 58 звёзд - чужого опыта работы с ним пока просто нет, а правила и цифры внутри проверяются на своём ролике за один вечер.

Подписаться на @kursorai