iT邦幫忙

2021 iThome 鐵人賽

DAY 26
2

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


Youtube Analytics API 教學 - 告一個段落

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 即是所謂的內容管理員

Content

定義你的 google_auth_oauthlib

內容管理員身份的取用大致與先前的相同,但這邊做個總複習順便把整體流程順一次給大家看一遍,關於 google_auth_oauthlib ,是用於 Google API Python 端的 Library。這個 Library 是由 Google 官方進行持續性維護。首先先在 GCP 找到你的 client_secret,我們有介紹過要將 client_secret 的 Json 檔案下載下來,之前我們根據 Google Cloud Platform 獲得你的 client_secret (通行證) ,我們接下來需要使用到這個通行證,通行證是隱私基本上不能隨意露出,在未來抓取 Youtube Analytics API 資料時,就會需要這組 Json 檔通行證來進行。

google_auth_oauthlib

  • 設定 scopes 和 client_secrets,該 Python 程式檔案要與 client_secrets_file 的 Json 檔案放在同一個資料夾,設定 api_service_name 和 api_version
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)

scopes

  • 訪問 URL 授權應用程序時,選擇我們上次所設定的 OAuth consent screen 畫面,從通知中可以得知 incbot 這個開發程式想要取用帳戶資料,在此點選你的 Youtube Content Manager 帳號。

consent

  • 因為是測試階段 所以會得到個 Google hasn’t verified this app 的警告,點選 Contiue 繼續,後續會告知 incbot 這個開發程式的相關使用資訊,並且詢問你是否允許他儲存與使用你的資料,因為我們是測試自己的資料,所以點選 Continue 繼續

verified

  • 最後會獲得一組臨時金鑰,請將這段金鑰複製下來,把金鑰貼回 authorization code ,接下來我們就會擁有 Youtube_Analytics_API 的使用權限了。

authorization

  • 一切都完成後,我們利用 ids 設定你的 contentOwner,並且設定 filters 為你所想要的頻道名稱,完整寫法如下呈現,可以使用迴圈的方式,撰寫你的頻道 id 參數,並且陸續將你的參數加入進去,這樣即可完成 ContentOwner 的所有子頻道資料抓取。
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()

crocodile

Youtube Analyst API 的完美 Ending

今天的內容偏向於過去內容的統整,將 Youtube Analyst API 做完美的總結,也使用了 Content Owner 和 user 兩種角色身份來介紹 API 的使用,如果對於今天這篇內容不太清楚的小夥伴可以看看前幾天的 Youtube Analyst API 系列文章唷!如果有時間也歡迎看看我的夥伴們的文章

lu23770127 — SASS 基礎初學三十天
10u1 — 糟了!是世界奇觀!
juck30808 — Python — 數位行銷分析與 Youtube API 教學
HLD — 淺談物件導向與Design Pattern介紹
SiQing47 — 前端?後端?你早晚都要全端的,何不從現在開始?

Jerry Chien

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

下一篇:Youtube Reports API 教學 - 最後一次做 OAuth2.0 授權


上一篇
Youtube Analytics API 教學 - 內容管理員
下一篇
Youtube Reports API 教學 - 最後一次做 OAuth2.0 授權
系列文
Python - 數位行銷分析與 Youtube API 教學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
lw90967
iT邦新手 5 級 ‧ 2021-10-12 18:42:02

好文推推

0
juck30808
iT邦研究生 1 級 ‧ 2021-10-14 11:24:47

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

我要留言

立即登入留言