使用VPS下载YouTube视频并上传至百度云网盘

系统使用的是centos 6.5,其余unix系系统相似python

安装youtube-dl


传说中的第一个大杀器终于粗线了:youtube-dl。这个工具能够用来下载一系列国外网站的在线视频,如油管家的。它既有本地客户端,也能够被部署在服务器上。


用Putty登入VPS后,依次执行如下两条命令:


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,能够在VPS上远程下载指定的YouTube视频了。


最简单的命令以下:


youtube-dl video-url


把上面的这个video-url换成具体某个YouTube视频的URL就能够直接下载了。注意,youtube-dl会默认下载视频到当前执行命令的目录下。


YouTube有Playlist功能,即播放列表,你能够用Google帐号登陆,而后就能够把若干视频添加保存到Playlist。若是你想要批量下载某个Playlist的视频,就能够把前面那条下载命令中的 video-url换成具体Playlist的连接。话句话说,想要一次下载多个YouTube视频,你能够考虑用这个Playlist功能。


不过呢,像本文开头提到的这个任务,若是我要手动添加几百个视频到Playlist那得累到手抽筋:我得先点开每个视频的具体连接,而后再点两下鼠标才能将之添加进Playlist。好了不绕弯了,说这么多,就是想烘托出youtube-dl的另外一个激动人心的功能:支持读取下载连接列表文件。这意味着我能够先把全部下载连接整理好后放进一个txt文件,而后让youtube-dl去读取这个txt文件就好了,接下来它就会自动下载所有的视频。该方法的命令以下:


youtube-dl -a video_url.txt


这里的 -a 参数表示读取外部连接文件。


具体细节操做在后面会提到,请耐心往下看……


2 安装byby


Byby是一个百度云网盘的Python客户端,可在Linux环境下经过命令行来操做。


在本文的操做环境下,安装byby须要更多的步骤,byby官网没有介绍那么详细,因此我参考了其余网友的教程。


# 安装Git


yum install git


# 安装Python Pip


yum -y install epel-release


yum -y install python-pip


yum clean all


说明:先装扩展源EPEL再装Python Pip才不会报错。


# 安装Requests


pip install requests


完成以上步骤后,才开始正式安装bypy。


依次执行如下三行命令:


git clone https://github.com/houtianze/bypy byby/


cd byby/


python bypy.py list


此时的命令行界面会出现提示,按照如下步骤来受权你的百度云帐号使用bypy客户端:


左键选中用于百度帐号受权的那行URL,便可复制该文本(在Putty中选中便可复制,不用Ctrl+C),在浏览器中打开此连接。
登陆你的百度帐号,而后复制受权码。
回到Putty命令行界面,粘贴受权码进去,回车便可开始启动受权操做。


稍等几秒,受权便可成功。


为了方便在任意目录下使用bypy命令,还须要设置以下:


cd /byby


cp bypy.py /usr/bin


完成以上设置后,若是要将VPS某个文件夹下的全部文件上传到百度云,最简单的命令以下:


bypy.py upload


还能够加参数,如 -v 能够显示上传进度:


bypy.py upload -v


默认状况下,本方案上传到百度云的文件所有存放在“个人应用数据 --> bypy”路径下。


3 下载与上传视频


在Putty命令行界面中建立一个专门的目录用于存放下载的视频文件,而后CD至此目录下,建立一个包含全部下载连接的txt文件(使用vi命令便可)。在此目录下,执行下载命令:


youtube-dl -c -i -a video_url.txt


呃,眼尖的你可能已经发现了,上面这条命令好像多出了两个参数?没错,youtube-dl提供了不少有用的附加参数,这里用到的是:


-c 断点续传(若是因为意外缘由下载中断了,再次启动下载命令时,能够实现断点续传)
-i 忽略报错(若是出现某些连接没法打开或者下载的问题,会自动绕过,继续下载其余视频)


下载的话通常很快,可是上传到百度云并无那么快。为了防止关闭Putty窗口后,下载/上传进程就断掉了,能够考虑使用Screen远程会话管理功能。简单介绍就是,有了这玩意儿,你能够在Putty中启动下载或者上传进程,让其在后台运行,而后关掉Putty离开电脑旁该干啥干啥去,有须要的话回来从新打开窗口就能够看到进程依然在跑。


要检查操做系统是否支持screen,能够直接输入screen而后回车,若是提示找不到这个命令,那就是系统还没安装好这个东西。在CentOS 7中安装screen很简单,一条命令而已:


yum install screen


安装完毕后,输入 screen -S sessionname 便可建立一个名为 sessionname 的screen会话窗口。在此窗口中执行想要作的任务,而后同时按下 ctrl + a,松开后按下 d,便可将此session放到后台去运行,并回到以前的对话窗口。在非screen对话窗口中,输入 screen -ls 能够列举已有的screen进程。输入 “screen -r 进程代码” 就能够再次调出正在运行的screen进程。


因为我要上传到百度云的文件太多了,我不可能守在电脑前等它完成全部任务,因此screen这个功能仍是很是实用的。


本文主要参考连接:


https://github.com/rg3/youtube-dl/


https://github.com/houtianze/bypy


http://yesido.info/2015/03/linux-upload-document-to-baidu-cloud/linux

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息