YouTube影片下載(七):下載播放清單中的全部影片 - 超圖解 ...

文章推薦指數: 80 %
投票人數:10人

下載YouTube影片的Pytube程式庫有個下載播放清單影片的Playlist類別,本文將修改之前的YouTube影音下載程式碼,讓它下載播放清單中的全部影片。

Skiptocontent YouTube影片下載(七):下載播放清單中的全部影片 教學文件 cubie2021/08/252021/10/20 下載YouTube影片的Pytube程式庫有個下載播放清單影片的Playlist類別,本文將修改之前的YouTube影音下載程式碼,讓它下載播放清單中的全部影片。

取得YouTube播放清單網址 以GreatArtExplained頻道為例,點擊其中一個播放清單: 瀏覽器將透過這個網址播放影片: https://www.youtube.com/watch?v=T15Kv6dtYO0&list=PLjBkTEtM_Tw_cQi2PXrD9zSdFFsr4NQ5U 如果點擊右側播放清單裡的任一影片,上面的網址後面會加上一個代表索引編號的index參數。

所以,播放清單影片的網址格式如下,透過程式下載影片時,index參數可以省略,因為無論是否添加index參數,都能取得清單裡的所有影片的網址。

透過YouTube伺服器的playlist程式,也能取得指定的播放清單的影片,格式如下: 例如,把上面網址裡的list參數,剪貼到playlist網址後面,將能檢視清單中的所有影片: https://www.youtube.com/playlist?list=PLjBkTEtM_Tw_cQi2PXrD9zSdFFsr4NQ5U 透過Pytube的Playlist類別取得「播放清單」的所有影片網址 Pytube程式庫的Playlist類別接收一個「播放清單」網址;底下敘述將建立一個名叫‘pl’的Playlist物件,透過pl物件的video_urls屬性,或直接存取pl物件,都能傳回列表(list)格式的影片網址清單。

Playlist類別物件(即pl物件)包含YouTube物件,因此底下敘述可下載播放清單的全部影片: forvideoinp.videos: video.streams.first().download() 12 forvideoinp.videos:  video.streams.first().download() 本文的程式僅利用Playlist取得影片清單的全部網址,執行下載和合併影音的程式,沿用之前的程式碼。

筆者將下載播放清單影片的Python程式檔命名成tube_list.py,它支援之前的所有命令行參數,如:-a(僅下載聲音)和-fhd(高畫質格式),並新增一個指定下載影片數量的-end參數。

例如,在終端機或命令提示字元中執行tube_list.py,它將下載指定播放清單當中的前三個高畫質影片: pythontube_list.py播放清單網址-fhd-end3 tube_list.py程式檔修改自之前的tube.py檔,main()函式的改動內容如下: check_urls()函式負責從播放清單中取出一個網址,交給download_media()函式進行下載: defcheck_urls(): globalargs globalfile_index#下載檔的列表索引 globaldownload_count download_count=1 iffile_index



請為這篇文章評分?