如何从命令行下载 Facebook 视频?

如何从命令行下载 Facebook 视频?

我尝试通过命令行从 Facebook 下载视频。这是我使用的方法:

youtube-dl https://www.facebook.com/Roscosmos/videos/2032700800317930

结果我收到此错误消息:

[generic] 2032700800317930: Requesting header
WARNING: Falling back on generic information extractor.
[generic] 2032700800317930: Downloading webpage
ERROR: Unable to download webpage: <urlopen error [Errno 8] _ssl.c:510: EOF occurred in violation of protocol>

我尝试遵循这里。更详细地说,我使用了:

youtube-dl https://www.facebook.com/videos.php?v=2032700800317930

但我仍然遇到同样的问题。将 URL 放在引号中也无济于事。

答案1

您使用的是哪个版本的 Ubuntu 和 youtube-dl?

为了确保你使用的是最新版本youtube-dl,请执行以下操作下列

sudo add-apt-repository ppa:nilarimogard/webupd8 
sudo apt-get update
sudo apt-get install youtube-dl

在 Ubuntu 14.04 Trusty 中完成上述操作后,我获得了2018.01.07版本youtube-dl并能够下载相关视频:

youtube-dl 'https://www.facebook.com/Roscosmos/videos/2032700800317930'
WARNING: Assuming --restrict-filenames since file system encoding cannot encode all characters. Set the LC_ALL environment variable to fix this.
[facebook] 2032700800317930: Downloading webpage
WARNING: Your copy of avconv is outdated and unable to properly mux separate video and audio files, youtube-dl will download single file media. Update avconv to version 10-0 or newer to fix this.
[download] Destination: _-2032700800317930.mp4
[download] 100% of 3.36MiB in 00:01

然而,由于另一个原因,视频下载现在失败了。它只能下载视频的一部分,并且不会继续进行。

原因是youtube-dl用于libav合并下载的文件,而libav系统中可用的过时的youtube-dl预期版本至少为 10.0,但系统版本为 9.2:

dpkg -l | grep libav-tools
ii  libav-tools                       6:9.20-0ubuntu0.14.04.1                    amd64        Multimedia player, server, encoder and transcoder

奇怪的是,我找不到在 Ubuntu 14.04 中安装最新 libav 的任何快速方法。

我想目前唯一能做到这youtube-dl一点的方法就是构建并安装 libav手动https://libav.org/download/

实际上,有人偶然发现了类似的问题,需要他弄清楚如何构建 libav。以下是详细的分步说明:http://xiemingzhi.github.io/2016/03/25/installing-libav-on-ubuntu-1404-trusty

相关内容