youtube-dl安装和使用

youtube-dl是网上开发的专门用于下载Youtube视频的软件,但它真正牛逼的地方在于还支持其它视频网站的下载,包括爱情动作片们,其中pornhub,xvideo等赫然在列,甚至还有国内的优酷网、B站等。


以下是安装方法,使用的系统是debian,若因为时间间隔太久,该方法失效,则可以直接参考软件作者写的最新方法(https://rg3.github.io/youtube-dl/download.html),作者用的是sudo,我是直接在root下安装的,等我什么时候弄懂了怎么开sudo再写篇文吧。


我没装curl,所以用的是wget。若wget没装,可以先装wget:

apt-get update

apt-get install wget -y


接下来是安装youtube-dl两行代码:

# wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl

# chmod a+rx /usr/local/bin/youtube-dl


安装完后就可以开始直接使用了。


首先因为youtube-dl会下载到当前的目录,所以需要确保当前的目录是哪边,一般如果是root登录的话,目录就是/root,如果不想下载到root目录下,可以用mkdir新建一个目录,比如如下代码会新建一个叫Test的目录:

mkdir Test


然后使用cd命令进入到该目录下:

cd ./Test

这就进入到root下面新建的Test目录里。可以使用点号.来代替当前所在的目录地址,这样目录地址就不用打全了。下面这段代码的结果和上面是一样的,点号.取代了/root目录:

cd /root/Test


若要回到上层目录可以使用如下代码:

cd --


进入到Test目录里后就可以使用youtube-dl下载视频了

语法: youtube-dl 视频网址

代码: youtube-dl http://...


youtube-dl会自动下载最佳的视频格式。


若不想现在最佳格式,也可以用以下代码查看可供下载的格式:


youtube-dl -F https://www.youtube.com/watch?v=lW9Uudkx42g


然后选中想下载的格式,比如想下载138:


youtube-dl -f 138 https://www.youtube.com/watch?v=lW9Uudkx42g


youtube-dl -f 138 https://www.youtube.com/watch?v=lW9Uudkx42g

以上就是youtube-dl的简单操作,该操作的局限在于不能离线,也就是说如果SSH终端不小心被关掉,或者甚至网络连接不稳定导致SSH链接断掉,则下载自动终止。


--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

每次用youtube-dl下载视频都需要先去指定的下载文件夹比较麻烦。下面的操作可以自动将下载完成的视频移动到指定的文件夹。


代码

youtube-dl -v --exec "mv {} ./Downloads/{}" 视频地址

参数:

mv :linux移动文件的命令

{} :这个是获取文件名参数

./Downloads/:此文件夹是当前root目录下面的Downloads文件夹,当然也可以移动到根目录下的非root文件夹下

视频地址接受批量下载


更方便的操作是让vps将指定的文件夹路径“记住”,每次下载的时候都调用该路径。比如我同时还安装了transmission方便BT离线下载,我可以把下载好的小电影移动到该transmission的下载文件夹,方便我随时将视频做种。


方法:

root目录下有一个.config文件夹,可以在该文件夹下创建一个配置目录:

mkdir ./.config/youtube-dl/


编辑config文件,加入需要的参数:

vi ./.config/youtube-dl/config


以下是我自己的参数内容:

-o /root/Downloads/%(title)s.%(ext)s

--external-downloader aria2c

--external-downloader-args "-x 16 -k 1M"

--exec "mv {} /var/lib/transmission/Downloads/"

第一行是下载的地址及命名规则:root目录下的Downloads文件夹

第二行调用aria2c外部命令

第三行设置下载进程数和块

第四行是目标保存地址:我安装的transmission设置的Downloads文件夹


保存完config文件后,就可以试运行下载一个视频看是否保存到了/var/lib/transmission/Downloads:youtube-dl 视频地址

验证成功!

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------


上面讲了youtube-dl在vps上的安装及简单操作方法,但该方法其实只相当于一个开着的浏览器,浏览器关掉后,下载也就停掉了。这一篇主要涉及怎么利用youtube-dl对爱情动作片进行批量下载,并让下载在我们离线的时候也一直进行。


这里面会用到screen、文档编辑等操作。


准备工作:安装screen(如果第一次使用)

使用下面代码安装screen,Debian下使用apt-get,Centos下使用yum:

apt-get install screen -y


方法一:直接贴网址


使用screen命令开一个session,命名该session,比如就叫video:

screen -S video

注意S要大写,这时SSH终端会把你带到一个空窗口。


然后使用语法youtube-dl 链接1 链接2 链接3 … … 就能进行批量下载了,代码:

youtube-dl https://www.pornhub.com/view_video.php?viewkey=1763364088 https://www.pornhub.com/view_video.php?viewkey=1164813484 https://www.pornhub.com/view_video.php?viewkey=ph565707fb861b7

有多少链接就贴多少链接。


方法二:将链接全部保存到一个txt文件里,一行一个

这种方法的好处是,SSH不是随时都能用,碰到好的视频可以先把它保存下来,然后回到家里利用FTP上传到需要下载的目录。不过下面讲的是现场在SSH里制作txt文件。


首先使用cd命令去到你打算使用的下载文件夹。本例中使用的文件夹名为Downloads。


使用vi,vim,或者nano命令新建一个txt或bat文件,这里取名download.txt/download.bat,后者是一个批处理文件格式,将你打算下载的爱情动作片网页链接保存在该txt文件里,一行一个网址,文件保存在Downloads文件夹下面。


使用以下命令去到该文件夹里面:

cd ./Downloads


使用screen命令开一个session,然后贴下面的代码:

youtube-dl -ci --batch-file=download.txt

-ci 可有可无,= 可有可无


这时vps就开始下载了,贴张图,是我正在下载的小电影:


接下来我们可以退出这个session,让它安静的在后台跑着,我们可以去做其他事了,或者就可以直接关掉SSH。


退出session使用快捷键ctr+a, d或者ctr+a,ctr+d,~~注意快捷键需要在英文输入环境下,不能在中文输入法下,即便现在的中文输入法在shift操作下会转换为英文输入也不可以。~~退出session叫detach session。从下面的截图我们甚至可以看出,虽然我们给这个session取名video,但screen会分配一串数字给这个session,然后在screen里它的全名就是62718.video


使用以下命令可以再进去该session,查看下载进程,速度不是很快,所以很适合离线下载:

screen -r video


下载完后,我们可以使用如下代码将该session给删掉,如果不删的话,这个session会一直保存在vps里,如果下次再开一个screen,使用同样一个名字,等我们再打算进去的时候,screen就不知道你打算进哪个video session了,它会把所有取名video的session都给列出来,所以为了方便起见,最好下载好后还是把进程给杀掉。这里我把这个取名叫video的session给删掉:

screen -S video -X kill

或者

screen -S video -X quit

或者进入某个session后,按ctr+a,再按:quit

至于quit和kill两者有何区别,暂时还在研究中。。。


如果我们不慎没有把session删掉,然后开了好几个session,可以使用下面代码来列出目前的session清单:

screen -ls


然后就可以使用上面讲到的操作把某个session给删掉了。或者删掉全部的session:

pkill screen or

killall screen


如果session都已死的话,可以使用:

screen -wipe


下载完后,我们可以用FTP软件把下载的小电影全部保存到本地硬盘里。


最后养成良好的打扫卫生习惯,将保存好的小电影全部删掉,节省vps硬盘空间。我们可以在FTP里删除,但如果文件太多的话,速度会非常慢。这时可以使用如下代码来进行文件删除:

首先用cd命令进入Downloads文件夹,然后:

rm *.mp4 -f


以上通配符将任何媒体格式是MP4的文件删掉,当然我们可以使用字母和结合的方式来删除特定的文件。


以下代码会将Downloads文件夹下的所有文件全部删掉:

rm *.*


-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

youtube-dl有一个写入历史下载链接的方法,此方法确保将所有已下载的视频链接地址写入一个archive文件,这样在以后下载,特别是批量下载的时候,已经下载过的视频youtube-dl会自动跳过。语法是–archive-download /…archive文件的保存路径…/archive.txt,比如root里Downloads文件夹下有一个批量视频链接文件list.txt,里面写了所有打算下载的视频链接地址,使用代码:


youtube-dl --batch-file /root/Downloads/list.txt --download-archive /root/Downloads/archive.txt

该代码就会将所有下载后的链接写入archive.txt文件,如果archive.txt文件里有相同的链接,youtube-dl就会跳过下载该链接的视频,同时再结合其它诸如下载视频自动移动命令等工具,最大化利用youtube-dl的强大功能。


猜你喜欢

转载自blog.51cto.com/woaijorden/2308278