Накостылял тут для себя грабилку. Надо кому? Спойлер: README ЛИКБЕЗ ------ Интернет-трансляции передаются браузеру чанками (кусками, chunk). Скрипт плеера отслеживает обновления плейлиста и скачивает очередной чанк для показа в браузере. Утилита youtube-dl (в отличие от сервисов типа savefrom.net) умеет собирать чанки, а не только работать с полными файлами для скачивания. Она прекрасна. Однако с трансляцией Матч ТВ: смотреть игры в прямом эфире бесплатно | Прямые спортивные трансляции онлайн не справляется, несмотря на присутствие в списке заявленных. Автор на просьбы забил и разговаривать не хочет. Пришлось накостылить собственную грабилку. Поскольку я в этих ваших интернет-протоколах ни в зуб ногой, воспользовался браузером типа Chrome (у него кэш хранится в виде отдельных файлов, а не запихнут в базу, как у файрфокса). ПРИНЦИП РАБОТЫ -------------- В бесконечном цикле запускается утилита inotifywait — следилка за записью файлов в каталоге кэша браузера. Если она обнаруживает достойного кандидата, копирует этот чанк во временный каталог. Когда пользователь нажмет Ctrl+C в консоли, где запущен скрипт, цикл захвата прерывается, а из захваченных кусков собирается полное видео. КАК ГРАБИТЬ ----------- Настроить пути в скрипте. Запустить трансляцию в хромиуме (хроме, хромоклонах). Выбрать в настройках желаемое качество видео. Запустить скрипт. Нажать Ctrl+C для остановки захвата чанков. Дождаться сборки видеофайла. ??? PROFIT! НАСТРОЙКИ --------- TARGET_DIR — куда писать финальное видео. CACHE_PATH — путь к кэшу хрома на вашем компе. Для убунты, стандартно, $HOME/.cache/chromium/Default/Cache ПРИМЕЧАНИЯ ---------- Нажатие Ctrl+C перехватывается командой trap. Завершается не весь скрипт, а бесконечный цикл захвата чанков. После этого из чанков собирается полное видео, а временныйе файлы удаляются. Если долго нет реакции (больше минуты) нажмите еще раз (но вроде этот глюк я победил). Спойлер: Скрипт Код: #!/bin/bash # настройки TARGET_DIR="/mnt/tirobaitneg/Загрузки/sport" CACHE_PATH="/mnt/tirobaitneg/.home/.cache/chromium/Default/Cache" # подготовительные операции TEMP_DIR=$TARGET_DIR/video-grabber ACCUM_DIR=$TARGET_DIR/video-grabber/chunks CHUNK_LIST=$TARGET_DIR/video-grabber/list.txt # удаляем старый (потерянный) временный каталог if [[ -d $TEMP_DIR ]]; then rm -rf $TEMP_DIR fi # создаем структуру временных каталогов mkdir -p $ACCUM_DIR # цикл захвата чанков из кэша хромиума, прерываем по Ctrl+C STOP_CAPTURE= trap "STOP_CAPTURE=1" SIGINT while true; do # ловим создание файла в кэше # FNAME=`inotifywait -q -e create --format %f $CACHE_PATH` # следим за ним, когда он закроется на запись FNAME=`inotifywait -q -e close_write --format %f $CACHE_PATH` # отбрасываем заведомо неподходящие по размеру файлы FILE="$CACHE_PATH/$FNAME" FSIZE=`stat --format=%s $FILE` if [ "$FSIZE" -gt "300000" ]; then # копируем чанк в накопительную директорию cp -p --reflink=auto $FILE /$ACCUM_DIR/ # печатаем инфо в консоль FSIZE=$(( FSIZE / 1024 )) echo "Чанк $FNAME, размер $FSIZE кБ" fi # проверяем команду завершения захвата if [ -n "$STOP_CAPTURE" ]; then echo echo "Остановка захвата чанков" break fi done # создаем список захваченных чанков,упорядоченных по времени создания i=1 STORE_IFS=$IFS IFS=$'\n' TEMP_LIST=`ls -1tr $ACCUM_DIR` IFS=$STORE_IFS echo "Создаю список чанков" for TEMP_NAME in $TEMP_LIST; do FILE="$ACCUM_DIR/$TEMP_NAME" # проверяем, что это потоковый чанк MINFO=`mediainfo --Inform="General;%Format%" $FILE` if [ -n "$MINFO" ]; then echo "file $ACCUM_DIR/$TEMP_NAME" >> $CHUNK_LIST fi done # склеиваем захваченные чанки echo "Собираю видео в файл $TARGET_DIR/video.ts" ffmpeg -hide_banner -loglevel 8 -y -f concat -safe 0 -i $CHUNK_LIST -c copy $TARGET_DIR/video.ts # удаляем временный каталог rm -rf $TEMP_DIR Максимальное качество 1080p 25fps. Жмакать тут: Элементы управления на записи не появляются. Можно выключить и снова включить звук, на записи не отразится.
под убунту есть замечательная SimpleScreenRecorder - грабит как весь экран, так выделенную область, вкладку + настройки сжатия, частоты кадров, кодеки и все такое, удобная
Вот только жрет, как не в себя. У меня проц дохловат для этой цели. Я, правда не эту пробовал, а OBS Studio. Даже 720р записывается с низким fps, на глаз меньше 20. Тогда я вспомнил, что много лет назад была какая-то прожка, которая сохраняла мультимедию из кэша файрфокса. Но у нынешнего файлфокса кэш запихнут в SQLite. Тогда я глянул в кэш хромиума, увидел там чанки в формате TS, убедился, что ffmpeg их отлично склеивает, хоть и ругается сильно, а наговнокодить скриптик уже дело техники. Звиняте, дядьку, к виндам уже лет семь не прикасался. P.S. @kajuga, глянул ваш ролик — та же фигня с низким fps. Я такое не могу смотреть, глаза начинают болеть сразу. Я и честные 25 fps на спортивных динамических сценах с трудом перевариваю. Хоккей и баскетбол хуже всего, я там и на 50 fps рывки вижу, но хотя бы глаза не вытекают. Найти бы трансляцию Матч ТВ хотя бы 720i 25 fps, т.е. 50 полукадров в секунду... В интернетах пишут, что Матч был даже 60 fps на OttClub, но сейчас там только «Матч! Боец».