关键时刻,第一时间送达!
前一段时间接了个小任务,要把 YouTube 上的几百个视频下载回来,用百度云网盘分享给公司的同事供学习使用。
然后我就开始琢磨这件事能不能更自动化、更高效一些来实现。呃,放狗上 Google 搜了一下,找到了几个大杀器,参考了一下各位大神的教程后,我也拼凑出了一个解决方案。
长话短说:
在美国 VPS 上安装 YouTube 专用下载工具,远程下载想要的 YouTube 视频到服务器上;在 VPS 上安装百度云网盘上传工具,将已经下载到 VPS 中的视频上传到云端。
这个方案的好处很明显:用位于美国的 VPS 下载本身服务器就在美国的 YouTbe 网站视频,速度相当快(实测可以超过 60MB/s)。从美国 VPS 上传文件到百度云,速度虽然受限(一般是几百 Kb 每秒,偶见超过 1MB/s 的),但仍比我在国内本地的上传网速要快得多。更重要的是,这个方案是高度自动化、批量进行的,不用手动对付每个视频。
短话长说:
接下来要写的详细教程,是一个大杂烩。你在网上能找到的特定教程,都是有特定限制条件的,例如你的 VPS 用的是啥操作系统,你要实现多大程度的自动化,等等。在完成这个教程的过程中,我也踩了不少坑,幸亏有万能的 Google 相助。
1 安装 VPS 操作系统
我用的是 DigitalOcean(若使用我的 推荐链接注册 DigitalOcean,您的账户可以立即获得 10 美金,相当于免费获得两个月的使用权)最基础的套餐,每月 5$,20G 的 SSD 储存空间,1T 流量。安装的操作系统是 CentOS 7(请注意操作系统的选择,这很重要,后面我会提到原因),节点为旧金山(据说从大陆访问会比较快)。所以,如果你也是 DO 用户的话,可以完全照我这篇教程来做,准没问题。不是的话,请酌情参考就好了,其他问题我不负责解答哈,毕竟,我是一个伪技术流……
首先要赞下 DigitalOcean 的 VPS 用起来真是方便,点几下鼠标就能创建好一台服务器。理论上用 SSH 密钥登录会更安全,不过我偷懒,只是简单用 LastPass 生成一个几十位长度的随机密码,需要用到就复制粘贴一下好了(请大家不要向我学习……)。禁用 root 账号登录,修改 SSH 端口号什么的,这些安全措施也可以做下,我就不多说了,不太清楚的话请自行 Google。
前面提过 VPS 的操作系统问题,为啥我用 CentOS 7 呢?因为这个版本默认自带的 Python 是 2.7.5(截至本文发布时是这样的),而这个教程中会用到的百度云网盘 Linux 客户端(bypy)依赖的 Python 版本号为 2.7x。一开始我装了个 CentOS 6,其自带 Python 6.x,不符合要求;Google 了好多教程,还是没能装上 Python 2.7x(在 DO 的这个系统上需要自行编译 Python,各种报错很无奈);最后决定放弃 CentOS 6,换成 7,因为有那个工夫折腾 Python,我还不如去看几集美剧是吧,呃,好像我又无意中暴露了什么……
2 安装 youtube-dl
传说中的第一个大杀器终于粗线了:youtube-dl。这个工具可以用来下载一系列国外网站的在线视频,如油管家的。它既有本地客户端,也可以被部署在服务器上。
用 Putty 登入 VPS 后,依次执行以下两条命令:
然后就没了。是的就是这么简单,现在你已经装完 youtube-dl,可以在 VPS 上远程下载指定的 YouTube 视频了。
最简单的命令如下:
把上面的这个 video-url 换成具体某个 YouTube 视频的 URL 就可以直接下载了。注意,youtube-dl 会默认下载视频到当前执行命令的目录下。
YouTube 有 Playlist 功能,即播放列表,你可以用 Google 账号登录,然后就可以把若干视频添加保存到 Playlist。如果你想要批量下载某个 Playlist 的视频,就可以把前面那条下载命令中的 video-url 换成具体 Playlist 的链接。话句话说,想要一次下载多个 YouTube 视频,你可以考虑用这个 Playlist 功能。
这里的 -a 参数表示读取外部链接文件。
具体细节操作在后面会提到,请耐心往下看……
3 安装 byby
Byby是一个百度云网盘的 Python 客户端,可在 Linux 环境下通过命令行来操作。
在本文的操作环境下,安装 byby 需要更多的步骤,byby 官网没有介绍那么详细,所以我参考了其他网友的教程。
# 安装 Git
说明:先装扩展源 EPEL 再装 Python Pip 才不会报错。
# 安装 Requests
完成以上步骤后,才开始正式安装 bypy。
依次执行以下三行命令:
此时的命令行界面会出现提示,按照以下步骤来授权你的百度云账号使用 bypy 客户端:
左键选中用于百度账号授权的那行 URL,即可复制该文本(在 Putty 中选中即可复制,不用 Ctrl C),在浏览器中打开此链接。
登录你的百度账号,然后复制授权码。
回到 Putty 命令行界面,粘贴授权码进去,回车即可开始启动授权操作。
稍等几秒,授权即可成功。
为了方便在任意目录下使用 bypy 命令,还需要设置如下:
完成以上设置后,如果要将 VPS 某个文件夹下的所有文件上传到百度云,最简单的命令如下:
还可以加参数,如 -v 可以显示上传进度:
默认情况下,本方案上传到百度云的文件全部存放在"我的应用数据 –> bypy"路径下。
4 下载与上传视频
领取专属 10元无门槛券
私享最新 技术干货