2013-12-09 7 views
1

Я создал сценарий bash, где я могу транслировать видео YouTube с помощью youtube-dl и воспроизводить его с помощью mplayer , Я основывался на этом терминале команду:Терминал дает сообщение «Неизвестный вариант в командной строке: -gf» с сценарием потоковой передачи видео YouTube с использованием youtube-dl и mplayer

$ mplayer -ontop -cookies -cookies-file ./cookie.txt $(youtube-dl -gf 34 --cookies ./cookie.txt "https://www.youtube.com/watch?v=<VIDEO ID>") 

Найдено здесь:

http://curious-developer.blogspot.com/2012/10/how-to-use-youtube-dl-mplayer-to-stream.html

вручную ввод разрешение видео и варианты URL для YouTube-DL работают отлично. Однако я хотел создать сценарий, облегчающий ввод, поэтому мне не приходилось запоминать всю команду каждый раз, когда я хотел бы воспроизвести видео.

Сценарий:

#!/bin/bash 
echo "Input YouTube ID (the string that follows 'http://www.youtube.com/watch?v='):" 
echo "" 
read video_id 
echo "" 
echo "Input Video Resolution (17=144, 5=240, 18=360, 35=480, 22=720, or 37=1080):" 
echo "" 
read resolution 
first_string='mplayer -ontop -cookies -cookies-file ./cookie.txt $(youtube-dl -gf res --cookies ./cookie.txt "https://www.youtube.com/watch?v=VIDEO-ID")' 
second_string="${first_string/VIDEO-ID/$video_id}" 
last_string="${second_string/res/$resolution}" 
$last_string 

Я получил на YouTube-DL варианты работать нормально с строковых замен я настроил. Проблема происходит, когда терминал пытается прочитать параметры, связанные с YouTube, дл давая мне выход:

Unknown option on the command line: -gf 
Error parsing option on the command line: -gf 
MPlayer svn r34540 (Ubuntu), built with gcc-4.6 (C) 2000-2012 MPlayer Team 

Удаление -GF ничего не делает, чтобы помочь либо, давая мне выход:

Unknown option on the command line: --cookies 
Error parsing option on the command line: --cookies 
MPlayer svn r34540 (Ubuntu), built with gcc-4.6 (C) 2000-2012 MPlayer Team 

Я не уверен, почему вручную набирать/копировать вставить команду отлично работает с -gf и -cookies, но не работает с скриптом bash. Я использую Elementary OS 0.2 Luna 64 бит (на основе Ubuntu 12.04 LTS), с ядром Linux 3.2.057-generic и Bash 4.2.25. Любое понимание было бы весьма благодарным.

ответ

1

Проблема связана с определением first_string. Одиночные кавычки предотвращают расширение параметра, которое остановит команду youtube-dl, запущенную в подоболочке.

Вместо того, чтобы строить строку для запуска оболочки, было бы лучше проделать нужную команду с правильными параметрами. Сразу же после прочтения из приглашений:

mplayer -ontop -cookies -cookies-file ./cookie.txt $(youtube-dl -gf "$resolution" --cookies ./cookie.txt "https://www.youtube.com/watch?v=${video_id}") 
+0

Я полагал, что я делал что-то не так со строкой, но не совсем уверен, что. Ваше решение работает _and_ уменьшил мой скрипт на три строки кода. Благодаря! – user3082122

 Смежные вопросы

  • Нет связанных вопросов^_^