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


<<:  div及span容器标签-基础语法

>>:  Firebase推播(下) - 图片推播

5. 如何在快速发展的公司中生存

前言 这篇文章比较是条列式的列出讲者在slack快速发展中学到的几件事情,适合给快速成长的公司中的...

Ubuntu巡航记(1) -- 在Windows作业系统下安装Ubuntu

前言 机器学习的套件许多都不能在Windows作业系统内顺利安装,就算能安装也要费一番手脚,因此,兴...

[Day 27] 从零开始学Python - 科学绘图Matplotlib:画着你,画不出你的骨骼

注:本文同步刊载在Medium,若习惯Medium的话亦可去那边看呦! 今天我们要来介绍的是Matp...

DAY 19:Prototype Pattern,创建物件不再从头开始浪费时间

什麽是 Prototype Pattern? 将物件以拷贝的方式建立 如果某类物件在初始化时,会消耗...

零风险(zero risks)

-ISO 31000 在风险管理社区中,人们普遍认为无法消除风险,并且“没有风险”是不可能的,因为...