iT邦幫忙

2021 iThome 鐵人賽

DAY 9
3
AI & Data

Python - 數位行銷分析與 Youtube API 教學系列 第 9

Youtube Data API 教學 - 有字幕好安心 Captions.list

「鮭魚均,因為一場鮭魚之亂被主管稱為鮭魚世代,廣義來說以年齡和臉蛋分類的話這應該算是一種 KNN 的機器學習,不正經的數據分析師,畢業後把人生暫停了半年,在 Google 和 AWS 辦過幾場演講,緩下腳步的同時找了份跨領域工作。偶而慢跑、愛跟小動物玩耍。曾立過很多志,最近是希望當一個有細節的人。」


Youtube Data API 教學 - 有字幕好安心 Captions.list()

字幕在 Youtube 中扮演了重要的角色,一部影片若為嘗試打入國際市場,字幕的上稿基本上不可少的,有個好的字幕能夠吸引更多人了解你的影片內容,這篇是 Python - 數位行銷的 Youtube 分析教學系列文章的第 9 篇,也是我參加 2021 iThome 鐵人賽中系列文章的第 9 天。

關於 Captions.list() 的功能

字幕功能被稱為 Captions,這表示著若有要抓取與 YouTube 字幕相關的內容都可以從這邊開始。 一般來說,Captions.list 支持以下字幕資源方法:

cplist.png

  • List
    只需要影片 ID 不需要為管理員即可使用,能夠艘下指定影片關聯的字幕軌道列表。 這一項 API 使用不影響實際字幕。每次使用需要花費 50 扣打。
  • insert
    能夠上傳字幕。根據你上傳的文件,目前有限制最大的文件大小必須小於 100MB ,而上傳接受的檔案 MIME 類型包含:text/xml、application/octet-stream*。*每次使用需要花費 400 扣打。
  • Update
    進行字幕更新以更新字軌。使用更新功能的字軌時,您可以更改軌道的草稿狀態、為軌道上傳新的字幕文件,或兩者兼而有之。基本上限制與方式皆與 insert 類似,有限制最大的文件大小必須小於 100MB ,而上傳接受的檔案 MIME 類型包含:text/xml、application/octet-stream。每次使用需要花費 450 扣打。
  • Delete
    能新增當然就也能夠做字幕刪除,此方法的使用需要花費 50 個扣打。
  • Download
    依照原先的設定格式下載字幕軌道。當你有下載逐字稿需求時,可以使用 Download 方法。而使用這個方法需要花費 50 個扣打。

抓取字幕的語言

使用 youtube.captions().list() 的方式來抓取 VideoID 的字幕,這邊以 2021 年的蘋果秋季發表會 "Apple Event — September 14" 來測試,我們先從網址列的部分來知道這部影片的 VideoID 為何

VideoID.png

  • 我們得到該部影片的 Video ID 為 EvGOlAkLSLw,我們以此做為參數設定,並且將 part 設定為 "snippet" 來抓取影片資訊,我們藉由以下的程式碼可以得到以下結果
def youtube_search():
	request = youtube.captions().list(
		part= "snippet",
		videoId= "EvGOlAkLSLw"
)
	response = request.execute()
	print(response,"\n")

if **name** == '**main**':
	youtube_search()

2021-09-24 15.49.56.png

  • 我們可以從中發現他有抓到不同語言的字幕,包含了 EN (英文) 、De (德國)、ES-419(西班牙) 等等,當然也包含了其他更多的語言,我們用一個小迴圈精確顯示結果。

2021-09-24 16.12.46.png

  • 我們開啟原先的影片作為檢核,確定資料抓取正確,結果顯示 2021 年的蘋果秋季發表會目前有支持以下的語言,包含 EN, DE, ES-419, FR, JA, KO, RU, ZH-Han 等等的,這就是我們這次所要抓取的語言。

2021-09-24 14.57.54.png

為什麼有些影片沒有字幕?

根據頻道創作者的習慣,許多頻道創作者會將字幕嵌到原影片內,也就是在影片輸出時就已經剪入字幕了,這樣的情況下就不會抓到 Youtube 的字幕設定囉。要判斷有一個方法就是影片右下角的符號中,是否有 CC (Captions) 的圖示,如果沒有代表這部影片的文字是內嵌原影片。這邊以電賴少女的 "iPhone 13 系列值不值得買?誰適合買哪支?舊機降價現在入手是否更超值?一次幫你解答" 影片作為範例

Aotter Girls: Girl's Tech Talk.png

總結一下今天的結果!

今天說明了字幕資訊抓取的方法,也補充一下字幕相關的 API 資訊,以及其所需要花費的 Quota 數:

  • captions.list -50
  • captions.insert -400
  • captions.update -450
  • captions.delete -50

謝謝你的閱讀,如果有時間也歡迎看看我的夥伴們的文章:
lu23770127 — SASS 基礎初學三十天
10u1 — 糟了!是世界奇觀!
juck30808 — Python — 數位行銷分析與 Youtube API 教學
HLD — 淺談物件導向與Design Pattern介紹
SiQing47 — 前端?後端?你早晚都要全端的,何不從現在開始?

Jerry Chien

【鮭魚均】 現職是 200 多萬訂閱 Youtuber 的數據分析師,專長在 Python 的開發與使用,大學雖然是資訊背景但總是斜槓跑到商管行銷領域,以工作角度來說的話,待過 FMCG、通訊軟體、社群影音產業,也算是個數位行銷體系出生的資訊人。這 30 天鐵人挑戰賽會從數位行銷角度去重新切入數據分析這件事情,期待這個資本主義的社會中,每個人能在各個角力間不斷沖突而漸能找到一個平衡點回歸最初的統計建立最終的初心。

下一篇:Youtube Data API 教學 - 看透你的頻道你的心 channels.list


上一篇
Youtube Data API 教學  -  流量配額的計算 Quotas
下一篇
Youtube Data API 教學 - 看透你的頻道你的心 channels.list
系列文
Python - 數位行銷分析與 Youtube API 教學30
0
lw90967
iT邦新手 5 級 ‧ 2021-09-27 18:32:30

我也要買Apple

0
juck30808
iT邦新手 4 級 ‧ 2021-10-14 11:22:00

--- 10/14完賽前重新更新錯字與圖片 ---

我要留言

立即登入留言