使用 pytube 套件下載 YouTube 影片
Python,  免費資源分享

使用 pytube 套件下載 YouTube 影片

用 pytube 套件下載 youtube 影片,方法很簡單,分享給大家試試!

1. 首先,打開 Anaconda Prompt / cmd,於命令提示字元視窗中輸入「pip install pytube」後,按 Enter


可以他的網站查看版本


2. 打開 Jupyter Notebook,並新增一個檔案。


於第一列輸入「from pytube import YouTube」匯入套件,按 Shift + Enter 執行並跳到下一列。


於第二列輸入「yt = YouTube(‘youtube網址’)


於第三列輸入「yt.streams.first().download()」開始下載影片


但這樣下載下來的影片,通常都不是最高畫質!


雖然我們可以先把 yt.streamsprint 出來,從裡面 res 找到最高畫質的,再用 filter 方法,篩選後下載,但這個方式很麻煩。


不過在 pytube 的說明文件,有提供一個方法,可以直接下載最高畫質的影片!
請在新的一列輸入「yt.streams.get_highest_resolution().download()」(這個就是把剛剛的 first 改成 get_highest_resolution 方法),輸入完後執行。


下載完後可以發現,影片的畫質變高了!


但其實 1280 * 692 還不是這個影片的最高畫質,這個影片的最高是 2160p,用 get_highest_resolution 可以載到的是「一個有影片 + 聲音的最高畫質的影片」,如果直接用 filter 方法,下載 2016p 的影片,這個影片檔是沒有聲音的,音檔要再另外載,之後再將它們合併。


Python 程式碼:




請問能不能不寫程式碼,直接下載影片?

答案是可以喔!打開妳的 Anaconda Prompt / cmd,先用 cd 指令,到妳要下載影片的資料夾,然後輸入「pytube YouTube 網址」,YouTube 網址,可以是單一影片,或者是清單,輸入完後按 Enter 執行,影片就會下載囉!


不過因為有些影片,它是無法下載的,所以如果是下載清單影片,而且數量多的話,很容易載到無法下載的,然後就卡在那邊,所以接下來要來教怎麼用程式碼來下載清單影片,而且如果遇到不能載的,就跳過它,繼續下載下一部影片。




3. 回到 Jupyter Notebook,在新的一列輸入「from pytube import Playlist」匯入套件。


輸入「p = Playlist(‘youtube清單網址’)」設定清單網址


輸入下方內容,可以看到清單裡,影片的標題。


迴圈裡改成「video.streams.get_highest_resolution().download()」就可以下載影片了!不過剛剛也說過,如果影片不能載,出錯的話就會卡在那邊,所以我們要寫例外處理,當影片出錯時就跳過換下一部影片。


4. 將下方內容輸入至新的一列


這次將迴圈更改,變數 url 存放清單裡,每一筆影片的網址,有幾部影片迴圈就會跑幾次!程式碼裡的 try、except、else,就是例外處理的程式,下載時如果出錯,就執行 except 裡的敘述,如果沒錯就執行最底下 else 裡的敘述。


Python 程式碼:





此次教學就到這邊!

想下載最高畫質且有聲音的影片,請參考以下兩篇:

使用 You-Get 套件下載影片 – JB 程式筆記 (jbprogramnotes.com)

使用 You-Get 套件搭配 FFmpeg – JB 程式筆記 (jbprogramnotes.com)







發表迴響