我制作了一个 bash 脚本,我可以在其中使用 youtube-dl 流式传输 YouTube 视频并使用 mplayer 播放它。我基于这个终端命令:
$ 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 脚本一起使用。我正在使用 Elementary OS 0.2 Luna 64 位(基于 Ubuntu 12.04 LTS),Linux 内核 3.2.057-generic 和 Bash 4.2.25。任何见解将不胜感激。