最新消息:阿啰哈,本人90后,目前单身,欢迎妹子们来撩!.(。→‿←。)

youtube-dl视频下载脚本

Shell 林志斌 117浏览

能很方便地调用youtube-dl下载优酷、土豆、YouTube、爱奇艺等视频网站的视频

  • 1. 支持单个视频链接的下载
  • 2. 支持使用视频链接表文件以进行大批量下载
  • 3. 自动检测脚本后所带的参数,以防止空参数、非法URL、空文件
  • 4. 默认选择视频链接中画质最好的视频进行下载(如:1080P或720P)
  • 5. 自动检测/usr/bin/youtube-dl是否已安装,如果未安装则自动安装最新版
  • 6. 加-u或-U选项可自动检测/usr/bin/youtube-dl是否为最新版,若不是则自动更新为最新版

脚本的意义:
当看到一些好视频并且想下载收藏到本地电脑时;
想无广告观看高清视频;
当要大批量下载N个视频时(如:某个系列的视频教程里可能包含几百个视频),只需把视频的URL都放到一个文件中即可;
想用Linux中的空闲带宽下载视频时(youtube-dl支持下载限速);
想让Linux在半夜三更自动从待机状态(sleep or suspend)启动,并自动下载视频,下载好后自动待机。是的,你可以再添一丁点料就能轻松实现;

使用时注意:
如果你电脑里未安装youtube-dl(http://rg3.github.io/youtube-dl/),可直接执行此脚本,它会自动检测并下载最新版的youtube-dl,然后放在/usr/bin/路径中。注,可能要跳墙才能下载(友情提示:proxychains,加入到脚本的wget命令前即可)!
此脚本适用的发行版操作系统:(X)ubuntu/CentOS/RHEL/Fedora/Debian等
视频默认会下载到/tmp路径中,因为在我自己的电脑里,我把/tmp挂载到内存中了,所以下载时减轻了硬盘99.9%的读写负担,并在下载后再统一处理看是否需要剪切到硬盘中

大家可根据自己的需要任意修改此脚本……

#! /bin/bash
#Author: kashu
#My Website: https://kashu.org
#Date: 2015-07-31
#Filename: ydl.sh
#Description: use youtube-dl to download videos
#youtube-dl official website: http://rg3.github.io/youtube-dl/

#XDG_CACHE_HOME=/tmp
#youtube-dl -f `youtube-dl -F "$i" | awk '/best/{print $1}'` "$i"
cd /tmp

YTB=/usr/bin/youtube-dl

UPDATE(){
TMP_YTB=/tmp/youtube_dl.`date +%Y%m%d`
# Download the latest youtube-dl to /tmp
wget --no-check-certificate `wget --no-check-certificate -qO - https://rg3.github.io/youtube-dl/download.html|\
grep 'youtube-dl -O ' -|sed 's/\(.*\)\(http.*dl\ \)\(.*\)/\2/g'` -O $TMP_YTB
# Check if the existing youtube-dl is there or is up-to-date
if [ "`md5sum /tmp/youtube-dl.$(date +%Y%m%d) $(which youtube-dl)|cut -d' ' -f1|uniq|wc -l`" -ne "1" -o ! -e "$YTB" ]; then
	sudo mv $TMP_YTB $YTB && sudo chmod a+x $YTB
fi
test -x $YTB && echo "Great, $YTB is up-to-date!" || { echo "Update failed"; exit 5; }
}

USAGE(){
	echo -e "\033[41;37mUsage:\033[0m $0 URL or $0 /url_list_file.txt"
	echo -e "\033[44;37me.g.\033[0m"
	cat <<- END
	(1) ydl.sh http://v.youku.com/v_show/id_XODE3NjYxODM2.html
	(2) ydl.sh /path/to/url.list.txt
	(3) ydl.sh -u
	END
}

# Check if the youtube-dl is there
test ! -e $YTB && { echo -e "\n${YTB} doesn't exist\nWait a moment, \
we're going to install it...\n"; UPDATE; }

if [ "X$1" != "X" ]; then
	if [ -s "$1" -a -r "$1"  ]; then
		$YTB -a "$1"
	elif [ `grep -F / <<< "$1"` ]; then
		$YTB "$1"
	elif [ "$1" == "-u" -o "$1" == "-U" ]; then
		UPDATE
	else
		USAGE
	fi
else
	USAGE
fi

附:youtube-dl的几个常用选项和注意事项:
-F 列出所有可供下载的视频格式
-f 指定所需的下载的视频格式
youtube-dl默认的行为是:自动挑选画质最好的视频并下载,贴心的开发者们都给我们想好了,所以无需特意使用-f去指定最好的视频格式,除非你想下载更差的(网上搜索到的很多教程都不准确!他们都不仔细看youtube-dl的帮助信息,只是光看了几个选项而已……)
-r 100K or 2M 下载限速
-a 读取一个视频的URL列表文件并进行批量下载
-q 安静模式
--user-agent 自定义User Agent
-u, -p 用户名、密码(如:使用VIP帐号才可以下载的)
--video-password 视频密码(碰到视频被加密才能打开的)
youtube-dl的选项非常多,能为用户们考虑到的所需的功能也很全面,当然还支持代理功能。关于更多更全面的使用方法请自己去看使用帮助:youtube-dl -h
另,由于youtube-dl的更新频率很高,不建议使用apt-get或yum之类的方式来安装,这些包的作者们往往无法及时给你提供最新的youtube-dl软件包,而视频网站如果有变动则必需使用最新的youtube-dl。令人兴奋的是,youtube-dl就是一个脚本文件,下载下来即可使用,甚是方便!

转载请注明:林志斌 » youtube-dl视频下载脚本

发表评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址