2012
Просмотр видео с YouTube во внешнем проигрывателе
Замучали меня тормоза при проигрывании потокового видео с «YouTube». Основная причина возникновения тормозов - отсутствие аппаратного ускорения при воспроизведении видео внутри браузера. Если бы у меня стояла дискретная видеокарта, то проблемы бы не возникло. Но увы. На ноутбуке у меня встроенное видео «i915». Так что проблема с воспроизведением потокового видео стоит очень остро.
Задача состоит в том, чтобы удобным образом извлечь ссылку на потоковое видео из браузера и передать ее для воспроизведения внешнему проигрывателю. Странно, но готового решения я почему-то не нашел, поэтому пришлось придумывать самому.
Решение состоит из трех этапов:
1. Передать ссылку с сервиса «YouTube» внешней программе. С этой задачей справляется дополнение для браузера «Firefox» (в основном я пользуюсь им) под названием «Open With». С помощью этого дополнения можно настроить в контексном меню запуск внешней программы и передать ей ссылку. Этим я и воспользовался, настроив запуск внешнего скрипта.
2. Следующая задача - извлечь из ссылки сервиса «YouTube» ссылку на потоковое видео в необходимом качестве. С этой задачей справляется программа «youtube-dl».
3. Осталось запустить любимый проигрыватель медиафайлов, передав в качестве параметра полученную ссылку.
Приступим. Установим дополнение в браузер. Установим программу «youtube-dl» из репозитария вашего дистрибутива «GNU/Linux». Если необходима замена заголовка проигрывателя, то установите еще и утилиту «wmctrl». Создадим простенький скрипт, назвав его, например, «extyoutube». Вот его содержание:
extyoutube#!/bin/bash
# Заголовок проигрывателя для замены
OLDTITLE='GNOME MPlayer'
# Строка запуска проигрывателя
PLAYER='/usr/bin/gnome-mplayer -q'
# Извлекаем ссылку и заголовок с учетом удобного качества воспроизведения
# Номера доступны здесь: http://en.wikipedia.org/wiki/YouTube#Quality_and_codecs
OUT=$(youtube-dl -sge --max-quality 35 ${1})
# Отделяем заголовок
TITLE=$(echo "${OUT}"|sed q)
# Отделяем ссылку
URL=$(echo "${OUT}"|sed '$!d')
# Запускаем проигрыватель в фоне
${PLAYER} ${URL} &
# Ожидание появления окна проигрывателя и замена заголовка
CNT=15
while [ $CNT -gt 0 ]
do
wmctrl -u -r ${OLDTITLE} -N "${TITLE}"
(( CNT-- ))
sleep 0.25
done
Первые две переменные замените на свой вкус. В переменной «OLDTITLE» содержится заголовок, с которым запускается медиапроигрыватель. Во второй переменной «PLAYER» - путь к проигрывателю с параметрами запуска. В параметрах запуска программы «youtube-dl» укажите номер, который определяет максимальное разрешение потокового видео, с которым справится ваш компьютер. Если не требуется замена заголовка окна проигрывателя, то строки после запуска проигрывателя можно удалить. Протестируйте полученный скрипт, выполнив:
# ./extyoutube <URL>
Вместо «URL» используйте любую ссылку с сервиса «YouTube». Если открылся проигрыватель и качество воспроизведения соответствует указанному, то осталось только подключить полученный скрипт в дополнение «Open With» браузера. Я уверен, что для других браузеров существуют аналогичные дополнения, позволяющие передавать ссылку внешней программе.
Надеюсь, материал будет полезен владельцам слабых компьютеров и нетбуков. И да, я пробовал «SMPlayer» и производные. Работают с сервисом «YouTube» через раз. Не понравилось.
Если есть какие-либо более простые решения или более универсальная программа извлечения ссылок на потоковое видео, чем «youtube-dl», то сообщите об этом в комментариях.