# 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的程式需要重複類似的動作進行登入驗證。 
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up