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

閱讀時間約 4 分鐘
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>')
raw-image

小明也是滿臉??? 究竟發生啥事情呢? 於是找到我們進行求助, 那就讓我們來幫他看看吧!

什麼原因

要怎麼抓問題呢? 最簡單的方式就是回到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時代下為創作者、閱讀者打造的專屬共贏平台 — 為什麼要加入?

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

avatar-img
116會員
257內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
阿Han的沙龍 的其他內容
我們在「【Python 軍火庫 - PySubs2】 字幕檔提取工具的好幫手(ass、ssa、srt、vtt…)」有稍微跟大家介紹了字幕檔處理工具的基本用法,相信對於讀取字幕,更改文字內容應該是再容易不過的事了,咦…,但我們好像都沒有看到關於新增「段落」的資訊耶,不曉得是我沒有仔細尋找還是真的沒
我們在「」有稍微介紹了JSON格式, 也知曉JSON格式非常簡單暴力, 只要一對<key>與<value>就能成行, 對於工程人員來說已經比XML、文字檔…等傳統格式更加容易理解, 而且也具備一定的資料型態基礎, 但使用這麼久以來常常發現到想要對某個欄位註解時好像不太容易, 頂多就是多一個欄位叫做「
JSON 全名 JavaScript Object Notation,其格式基本上就是key: value的組成如下: { "name": "Bob", "age": 40, "childs": [ { "name": "Justin", "
請耐心閱讀到最後, 我們會提供更優雅的方式來處理這項需求… 故事起源 我們常常在使用Python的過程中會進行I/O的一些處理, 那麼最基本的就會是讀取檔案列表並對每一個特定的檔案名稱進行處理, 像這樣: import glob mp4_files = glob.glob(os.path
關於字幕檔我們常常會看到「.srt」、「.ass」、「.vtt」…等影片的字幕格式, 但你知道嗎? 這些字幕檔是很重要的一個寶貴資訊, 可以從中對段落的長度、文字進行提取, 此時就需要一個強大的工具來幫我們解析一下字幕檔, 就讓我們來看看怎麼用吧! 安裝 pip install pysubs2
這次要來介紹「pytube」這套神器, 當我們需要對影音進行統計分析時就需要使用這把利器來破關, 尤其是AI時代的來臨, 我們會需要大量的資料來進行模型的訓練, 而我們總不可能海量的去撈取這些資料, 會非常沒有效率也浪費空間, 因此我們會先進行偵查的任務, 需要派出偵察隊來蒐集youtube的影音資
我們在「【Python 軍火庫 - PySubs2】 字幕檔提取工具的好幫手(ass、ssa、srt、vtt…)」有稍微跟大家介紹了字幕檔處理工具的基本用法,相信對於讀取字幕,更改文字內容應該是再容易不過的事了,咦…,但我們好像都沒有看到關於新增「段落」的資訊耶,不曉得是我沒有仔細尋找還是真的沒
我們在「」有稍微介紹了JSON格式, 也知曉JSON格式非常簡單暴力, 只要一對<key>與<value>就能成行, 對於工程人員來說已經比XML、文字檔…等傳統格式更加容易理解, 而且也具備一定的資料型態基礎, 但使用這麼久以來常常發現到想要對某個欄位註解時好像不太容易, 頂多就是多一個欄位叫做「
JSON 全名 JavaScript Object Notation,其格式基本上就是key: value的組成如下: { "name": "Bob", "age": 40, "childs": [ { "name": "Justin", "
請耐心閱讀到最後, 我們會提供更優雅的方式來處理這項需求… 故事起源 我們常常在使用Python的過程中會進行I/O的一些處理, 那麼最基本的就會是讀取檔案列表並對每一個特定的檔案名稱進行處理, 像這樣: import glob mp4_files = glob.glob(os.path
關於字幕檔我們常常會看到「.srt」、「.ass」、「.vtt」…等影片的字幕格式, 但你知道嗎? 這些字幕檔是很重要的一個寶貴資訊, 可以從中對段落的長度、文字進行提取, 此時就需要一個強大的工具來幫我們解析一下字幕檔, 就讓我們來看看怎麼用吧! 安裝 pip install pysubs2
這次要來介紹「pytube」這套神器, 當我們需要對影音進行統計分析時就需要使用這把利器來破關, 尤其是AI時代的來臨, 我們會需要大量的資料來進行模型的訓練, 而我們總不可能海量的去撈取這些資料, 會非常沒有效率也浪費空間, 因此我們會先進行偵查的任務, 需要派出偵察隊來蒐集youtube的影音資
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
zip()是 Python 的一個內建函數,用於將多個可迭代物件中的元素配對成元素組,本篇我們會來討論zip() 的主要用法。
Thumbnail
接續上一篇文章,使用kaggle平台上的數據資料來實作說明。 [Python ]pandas基本操作,查看、新增、修改資料 用 pandas (pd) 來畫圖了解 MentalHealthSurvey 資料結構,圖表可以幫助你直觀地瞭解 MentalHealthSurvey 資料的結構和變數
Thumbnail
本文主要介紹如何使用pandas來查看、新增、修改資料。 [Python ]pandas讀取寫入CSV 與Excel文件 [Python ]資料分析工具pandas基礎介紹 本文將使用kaggle平台上的數據資料來實作說明。 基本操作 查看資料 df.head():顯示前5行數據。
Thumbnail
當您看到這樣的訊息時: TypeError: exceptions must derive from BaseException 可能會很困惑究竟是什麼原因導致這樣的錯誤發生, 那本章節將會告訴您以下: 怎麼發生的? 怎麼解決? 我們應該用Exception或BaseException嗎
Thumbnail
我們將探索函式的定義和調用,這是程式設計中非常重要且強大的概念,它可以將大型程式切割成小的、可重複使用的函式。讓我們一起來了解吧!函式的定義、呼叫和返回值是學習函式的核心。
Thumbnail
我們探討了while迴圈的使用,不同於for迴圈,while迴圈以條件式判斷為基礎,而非限定重複次數。我們介紹了使用break語句強制結束迴圈,以及使用continue語句跳過特定程式碼並返回迴圈開頭,同時,我們提及了無窮迴圈的概念,強調了在迴圈中必須更改迴圈變數的值,以避免無窮迴圈的發生。
Thumbnail
迴圈對象可以是列表或範圍,透過定義重複動作的內容,我們可以在迴圈中執行指定次數的操作。利用range函數,我們可以自訂重複執行的次數。同時,我們也介紹了break和continue的使用,以及巢狀迴圈的特性。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
zip()是 Python 的一個內建函數,用於將多個可迭代物件中的元素配對成元素組,本篇我們會來討論zip() 的主要用法。
Thumbnail
接續上一篇文章,使用kaggle平台上的數據資料來實作說明。 [Python ]pandas基本操作,查看、新增、修改資料 用 pandas (pd) 來畫圖了解 MentalHealthSurvey 資料結構,圖表可以幫助你直觀地瞭解 MentalHealthSurvey 資料的結構和變數
Thumbnail
本文主要介紹如何使用pandas來查看、新增、修改資料。 [Python ]pandas讀取寫入CSV 與Excel文件 [Python ]資料分析工具pandas基礎介紹 本文將使用kaggle平台上的數據資料來實作說明。 基本操作 查看資料 df.head():顯示前5行數據。
Thumbnail
當您看到這樣的訊息時: TypeError: exceptions must derive from BaseException 可能會很困惑究竟是什麼原因導致這樣的錯誤發生, 那本章節將會告訴您以下: 怎麼發生的? 怎麼解決? 我們應該用Exception或BaseException嗎
Thumbnail
我們將探索函式的定義和調用,這是程式設計中非常重要且強大的概念,它可以將大型程式切割成小的、可重複使用的函式。讓我們一起來了解吧!函式的定義、呼叫和返回值是學習函式的核心。
Thumbnail
我們探討了while迴圈的使用,不同於for迴圈,while迴圈以條件式判斷為基礎,而非限定重複次數。我們介紹了使用break語句強制結束迴圈,以及使用continue語句跳過特定程式碼並返回迴圈開頭,同時,我們提及了無窮迴圈的概念,強調了在迴圈中必須更改迴圈變數的值,以避免無窮迴圈的發生。
Thumbnail
迴圈對象可以是列表或範圍,透過定義重複動作的內容,我們可以在迴圈中執行指定次數的操作。利用range函數,我們可以自訂重複執行的次數。同時,我們也介紹了break和continue的使用,以及巢狀迴圈的特性。