Skip to Content

从YouTube上下载视频的脚本

labrador 的头像
没太大的技术含量,主要的工作都是一个叫keepvid.com的网站完成的,它有以下特点:
  • 因为用到了zenity,此脚本适合在ubuntu下是用使用,如果需要在puppy下使用,可以把zenity替换成xdialog;
  • 如果安装了xsel,可以从剪切版读取地址;
  • 支持下载playlist里的所有video;
  • 支持连续下载多个地址。
出于娱乐目的,程序中故意使用了很多很长的一行命令。
#!/bin/sh

test $# -gt 1 && addr="$*" || addr=`zenity --width 300 --entry --title "Downtube" --text "Input address of the video" --entry-text "$(xsel -o 2>/dev/null)"`

for addr in $addr; do
    echo "$addr" | grep -q '^http://www.youtube.com/view_play_list?' && addrs="${addrs} `wget -O - "$addr" | grep -o 'qlicon="[^"]*' | sed 's@qlicon="@http://www.youtube.com/watch?v=@'`" || addrs="${addrs} ${addr}"
done

echo $addrs;

for addr in $addrs; do
    title=`wget -O - "$addr" | grep -o '<title>.*</title>' | sed 's@</\?title>@@g; s@^YouTube - @@; s/&#39;/'\''/g; s/&lt;/</g; s/&gt;/>/g; s/&amp;/&/g; s/&quot;/"/g' | sed 's@/@_@g'`

    wget -O - "http://keepvid.com/?url=$addr" | grep -o '/save-video.mp4[^"]*' | sed 's@^@http://keepvid.com@' | wget -c -i - -O "${title}.mp4" || { rm "${title}.mp4"; wget -O - "http://keepvid.com/?url=$addr" | grep -o '/save-video.flv[^"]*' | sed 's@^@http://keepvid.com@' | wget -c -i - -O "${title}.flv"; }
done

发表新评论

  • 你可以在文本中使用BBCode标记语言。 URL会自动被转为链接。

更多关於格式化选项的信息

CAPTCHA
请验证您是否是机器人。
Image CAPTCHA
Enter the characters shown in the image.