Бесплатный плеер VOD Kick и Twitch
Почему Twitch глушит звук в VOD и что значит -unmuted
Повтор Twitch может идти безупречно, потерять звук на несколько минут, а потом вернуть его. Это не ошибка плеера и не твоё соединение: Twitch удалил звук этого отрезка. Здесь объясняется, что на самом деле содержит плейлист, почему его именование противоположно ожидаемому и что это значит для тех, кто делает плеер.
Обновлено
Что такое приглушённый отрезок на самом деле
Twitch автоматически проверяет звук записанных трансляций на авторские права. Когда отрезок совпадает с защищённым треком, звук этого диапазона удаляется из записи. Видео не трогают, таймлайн сохраняет ту же длину, и воспроизведение идёт нормально — пропадает только звук.
Это решается на стороне Twitch, ещё до того, как файл увидит любой сторонний плеер. Расширение браузера, настольное приложение и NoSub получают ровно одну и ту же запись без звука.
Неочевидная часть: -unmuted помечает именно немой отрезок
VOD с Twitch отдаётся как плейлист HLS, перечисляющий тысячи коротких сегментов. Внутри приглушённого диапазона эти сегменты называются не -muted, как можно было бы ожидать. Они перечислены с суффиксом -unmuted.
В публичных плейлистах, с которыми работает NoSub, запрос одного из таких файлов -unmuted возвращает HTTP 403, тогда как тот же путь с -muted отдаётся. Практическое правило поэтому опирается на ответ CDN: -unmuted не означает, что плееру доступен слышимый звук.
Что NoSub наблюдает в публичных плейлистах
Реализуя воспроизведение приглушённых отрезков, NoSub раз за разом сталкивался с одним и тем же поведением публичных плейлистов:
- URI с -unmuted в затронутых медиаплейлистах помечает отрезок, который публичный повтор отдаёт без оригинального звука.
- Прямой запрос этого файла -unmuted возвращает 403, а не оригинальный звук.
- Соответствующий файл -muted — единственный вариант, который CDN действительно отдаёт.
- Таймлайн никогда не меняет длину; отсутствует только звук диапазона.
Что это значит, если ты делаешь плеер
Плеер, который передаёт плейлист без изменений, ломается так, что это выглядит не связанным со звуком:
- Ответы 403 начинаются ровно там, где начинается приглушённый отрезок, поэтому воспроизведение встаёт посреди VOD вместо сообщения о проблеме со звуком.
- Обычный симптом — бесконечный индикатор загрузки, из-за которого люди ищут несуществующую ошибку сети или качества.
- Решение — переписать -unmuted в -muted в медиаплейлисте, прежде чем отдать его плееру.
- Отдельно: CDN для VOD у Twitch не отправляют заголовки CORS, поэтому браузерному плееру нужно ещё и проксировать сегменты, чтобы прочитать их байты.
Можно ли вернуть оригинальный звук?
Из публичного источника VOD, которым пользуется NoSub, — нет. Переписывание имени сегмента ничего не восстанавливает: оно лишь запрашивает приглушённый файл, который CDN и правда отдаёт.
Чтобы вернуть слышимый звук, понадобилась бы отдельная копия, сохранённая до того, как Twitch применил приглушение. NoSub не размещает и не архивирует трансляции, поэтому такой копии у него нет.
Вопросы
Почему VOD с Twitch вдруг теряет звук?
Twitch удалил звук этого отрезка после того, как автоматическая проверка авторских прав нашла совпадение с защищённым треком. Видео не тронуто, и звук возвращается после конца диапазона.
Значит ли -unmuted, что звук доступен?
Нет, наоборот. Имя сегмента с -unmuted помечает приглушённый диапазон, и запрос этого файла возвращает 403. Отдаётся только вариант -muted.
Можно ли скачать оригинальный звук приглушённого VOD с Twitch?
Из публичного источника VOD, которым пользуется NoSub, — нет. Доступный сегмент содержит запись без звука, а более ранней копии NoSub не хранит.
Почему мой плеер встаёт, а не просто теряет звук?
Потому что он запросил перечисленные в плейлисте файлы -unmuted и получил череду ответов 403. Переписывание их в -muted убирает зависание.
Приглушает ли Kick повторы так же?
Kick не использует в своих плейлистах аналогичного соглашения о приглушённых сегментах, так что это поведение встречается только у Twitch.
Показывает ли NoSub, где пропадает звук?
Да. NoSub отмечает приглушённые диапазоны прямо на полосе перемотки, поэтому немой отрезок виден заранее. Сам NoSub ничего не размещает и читает только публичный источник; правообладатели могут воспользоваться страницей правовой информации.
NoSub
Почему VOD с Twitch вдруг теряет звук, почему сегменты -unmuted возвращают 403 и что должен делать браузерный плеер, чтобы повтор не вставал.
Открыть NoSub