您是否苦於網路資訊爆炸嗎? 教學何其多,但卻無法好好選擇的困境呢? 歡迎加入「🔒 阿Han的軟體心法實戰營」, 這裡不給您冗餘的雜訊, 單刀直入直接送您重點, 避開選擇障礙的困境, 讓您獲得業界標準的開發起手式, 成為Top 1的頂尖人才。
我們在「【資料處理神器區 - Pytube系列】 蒐集情報讓數據會說話」有介紹怎麼分析Youtube影音資訊,但過程中卻遇到了一些問題...,沒關係,動動手做個Maker來解決麻煩吧!
故事是這樣的, 小明在使用pytube進行Youtube頻道的分析時, 發現到奇怪, 原本抓影片可以啊, 像這樣:
from pytube import YouTube
yt = YouTube('${影片網址}')
但不知道為什麼用在Channel上就這樣了:
from pytube import Channel
channel = Channel('<https://www.youtube.com/@LightUpCoding>')
小明也是滿臉??? 究竟發生啥事情呢? 於是找到我們進行求助, 那就讓我們來幫他看看吧!
要怎麼抓問題呢? 最簡單的方式就是回到Github的Issues搜尋看看。
🔍 討論中的Issue
我們可以看到相關的問題持續討論中…, 而且從, 就可以發現到事情並不單純, 那身為偵探迷的我們只好用力的追求真相拉!
這邊看到有人有發送 🔀 Merge Request, 但在2022/12/30就已經有了這筆MR, 也尚未被合併進去。
🕵️♂️ added functionality for @username URL's #144
另一筆是:🕵️♂️ https://github.com/pytube/pytube/pull/1409, 我們是使用這筆
如果想要使用該解決方案的朋友可以直接去安裝該版本,這部份個人也尚未實驗過, 因此如果有心得的朋友也歡迎分享留言。
至於怎麼安裝指定的commit版本呢?
!pip install git+https://github.com/pytube/pytube.git@42a7d8322dd7749a9e950baf6860d115bbeaedfc
只要找到相關的Pull Request, 而你覺得可行的話就可以去安裝它來試試看。
P.S 為什麼別人的套件可以這麼的容易被安裝呢? 您也可以製作出這樣的神級套件,請看這裡「【🔒 Python 先修班】教你親手打包專屬套件庫的手作課(pip install…)」。
那麼重新安裝完畢後, 我們再重新抓取一次頻道資訊應該就能正常運作了。
from pytube import YouTube, Channel
import pytube
channel = Channel('<https://www.youtube.com/channel/UC5TB0Pv2k1LdtGeMB6ErtJQ>')
urls = channel.video_urls
urls
['<https://www.youtube.com/watch?v=7pEG2ZKM2CQ>', ...]
pytube這套件雖然簡單且方便, 但可能較適用於教學或者是概念驗證, 畢竟更新速度並沒有那麼快, 看著累積許久的Issue尚未解決就令人覺得非常不安心, 因此假若您想要抓取大量數據時, 這邊會推薦 yt-dlp 這套工具, 對於傳輸進行優化, 維護頻率也高出許多, 使用起來相對安心許多。
喜歡撰寫文章的你,不妨來了解一下:
Web3.0時代下為創作者、閱讀者打造的專屬共贏平台 — 為什麼要加入?
歡迎加入一起練習寫作,賺取知識!