Недавно понадобилось сохранить видео с флеш-архива сайта Дебилизатор.ТВ.
При этом пользоваться программами захвата видео (или же звука) с экрана, оставив на какое-то время комп только проигрывать трансляцию, естественно не хотелось. Так что великим методом научного тыка был найден способ сохранения исходного видео с сайта в том формате, в котором оно поступает в сам плеер на странице.
Сегодня я расскажу об этом способе. Однако, нужно сразу предупредить, что процесс не самый лёгкий и быстрый, и конечный результат (в данном случае, например, это релиз сериала с ТВ-переводом) получить может быть вообще невозможно. Но если вам всё-таки нужно сохранить какую-либо трансляцию, то при отсутствии тюнера или IPTV — такие флеш-архивы каналов чуть ли не единственный способ.
Шаг 1
Допустим, необходимо сохранить последнюю 24 серию "Элементарно", идём сюда: http://www.debilizator.tv/pervyi_kanal/2013-06-29/23:00/
(тут должна была быть ссылка на серию 4 сезона "Грани", но оказалось что архив ТВ3 за последнюю неделю не работает полностью...)
Это к слову о сложности задачи в целом: записать хотя бы 10 серий из этих архивов может быть не так и просто. Мне не удалось. :-)
Как видно, продолжительность 1 передачи (серии) в эфире всего 50 минут (надеюсь, Первый ничего не вырезает!), но длительность записи в плеере — целых 4 часа. Это очень важно! Так как редко какая трансляция будет идти больше 4 часов, такой запас времени записи гарантирует, что всё нужное видео может быть записано из одного "куска", а не из двух.
В отличие от других сайтов, где длительность одной записи чаще всего совпадает с длительностью соответствующей передачи в программе, когда как в реальном эфире редко что-нибудь начинается вовремя. Из-за чего нужно будет записать ещё и следующее видео (а то и предыдущее, если программа длинная), что может привести к потери фреймов непосредственно в момент переключения файлов при записи.
После открытия страницы нажмите кнопку воспроизведения, подождите пару секунд пока видео заработает на самом деле. Потому что работать могут далеко не все передачи из эфира: часто плеер пишет, что архив перегружен.
Затем нажмите паузу, и не закрывая вкладку с видео, откройте http://www.debilizator.tv/maclist/
Там будет следующий js-код:
function MobileStart() { var mvideo = document.getElementById("player"); mvideo.src="http://50.7.188.162/video/6e41d51eabd35dff4cd10087c9c56775/2/playlist-1372532400-14700.m3u8"; mvideo.load(); } |
Запомните путь до m3u8-плейлиста — он ещё понадобится, и сохраните сам плейлист:
#EXTM3U #EXT-X-TARGETDURATION:10 #EXT-X-PLAYLIST-TYPE:VOD #EXTINF:10, media_137253239.ts #EXTINF:10, media_137253240.ts ... #EXTINF:10, media_137254708.ts #EXT-X-ENDLIST |
Всего 1470 TS-файлов по 10 секунд каждый и примерно по 1 Мб размером.
Шаг 2
При помощи несложного поиска/замены измените файл так, чтобы получился список URL'ов по одному на строку.
Так как в плейлисте были только имена файлов, подставьте в начало URL'ов полный путь, выясненный в Шаге 1:
http://50.7.188.162/video/6e41d51eabd35dff4cd10087c9c56775/2/media_137253239.ts http://50.7.188.162/video/6e41d51eabd35dff4cd10087c9c56775/2/media_137253240.ts ... http://50.7.188.162/video/6e41d51eabd35dff4cd10087c9c56775/2/media_137254708.ts |
Предварительно посмотрев, через сколько минут после начала записи начинается именно нужная вам программа (и сколько она длится), можно подсчитать сколько файлов в начале/конце списка можно пропустить, чтобы не качать лишние, т.к. продолжительность у всех них одинакова (10 секунд).
Сохраните файл, например как ts.lst.
Шаг 3
Чтобы скачать файлы под Windows, можно воспользоваться GetRight, либо другим менеджером закачек, который поддерживает простой список URL.
Под Linux:
wget -i ./ts.lst |
Шаг 4
Формат видео, кстати, будет примерно таким:
Говорю "примерно", потому что у REN-TV например звук был в моно.
Осталось соединить множество этих мелких файлов в один. Сделать это можно при помощи TSSplitter.
При этом потери кадров в местах склейки не будет, и видео остаётся оригинальным — без перекодирования и неизбежной потери качества.
Шаг 5 (offtopic)
После этого можно вырезать рекламу при помощи H264TS_Cutter или другого прямопотокового редактора TS/AVC. Попробовав несколько штук, найти приличный так и не удалось. Так что вопрос выбора редактора остаётся открытым.
Для извлечения AAC из TS (всем ведь на самом деле нужен только звук, верно?): tsMuxeR или что-то другое.
Для конвертирования AAC в WAV: FAAD и FaaGUI к нему.
(у меня почему-то конвертация из получившегося файла завершалась на половине с ошибкой.)
В итоге...
Это всё конечно не так просто, как поставить эфир на запись с экрана, но результат, имхо, стоит того.
И надеюсь данную возможность не прикроют после этого поста, а то это было бы очень грустно. :-/
Специально для rutracker.org, во имя появления новых релизов сериалов:)
Открываю в IE10 http://www.debilizator.tv/maclist/ Новая вкладка создается и сразу закрывается. Всплывает окно закачек “открыть или сохранить”. Если нажать “открыть”, то ничего не происходит. Если сохранить, то сохраняется файл js:
function MobileStart() {
var mvideo = document.getElementById("player");
mvideo.load();
}
михаил, попробуйте FF – у меня открывает JS просто во вкладке как обычный текстовый файл.
а почему URL’а нет не знаю, стоит попробовать несколько раз. пример в тексте реальный, делал только вчера. так что всё должно получиться
По поводу навигации по этой куче 10-секундных ссылок вставлю свои 5 копеек. Скачанный плейлист открываем в microsoft excel. Дальше по меню: Данные – Фильтр – Автофильтр. В появившемся раскрывающемся списке выбираем “(Условие…)” В настройках фильтра: Показать только те строки, значения которых: начинаются с “media” (или med, или me – тут без разницы). Остается на виду только список ссылок, его выделяем целиком столбцом (или можно ячейками если не лень) и копирует на другой лист. Затем через замену меняем media на http://50.7.188.162/video/6e41d51eabd35dff4cd10087c9c56775/2/media . В принципе это можно сделать и в самом начале. Теперь напротив первой ссылки в я чейке следующего столбца ставим время начала этого 4-х часового куска (напр. 13:59:43 – его видно в плеере на сайте), напротив второй ссылки на 10 сек. больше – 13:59:53. Выделяем обе ячейки и подводим курсор к правому нижнему углу, пока курсор не превратится в черный крест, зажимаем ЛКМ и тянем до самого низа списка. Теперь напротив каждой ссылки стоит время.
PS Возможно есть способ проще.
михаил, Excel’ем определённо быстрее, чем к примеру макросом в Notepad++. спасибо за совет
хм… что-то http://www.debilizator.tv/maclist/ вообще перестал плейлист выдавать
михаил, а когда последний раз выдавало?
а то у них в новостях от 06/07/13 написано, что обновили плеер.
эххх, не надо было писать что ли :(
Буквально позавчера, вчера утром еще качал нормально.
Да уж… на каждую хитрую жопу найдется болт с резьбой.
PS Отписал в PM