2

youtube-dl で YouTube ビデオをストリーミングし、mplayer で再生できる bash スクリプトを作成しました。私はこの端末コマンドに基づいています:

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

ここにあります

youtube-dl のビデオ解像度と URL オプションを手動で入力しても問題ありません。ただし、ビデオを再生するたびにコマンド全体を覚える必要がないように、入力を簡単にするスクリプトを作成したかったのです。

スクリプト:

#!/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-dl に関連するオプションを読み込もうとすると、問題が発生し、出力が得られます。

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 スクリプトではうまく動作しない理由がわかりません。Linux カーネル 3.2.057-generic、および Bash 4.2.25 を搭載した Elementary OS 0.2 Luna 64 ビット (Ubuntu 12.04 LTS ベース) を使用しています。どんな洞察も大歓迎です。

4

1 に答える 1