「鲑鱼均,因为一场鲑鱼之乱被主管称为鲑鱼世代,广义来说以年龄和脸蛋分类的话这应该算是一种 KNN 的机器学习,不正经的数据分析师,毕业後把人生暂停了半年,在 Google 和 AWS 办过几场演讲,缓下脚步的同时找了份跨领域工作。偶而慢跑、爱跟小动物玩耍。曾立过很多志,最近是希望当一个有细节的人。」
Youtube Analytics API 能找到的资料非常少,尤其在中文语系中更甚,相较於 Data API 的自由性,Analytics 的隐私注重较高设定也更为复杂,今天以影片资讯说明,抓取你在创作者工作室 Youtube Studio 中的资讯,他需要具有高度的验证与安全性,但也同时给予了影音串流和数位行销的工作者,有了更加多元的资料运用方式,更灵活的追踪每 Youtube 影片的影片资讯。这篇是 Python - 数位行销的 Youtube 分析教学系列文章的第 26 篇,也是我参加 2021 iThome 铁人赛中系列文章的第 26 天。另外因为 Youtube Analytics API 牵涉到私人资讯,所以我就直接拿我没什麽在经营的个人帐号来 demo 测试。
系列文章:Python — 数位行销分析与 Youtube API 教学
昨日回顾:Youtube Analytics API 教学 - 内容管理员
在开始之前需要先确定你的身份类别,上一个章节已经有提及到内容管理员的意思以及他和一般的使用者帐户有何不同,我们在开始前必须要先确定自己的身份右方的帐户图示中,可以看见一个绿色房子的图案,那个 Content Manager 即是所谓的内容管理员
内容管理员身份的取用大致与先前的相同,但这边做个总复习顺便把整体流程顺一次给大家看一遍,关於 google_auth_oauthlib ,是用於 Google API Python 端的 Library。这个 Library 是由 Google 官方进行持续性维护。首先先在 GCP 找到你的 client_secret,我们有介绍过要将 client_secret 的 Json 档案下载下来,之前我们根据 Google Cloud Platform 获得你的 client_secret (通行证) ,我们接下来需要使用到这个通行证,通行证是隐私基本上不能随意露出,在未来抓取 Youtube Analytics API 资料时,就会需要这组 Json 档通行证来进行。
import os,sys,time,csv
import google_auth_oauthlib.flow
import googleapiclient.discovery
import googleapiclient.errors
scopes = ["https://www.googleapis.com/auth/yt-analytics-monetary.readonly"]
# Get credentials and create an API client
# Disable OAuthlib's HTTPS verification when running locally.
# *DO NOT* leave this option enabled in production.
os.environ["OAUTHLIB_INSECURE_TRANSPORT"] = "1"
api_service_name = "youtubeAnalytics"
api_version = "v2"
client_secrets_file = "client_secret_.....你的金钥.........ent.com.json"
flow = google_auth_oauthlib.flow.InstalledAppFlow.from_client_secrets_file(
client_secrets_file, scopes)
credentials = flow.run_console()
youtube_analytics = googleapiclient.discovery.build(
api_service_name, api_version, credentials=credentials)
def main(dt,dt2):
var = 0
while var <1:
var = var +1
try:
request = youtube_analytics.reports().query(
startDate = str('2021-10-01'),
endDate= str('2021-10-02'),
maxResults = 10,
dimensions= dt,
metrics= dt2,
ids = 'contentOwner==yTp...............Q',
filters= 'channel==UC..................w',
sort = '-views'
)
response = request.execute()
print(response)
except:
print("Error")
def crocodile():
while True:
dt = 'video'
dt2 = input('metrics:')
if dt =="exit":
break
main(dt,dt2)
if __name__ == "__main__":
crocodile()
今天的内容偏向於过去内容的统整,将 Youtube Analyst API 做完美的总结,也使用了 Content Owner 和 user 两种角色身份来介绍 API 的使用,如果对於今天这篇内容不太清楚的小夥伴可以看看前几天的 Youtube Analyst API 系列文章唷!如果有时间也欢迎看看我的夥伴们的文章
lu23770127 — SASS 基础初学三十天
10u1 — 糟了!是世界奇观!
juck30808 — Python — 数位行销分析与 Youtube API 教学
HLD — 浅谈物件导向与Design Pattern介绍
SiQing47 — 前端?後端?你早晚都要全端的,何不从现在开始?
【鲑鱼均】 现职是 200 多万订阅 Youtuber 的数据分析师,专长在 Python 的开发与使用,大学虽然是资讯背景但总是斜杠跑到商管行销领域,以工作角度来说的话,待过 FMCG、通讯软件、社群影音产业,也算是个数位行销体系出生的资讯人。这 30 天铁人挑战赛会从数位行销角度去重新切入数据分析这件事情,期待这个社会中,每个人能在各个角力间不断冲突而渐能找到一个平衡点回归最初的统计建立最终的初心。
下一篇:Youtube Reports API 教学 - 最後一次做 OAuth2.0 授权
>>: Vaadin Pro Components 图表初探 - day26
任何语言都会提供这一种资料结构,像Golang的map ex. var hash map[strin...
除了Promise之外,还有async/await语法来处理非同步程序,它背後的操作原理与Promi...
Chap.I Practical drill 实战演练 以下内容来自这里 Prat4. Run Ex...
今天也是跟昨天一样,要来练习比较难的题目,就是APCS啦,今天要来练习的题目是APCS 106年3月...
昨天介绍了 Gradle 的 Build Scan 功能,让我们可以清楚的了解 Build 过程中的...