youtube-dl 无法从 amazon ec2 机器进行身份验证

youtube-dl not able to authenticate from amazon ec2 machine

我按照官方 README here.

中所述,使用 curl 在我的本地机器上安装了 youtube-dl
sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl

现在,当我在本地机器上 运行 下面的命令时

youtube-dl --cookies cookie.txt https://www.youtube.com/watch?v=x-5V_RS3Q48 -u my_account@gmail.com -p my_pass_word

我可以毫不费力地下载视频,如下所示。

但是当我尝试在我的一个 ec2 实例上下载相同的视频时,出现以下异常。

两台机器的安装过程完全一样,youtube-dl版本完全一样(2017.08.18),python版本一样(2.7.6)

我能弄清楚的唯一区别是两台机器上的内核版本:

在我的本地: Linux-3.19.0-25-generic-x86_64-with-Ubuntu-14.04-trusty

在 EC2 实例上: Linux-3.13.0-74-generic-x86_64-with-Ubuntu-14.04-trusty

此外,我尝试下载的视频是 私有的,由我提供凭据的同一用户上传。

需要注意的重要一点是,如果我不使用用户名和密码(这仅适用于非私有视频),EC2 机器可以毫无问题地下载视频

谢谢

发布答案以防其他人遇到类似问题。

服务器版本 Linux OS 在 AWS 提供的 ec2 实例上未生成 cookie 的问题。

根据我最近了解到的情况,我们在这些机器上不支持 firefox 浏览器(至少在默认情况下),这就是无法创建 cookie 文件的原因。

解决方案

我在本地创建了文件并将到期时间设置为未来 20 年,并将该 cookie 移动到服务器 ec2 实例上并使用该 cookie 登录而不是创建一个。

谢谢