2023-08-31|閱讀時間 ‧ 約 4 分鐘

【Python 疑難雜症 - Pytube】RegexMatchError: channel_name: could..

raw-image

您是否苦於網路資訊爆炸嗎? 教學何其多,但卻無法好好選擇的困境呢? 歡迎加入「🔒 阿Han的軟體心法實戰營」, 這裡不給您冗餘的雜訊, 單刀直入直接送您重點, 避開選擇障礙的困境, 讓您獲得業界標準的開發起手式, 成為Top 1的頂尖人才。


✅ 今天我們預計學到…

  • 遇到問題追原因。
  • Github Issues、MR調閱。
  • 安裝未正式發版套件。


我們在「【資料處理神器區 - 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時代下為創作者、閱讀者打造的專屬共贏平台 — 為什麼要加入?

歡迎加入一起練習寫作,賺取知識!

分享至
成為作者繼續創作的動力吧!
從 Google News 追蹤更多 vocus 的最新精選內容從 Google News 追蹤更多 vocus 的最新精選內容

作者的相關文章

阿Han的沙龍 的其他內容

你可能也想看

發表回應

成為會員 後即可發表留言
© 2024 vocus All rights reserved.