# Youtube data API v3 Python入門攻略
author: D1stance
---
## Update! 特別說明
:::warning
如果你已經遇到圖下類似的錯誤,代表**你需要重創一個project**,
然後依照本說明操作,否則基本上目前無解,不然你會跟某雪魚一樣撞了三小時😭。
補充說明,圖不夠清楚可以右鍵 > 在新分頁開啟影像。
:::

## 前置作業
首先你需要有任意一隻google帳號,並且最好先去建立一個youtube頻道,猜測會有人用新的帳號來做project,可能會因為沒有頻道會以為是程式寫錯或發生什麼問題。
然後進入到 [Google Cloud Platform 網站](https://console.cloud.google.com/),
第一次使用的人應該會看到這個畫面
---

該填的都完成後來到這裡
---

點選選取專案 > 新增專案
---

隨便取名字後建立專案
---

建立好後點選右上角的鈴鐺,選取專案來進入你建立好的專案
---

按下左上角的hambuger bar(三根橫線),選擇已啟用的API和服務
---

選擇啟用API和服務
---

搜尋youtube data api v3
---

點擊youtube data api v3進入下個頁面後選擇啟用,啟用完成後進行下一步
---

點選OAUTH同意畫面,User Type 點擊外部,建立

共有三個欄位為*必填的地方,就填寫任意專案名稱跟你的信箱
---

:::danger
極度重要,必須在測試使用者這裡,點選ADD USERS輸入自己的信箱後按新增,否則之後你在跑Python程式時會錯誤到懷疑人生。**感謝郭電神提供此重要信息**
:::
然後接下來基本上就是一直繼續就好,到摘要之後進到下一步
---

創一個API金鑰(不用複製東西)
---

再創立一個OAUTH用戶端ID,選擇電腦版應用程式,任意取名
---

你會看到妳的用戶端ID跟用戶端密碼,把.json檔載下來
檔名應該會是 "client_secret_xxxxxxxxxx.json",請把它命名你喜歡的模樣,等下會用到
## 測試API
為了使用Youtube API,請使用terminal輸入
`pip install --upgrade google-api-python-client`
`pip install --upgrade google-auth-oauthlib google-auth-httplib2`
預先裝好以上兩個模組
範例程式
```python=1
import os
import google_auth_oauthlib.flow
import googleapiclient.discovery
import googleapiclient.errors
scopes = ["https://www.googleapis.com/auth/youtube.force-ssl"]
os.environ["OAUTHLIB_INSECURE_TRANSPORT"] = "1"
api_service_name = "youtube"
api_version = "v3"
client_secrets_file = "client_secret.json"
flow = google_auth_oauthlib.flow.InstalledAppFlow.from_client_secrets_file(client_secrets_file, scopes)
credentials = flow.run_console()
youtube = googleapiclient.discovery.build(api_service_name, api_version, credentials=credentials)
request = youtube.channels().list(
part = "statistics",
id = "UCFahBR2wixu0xOex84bXFvg"
)
response = request.execute()
print(response)
```
記得把剛才下載的.json檔跟.py檔放在同一個資料夾下,
把上方的變數
```python
client_secrets_file = "這裡放你的檔案名稱"
```
運行python檔案後會看到下列結果

點選那個網址後登入你的帳號,會看到下方這個畫面

選擇兩次繼續,就會得到授權碼如示意圖

貼在剛才的Python就大功告成,之後每次運行python的程式需要重複類似的動作進行登入驗證。
