LINUX.ORG.RU

История изменений

Исправление Spoofing, (текущая версия) :

мр-бр-бр. Хотелось как лучше, получилось как всегда, но на то свои причины (которые я еще не проверял даже).

Но разрабатываю пока такой вариант...

#!/bin/bash

main() {
  test -p "${HOME}/.mplayer/mp_pipe" || mkfifo "${HOME}/.mplayer/mp_pipe"
  test -d "${HOME}/Downloads/.youtube-dl" || mkdir --parents "${HOME}/Downloads/.youtube-dl"; cd "${HOME}/Downloads/.youtube-dl"

  local files="$(echo *)"

  /usr/bin/youtube-dl "$@" --max-quality 35 --continue --quiet || return 1

  local files="$(/usr/bin/comm -23 <(/usr/bin/tr ' ' $'\n' <<< $(echo *)) <(/usr/bin/tr ' ' $'\n' <<< ${files}))"

  test -n "${files}" || return 1

  /usr/bin/mplayer -input file=~/.mplayer/mp_pipe -title "youtube-dl" ${files} < /dev/null &

  echo pause > ~/.mplayer/mp_pipe
}

main "$@"

запишите куда-нибудь... > watch.sh; chmod +x watch.sh

и затем: ./watch ссылка-на-видео

В директорию ~/Downloads/.youtube-dl будет загружено видео, после загрузки стартует mplayer с новым видео. Тут все тупо и просто. У MPlayer'а заголовок окна будет «youtube-dl», это для того, чтобы окно можно было отправить куда-подальше, на далекий рабочий стол. В случае FVWM я сделал так:

Style youtube-dl StartsOnPage 2 0, SkipMapping
видео тихо открылось на 3м рабочем столе, и нас не тревожит своим «фокусом» на окно. А еще, оно становится на паузу.

То есть, вы занимаетесь какими-то делами, слушаете музыку бла-бла-бла. Поставили качаться видео, - видео загрузилось, тут-же «тихо» открылось в MPlayer'е на другом рабочем столе, чтобы вас не отвлекать, и встало на паузу, опять же, чтобы вас не отвлекать. Когда вы вспомнили, что у вас видео - переключились на тот рабочий стол, нажали пробел и видео пошло-поехало. :)

Затея как-бы такая у меня, но пока реализация хромает. Нет, текущая реализация работает... Но и имеются другие варианты.

В идеале делать youtube-dl --output - | mplayer -, чтобы видео качалось и тут-же проигрывалось, так же укажем паузу после старта и все остальное, но вопрос: куда будет загружаться видео? Конечно же в память, а конкретно у меня памяти мало. Поэтому я выбрал способ сперва скачать файл на винт, а затем запустить его.

Другой вариант, делать mplayer $(youtube-dl -g), то есть youtube-dl только возьмет ссылку на видео, а затем скормить ее mplayer'у, но здесь минус - что целых два запроса на ютуб делать :) смищьно, но все-таки это минус, а еще.. ну получит youtube-dl ссылку, отдаст mplayer'у, mplayer запустит видео по ссылке - но пока мы прокопошимся, сервер отключит клиент (mplayer) по таймауту... Вобщем тут много запросов будет на сервер ютуба, чего делать не хотелось бы.

Эни суггестионс? :)

Исходная версия Spoofing, :

мр-бр-бр. Хотелось как лучше, получилось как всегда, но на то свои прочины (которые я еще не проверял даже).

Но разрабатывают пока такой вариант...

#!/bin/bash

main() {
  test -p "${HOME}/.mplayer/mp_pipe" || mkfifo "${HOME}/.mplayer/mp_pipe"
  test -d "${HOME}/Downloads/.youtube-dl" || mkdir --parents "${HOME}/Downloads/.youtube-dl"; cd "${HOME}/Downloads/.youtube-dl"

  local files="$(echo *)"

  /usr/bin/youtube-dl "$@" --max-quality 35 --continue --quiet || return 1

  local files="$(/usr/bin/comm -23 <(/usr/bin/tr ' ' $'\n' <<< $(echo *)) <(/usr/bin/tr ' ' $'\n' <<< ${files}))"

  test -n "${files}" || return 1

  /usr/bin/mplayer -input file=~/.mplayer/mp_pipe -title "youtube-dl" ${files} < /dev/null &

  echo pause > ~/.mplayer/mp_pipe
}

main "$@"

запишите куда-нибудь... > watch.sh; chmod +x watch.sh

и затем: ./watch ссылка-на-видео

В директорию ~/Downloads/.youtube-dl будет загружено видео, после загрузки стартует mplayer с новым видео. Тут все тупо и просто. У MPlayer'а заголовок окна будет «youtube-dl», это для того, чтобы окно можно было отправить куда-подальше, на далекий рабочий стол. В случае FVWM я сделал так:

Style youtube-dl StartsOnPage 2 0, SkipMapping
видео тихо открылось на 3м рабочем столе, и нас не тревожит своим «фокусом» на окно. А еще, оно становится на паузу.

То есть, вы занимаетесь какими-то делами, слушаете музыку бла-бла-бла. Поставили качаться видео, - видео загрузилось, тут-же «тихо» открылось в MPlayer'е на другом рабочем столе, чтобы вас не отвлекать, и встало на паузу, опять же, чтобы вас не отвлекать. Когда вы вспомнили, что у вас видео - переключились на тот рабочий стол, нажали пробел и видео пошло-поехало. :)

Затея как-бы такая у меня, но пока реализация хромает. Нет, текущая реализация работает... Но и имеются другие варианты.

В идеале делать youtube-dl --output - | mplayer -, чтобы видео качалось и тут-же проигрывалось, так же укажем паузу после старта и все остальное, но вопрос: куда будет загружаться видео? Конечно же в память, а конкретно у меня памяти мало. Поэтому я выбрал способ сперва скачать файл на винт, а затем запустить его.

Другой вариант, делать mplayer $(youtube-dl -g), то есть youtube-dl только возьмет ссылку на видео, а затем скормить ее mplayer'у, но здесь минус - что целых два запроса на ютуб делать :) смищьно, но все-таки это минус, а еще.. ну получит youtube-dl ссылку, отдаст mplayer'у, mplayer запустит видео по ссылке - но пока мы прокопошимся, сервер отключит клиент (mplayer) по таймауту... Вобщем тут много запросов будет на сервер ютуба, чего делать не хотелось бы.

Эни суггестионс? :)