问题背景:工作中,想从YouTube网站上下载所需的视频。
(Windows电脑中用三方软件、修改网址、在线网站、插件工具等方法均搞不定)
本文介绍一种终极解决方法:
在Linux系统中使用youtube-dl工具来下载各种视频网站上的视频内容。
(注意:不仅仅限于YouTube网站上的视频)
1、安装youtube-dl
youtube-dl 的官网:
youtube-dl 的GitHub项目地址:
youtube-dl支持的网站列表:
youtube-dl是一个命令行工具,可以下载youtube.com和其他网站(详细网站列表见链接)上的视频内容。
使用前提是需要python解释器(版本需2.6、2.7或3.2+)。
不受限于电脑的操作系统,Linux、Windows、MacOS都可以使用,本文主要介绍Linux下的使用。
下载安装youtube-dl的几种方法:
(1)
sudo curl -L -o /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl
(2)
sudo wget -O /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl
(3)
sudo pip install –upgrade youtube_dl
备注:youtube-dl是通过pypi(Python Package Index)分发的,如果电脑里有pip(package installer for Python.),用这种方法很好。而且还可以更新到最新版本 –upgrade。本文介绍的就是这种方法。
(4)
brew install youtube-dl
经过检查,目前电脑里还没有pip,所以需要先下载安装pip。
不过,安装pip时会需要使用setuptools中的模块,所以,我们还需先下载安装setuptools。
本地Windows电脑下载好setuptools和pip源安装包,可以用WinSCP将其传到Linux计算云电脑中。
解压并安装setuptools
# cd /usr1/Softwares
# unzip setuptools-41.0.1.zip // 解压
# cd setuptools-41.0.1
# python setup.py install // 安装setuptools
解压并安装pip
# cd ..
# tar –zxvf pip-19.1.1.tar.gz // 解压
# cd pip-19.1.1
# python setup.py install // 安装pip
安装youtube-dl
# cd ..
# pip install –upgrade youtube-dl
警示:2020年1月1号之后不在维护Python 2.X版本,而且后续版本的pip也不再支持Python 2.X了。
2、用youtube-dl下载视频到Linux电脑中
# youtube-dl –list-formats // 查看当前地址链接的视频的所有可下载的格式,但不进行下载。
# youtube-dl –f 22 // 执行下载,22表示格式标志码。
在Linux计算云电脑中下载完成!
# youtube-dl –help命令可查看其它更全的操作。
也可以从youtube-dl的GitHub项目网站上看到更详细的说明信息。
单独下载纯视频、纯音频、字幕,然后合成
从上述的 –list-formats 选项命令中可知,某一视频资源有多种音频视频格式,而且一般只有少量是音视频合成好的。
如果想下载更高质量的音频、视频,然后自己合成,该怎么办?
使用youtube-dl -f 来选择下载列出的任何一条资源(单独视频或单独音频)。若想直接下载更高质量完整视频(如4K),使用youtube-dl配合ffmpeg来实现。
如果系统中安装了ffmpeg的话, youtube-dl 会自动合并下下好的视频和音频, 然后自动删除单独的音频、视频文件。
安装ffmpeg
是一套开源免费软件,可以处理视频、音频等多媒体文件和流。
# apt-get update
# apt-get upgrade
# apt-get install ffmpeg
安装ffmpeg后,使用下面的命令就可以下载指定质量的视频和音频并自动合成。
# youtube-dl –list-formats
# youtube-dl –list-subs
# youtube-dl –f 135+251 –write-auto-sub
其中 –list-subs选项命令可以查看此资源的字幕captions情况。
而 –write-auto-sub选项命令可以自动下载一个字幕(一般默认是英语en字幕)。
注意:135 标记的是纯视频,251标记的是纯音频,在想音视频合成下载时,必需把视频标记放在加号前面。所以选项命令必需是 –f 135+251,如果写成251+135会报错。
下载的音、视合成的视频格式被自动设成.mkv格式,另外还有一个单独的.vtt格式的字幕。
3、用WinSCP将视频从Linux计算云传到本地Windows电脑中
4、升级整理Linux中的python等软件
在上述“安装youtube-dl”的时候,发现此Linux电脑中的python还是2.7版本的,并警示:在2020年1月1号之后就不在维护Python 2.X版本了,而且后续版本的pip也不再支持Python 2.X。
所以需要升级并整理一下此电脑中的Python等软件。
$ python –version
Python 2.7.12
但是,当
$ python3 –V
Python 3.5.2
发现此电脑已经也装有 python3.5 了。
所以现在需要修改一下系统的默认Python为 Python 3.X。
另外,Python 2.X也建议保留,别卸载、别删除,因为可能会有一些东西是在2.X版本玩的。
一般Linux系统中,软件的二进制文件都可以在 /usr/bin 或 /usr/local/bin (这个优先级更高)找到。
下面截图中也可以看到,新安装的pip、youtube-dl软件也都是默认放在 /usr/local/bin目录中的。
$ ls –al /usr/bin
在 /usr/bin 下面查看Python的路径,可以看到python链接的是 python 2.7。所以,执行python就相当于执行python 2.7。
另外,再查看下 /usr/local/bin 的情况。
$ ls –al /usr/local/bin
用修改链接文件方法来整理Python
$ ls –al /usr/bin | grep python // 查看安装目录下python相关文件
$ sudo rm /usr/bin/python // 删除原来的python软链接
$ ls –al /usr/bin | grep python
$ sudo ln –s /usr/bin/python3.5 /usr/bin/python // 创建新的软链接指向已有的3.5版本
$ ls –al /usr/bin | grep python
$ python –V // 查看此时python的版本
Python 3.5.2
用update-alternatives方法来整理Python
这个update-alternatives是Debian系提供的一个工具(非Debian系的Linux不适用),原理上类似通过链接的方式来整理电脑里的相同软件的不同版本,不过其切换过程非常方便。
但是,如果使用中很少做软件的版本切换,大多数情况都使用Python 3.5的话,上述用修改软链接文件的方法就足够了。
$ sudo update-alternatives –list python // 先列出所有可用的Python替代版本的信息
update-alternatives: error: no alternatives for python
出现错误。
表示当前电脑里的Python替代版本信息还没有被添加进update-alternatives中。
将Python的替代版本信息添加进update-alternatives中。
$ sudo update-alternatives –install /usr/bin/python python /usr/bin/python3.5 2
$ sudo update-alternatives –install /usr/bin/python python /usr/bin/python2.7 1
$ sudo update-alternatives –list python
$ sudo update-alternatives –config python
$ python –version
Python 3.5.2
其中 –install 选项使用多个参数用于创建符号链接,最后一个“2”或“1”表示优先级,值越大优先级越高。自动模式下高优先级(2)链接选定的是Python 3.5版本。
其中 –config 命令是列出所有python版本信息,并可以很方便的选择切换任意版本。
至此,两种系统级整理软件版本(比如Python)的方法就介绍完毕!
用Python3.5重新安装整理setuptools和pip软件
上述的截图中能发现之前用python安装的setuptools和pip软件都是版本较低的,具体可以查看安装目录 /usr/local/bin
强迫症的我想卸载重装setuptools和pip软件。
卸载使用python setup.py install方式安装的包
(尝试过使用$ sudo apt –purge remove python-pip 结果根本找不到python-pip,因为pip不是通过apt install安装的,所以用apt卸载时根本找不到已安装包。)
正确的卸载方法是:
使用之前的Python2.7版本重新再装一次pip,并且设置好记录文件。
$ cd pip-19.1.1
$ python –version
$ python2 –version
$ sudo python2 setup.py install –record pipfile.txt
$ ls –al /usr/local/bin
可以看到pip(pip2、pip2.7)的确是被刚刚重新安装过。
而安装记录文件 pipfile.txt 被新建并存放在 /usr1/Softwares/pip-19.1.1/ 目录中。
$ sudo cat pipfile.txt | xargs rm –rf // 卸载删除这些pip安装文件
注意此时用管理员账户无法卸载删除,不被允许 permission denied。
所以需要用root的账号进行卸载删除操作。
# cat pipfile.txt | xargs rm –rf
$ ls -al /usr/local/bin
然后查看 /usr/local/bin 目录,的确已经没有pip相关软件了。
同理,卸载删除setuptools相关软件。
重新安装Python3.5版本的setuptools和pip,并升级youtube-dl
$ python –V
$ sudo python setup.py install –record py3setuptoolsRecord.txt
$ ls –al /usr/local/bin
$ sudo rm –f py2setuptoolsfile.txt // 强制删除之前Python2版本重装时产生的记录文件
$ cd ..
$ cd pip-19.1.1
$ sudo python setup.py install –record py3pipRecord.txt
$ ls –al /usr/local/bin
$ sudo rm –f pipfile.txt // 删除之前Python2重装的pip记录文件
注意由于youtube-dl是之前用pip2.7安装的,所以此时的youtube-dl会出现错误。
而且用管理员账号使用pip升级youtube-dl的时候也不成功。
使用root账号来升级youtube-dl软件版本。
搞定!
然后,使用2019.5.11的新版youtube-dl再下载个视频试试。
杨超导演在2016年“一席”栏目中以专业视角分析周星驰《喜剧之王》镜头的视频(个人超爱)。
# youtube-dl –list-formats
# youtube-dl –f 43
======End======
原文链接:http://www.wzcl.net/social/youtube/9940.html,转载请注明出处~~~
免责声明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!
评论0