什么是pytube?
Pytube是一个轻量级的,无依赖项的Python库,用于从Web下载视频。
Pytube不是本机库。您需要先安装它,然后才能使用它。
注意:在安装Pytube之前,您需要在PC上安装Python(安装Python教程)
打开CMD并输入
pip install pytube
完成安装后,您可以使用Pytube。
首先使用以下命令打开Python shell。
python
然后,使用Python Shell,您可以使用Pytube下载youtube视频。
以下是用于下载youtube视频的简单Python脚本。
>>> from pytube import YouTube
>>> yt = YouTube('https://www.youtube.com/watch?v=kJQP7kiw5Fk')
>>> yt.streams.get_highest_resolution().download()
上面的命令只会将属于URL “ https://www.youtube.com/watch?v=kJQP7kiw5Fk”的视频下载到您的当前目录中。
下面的脚本将显示视频的所有可用流。与流进步=真是在同一视频流中同时包含音频和视频的视频。其他人在同一流中没有音频和视频。
>>> from pytube import YouTube
>>> yt = YouTube('https://www.youtube.com/watch?v=kJQP7kiw5Fk')
>>> yt.streams
结果,您将得到这个。
[<Stream: itag="18" mime_type="video/mp4" res="360p" fps="30fps" vcodec="avc1.42001E" acodec="mp4a.40.2" progressive="True" type="video">,
<Stream: itag="22" mime_type="video/mp4" res="720p" fps="30fps" vcodec="avc1.64001F" acodec="mp4a.40.2" progressive="True" type="video">,
<Stream: itag="137" mime_type="video/mp4" res="1080p" fps="30fps" vcodec="avc1.640028" progressive="False" type="video">,
<Stream: itag="248" mime_type="video/webm" res="1080p" fps="30fps" vcodec="vp9" progressive="False" type="video">,
<Stream: itag="399" mime_type="video/mp4" res="None" fps="30fps" vcodec="av01.0.08M.08" progressive="False" type="video">,
<Stream: itag="136" mime_type="video/mp4" res="720p" fps="30fps" vcodec="avc1.4d401f" progressive="False" type="video">,
<Stream: itag="247" mime_type="video/webm" res="720p" fps="30fps" vcodec="vp9" progressive="False" type="video">,
<Stream: itag="398" mime_type="video/mp4" res="None" fps="30fps" vcodec="av01.0.05M.08" progressive="False" type="video">,
<Stream: itag="135" mime_type="video/mp4" res="480p" fps="30fps" vcodec="avc1.4d401e" progressive="False" type="video">,
<Stream: itag="244" mime_type="video/webm" res="480p" fps="30fps" vcodec="vp9" progressive="False" type="video">,
<Stream: itag="397" mime_type="video/mp4" res="None" fps="30fps" vcodec="av01.0.04M.08" progressive="False" type="video">,
<Stream: itag="134" mime_type="video/mp4" res="360p" fps="30fps" vcodec="avc1.4d401e" progressive="False" type="video">,
<Stream: itag="243" mime_type="video/webm" res="360p" fps="30fps" vcodec="vp9" progressive="False" type="video">,
<Stream: itag="396" mime_type="video/mp4" res="None" fps="30fps" vcodec="av01.0.01M.08" progressive="False" type="video">,
<Stream: itag="133" mime_type="video/mp4" res="240p" fps="30fps" vcodec="avc1.4d4015" progressive="False" type="video">,
<Stream: itag="242" mime_type="video/webm" res="240p" fps="30fps" vcodec="vp9" progressive="False" type="video">,
<Stream: itag="395" mime_type="video/mp4" res="None" fps="30fps" vcodec="av01.0.00M.08" progressive="False" type="video">,
<Stream: itag="160" mime_type="video/mp4" res="144p" fps="30fps" vcodec="avc1.4d400c" progressive="False" type="video">,
<Stream: itag="278" mime_type="video/webm" res="144p" fps="30fps" vcodec="vp9" progressive="False" type="video">,
<Stream: itag="394" mime_type="video/mp4" res="None" fps="30fps" vcodec="av01.0.00M.08" progressive="False" type="video">,
<Stream: itag="140" mime_type="audio/mp4" abr="128kbps" acodec="mp4a.40.2" progressive="False" type="audio">,
<Stream: itag="249" mime_type="audio/webm" abr="50kbps" acodec="opus" progressive="False" type="audio">,
<Stream: itag="250" mime_type="audio/webm" abr="70kbps" acodec="opus" progressive="False" type="audio">,
<Stream: itag="251" mime_type="audio/webm" abr="160kbps" acodec="opus" progressive="False" type="audio">]
然后,您可以选择要下载的流并获取它的itag。请注意,您应该选择Progressive =“ True” 具有所需的分辨率。
接下来,通过使用下面的命令,您可以下载属于您所选的itag的相应流。
>>> yt.get_by_itag(22).download()
完成该过程后,您可以在目录中看到下载的视频。
从Youtube下载播放列表
假设我们要在youtube中下载整个播放列表。Pytube太简单了。
首先,您需要获取播放列表的URL。
然后使用以下命令下载整个播放列表。
>>> from pytube import Playlist
>>> pl = Playlist("https://www.youtube.com/watch?v=Edpy1szoG80&list=PL153hDY-y1E00uQtCVCVC8xJ25TYX8yPU")
>>> for video in pl.videos:
>>> video.streams.get_highest_resolution().download()
上面的命令将以最佳分辨率下载播放列表中的所有视频。
请注意,缩进在使用Python时至关重要。