我尝试通过命令行从 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