使用 Python 庫 PyTube 下載 YouTube 影片
你瞭解“YouTube”吧?沒錯,它是在印度尤其受歡迎的著名影片分享網站
. 很多時候,你會喜歡一些影片,並嘗試下載以便稍後/離線觀看。然後你可能會遇到“YouTube 下載器”應用程式,它可以從 YouTube 網站下載影片。但是,大多數應用程式都有一些限制(如果你免費使用)或需要付費。但你是否想過建立我們自己的程式來下載 YouTube 影片?如果沒有,你應該嘗試一下,因為使用 Python 庫實現起來非常簡單。Python 提供了“Pytube”庫來從 YouTube 下載影片。這個庫允許我們從網路下載影片。
Pytube 不是標準庫,所以我們需要安裝它。使用 pip,安裝起來很容易:
pip install pytube Collecting pytube Downloading https://files.pythonhosted.org/packages/af/56/c9b484e93e1f3a4ef6aefbc1e68258121831007938556daf968ab4519c9c/pytube-9.3.5-py3-none-any.whl Installing collected packages: pytube Successfully installed pytube-9.3.5
下載影片
正如我們在文章中看到的,使用 Pytube 下載 YouTube 影片非常簡單。
所以,讓我們從匯入 YouTube 類開始:
from pytube import YouTube
現在讓我們嘗試獲取影片連結。例如,選擇一個你喜歡的影片:
yt = YouTube('https://www.youtube.com/watch?v=-KnAZcXzxRA')Pytube API 使所有資訊都易於訪問。例如,以下是如何獲取影片標題:
>>> yt.title 'Redmi Note 7 Fake 48MP Camera? Explained \U0001f525\U0001f525\U0001f525'
獲取縮圖 URL:
>>> yt.thumbnail_url 'https://i.ytimg.com/vi/-KnAZcXzxRA/default.jpg'
現在,我們需要選擇媒體格式。Pytube 模組提供了以下媒體格式來下載影片:
>>> yt.streams.all() [<Stream: itag="22" mime_type="video/mp4" res="720p" fps="30fps" vcodec="avc1.64001F" acodec="mp4a.40.2">, <Stream: itag="43" mime_type="video/webm" res="360p" fps="30fps" vcodec="vp8.0" acodec="vorbis">, <Stream: itag="18" mime_type="video/mp4" res="360p" fps="30fps" vcodec="avc1.42001E" acodec="mp4a.40.2">, <Stream: itag="36" mime_type="video/3gpp" res="240p" fps="30fps" vcodec="mp4v.20.3" acodec="mp4a.40.2">, <Stream: itag="17" mime_type="video/3gpp" res="144p" fps="30fps" vcodec="mp4v.20.3" acodec="mp4a.40.2">, <Stream: itag="137" mime_type="video/mp4" res="1080p" fps="30fps" vcodec="avc1.640028">, <Stream: itag="248" mime_type="video/webm" res="1080p" fps="30fps" vcodec="vp9">, <Stream: itag="136" mime_type="video/mp4" res="720p" fps="30fps" vcodec="avc1.4d401f">, <Stream: itag="247" mime_type="video/webm" res="720p" fps="30fps" vcodec="vp9">, <Stream: itag="135" mime_type="video/mp4" res="480p" fps="30fps" vcodec="avc1.4d401f">, <Stream: itag="244" mime_type="video/webm" res="480p" fps="30fps" vcodec="vp9">, <Stream: itag="397" mime_type="video/mp4" res="None" fps="30fps" vcodec="av01.0.05M.08">, <Stream: itag="134" mime_type="video/mp4" res="360p" fps="30fps" vcodec="avc1.4d401e">, <Stream: itag="243" mime_type="video/webm" res="360p" fps="30fps" vcodec="vp9">, <Stream: itag="396" mime_type="video/mp4" res="None" fps="30fps" vcodec="av01.0.05M.08">, <Stream: itag="133" mime_type="video/mp4" res="240p" fps="30fps" vcodec="avc1.4d400d">, <Stream: itag="242" mime_type="video/webm" res="240p" fps="30fps" vcodec="vp9">, <Stream: itag="395" mime_type="video/mp4" res="None" fps="30fps" vcodec="av01.0.05M.08">, <Stream: itag="160" mime_type="video/mp4" res="144p" fps="30fps" vcodec="avc1.4d400c">, <Stream: itag="278" mime_type="video/webm" res="144p" fps="30fps" vcodec="vp9">, <Stream: itag="394" mime_type="video/mp4" res="None" fps="30fps" vcodec="av01.0.05M.08">, <Stream: itag="140" mime_type="audio/mp4" abr="128kbps" acodec="mp4a.40.2">, <Stream: itag="171" mime_type="audio/webm" abr="128kbps" acodec="vorbis">, <Stream: itag="249" mime_type="audio/webm" abr="50kbps" acodec="opus">, <Stream: itag="250" mime_type="audio/webm" abr="70kbps" acodec="opus">, <Stream: itag="251" mime_type="audio/webm" abr="160kbps" acodec="opus">] >>> </Stream:>
假設我們想要獲取第一個流:
>>> stream = yt.streams.first() >>> stream <Stream: itag="22" mime_type="video/mp4" res="720p" fps="30fps" vcodec="avc1.64001F" acodec="mp4a.40.2">
影片將下載到你的目標路徑:
>>> stream.download('f:/')
'f:/Redmi Note 7 Fake 48MP Camera Explained \U0001f525\U0001f525\U0001f525.mp4'或者,你也可以將影片下載到當前工作目錄:
>>> stream.download() 'C:\Python\Python361\Redmi Note 7 Fake 48MP Camera Explained \U0001f525\U0001f525\U0001f525.mp4'
現在我們看到影片已下載到我們的目標路徑。

廣告
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP