初めに
Youtube Data APIを使って動画をアップロードできたので手順をメモします。
既存の記事(私が見た範囲)では書かれていなかったところがあったりしたので誰かの参考になれば。
https://qiita.com/ny7760/items/5a728fd9e7b40588237c
Youtube Data APIを利用するにあたりの概念理解
Youtube Data APIってどう使うのか分からない時、そもそもどういった構成になるかもイメージできなかったのでアップロードできた今、私のイメージで説明します。
この画像については参考程度にしてください。
Youtube Data APIはGoogle Cloud Platform(GCP)から利用することができるのでGCPへの登録が必要になります。あとはアップロード先のYoutubeチャンネル、そしてアップロードするPC(Pythonインストール済み)が必要です。
手順
以下が大まかな手順です。
- GCP登録及びプロジェクトの作成
- APIの承認情報作成
- Youtube Data APIの有効化
- PCへのPython3系のインストール
- google-api-python-clientのインストール
- アップロード用ソースの作成
- アップロード実行
上記は事前準備含めたもろもろの手順といった感じです。おおまかな所は既存記事( https://qiita.com/ny7760/items/5a728fd9e7b40588237c )様と変わらないのですが細かいところで現在(2021/9/20)と差分があったので本記事ではそこに焦点を当てて説明します。
APIの承認情報作成
作成手順は変わりないのですが作成された情報をJSON形式でダウンロードできる機能が追加されました。
メモの手間が省けます。
ダウンロードしたものが以下です。
{
"installed": {
"client_id": "XXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.apps.googleusercontent.com",
"project_id": "XXXXXXXXXXX-324613",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_secret": "SVrT4PWT_a1mc2qxjuTNhnwn",
"redirect_uris": [
"urn:ietf:wg:oauth:2.0:oob",
"http://localhost"
]
}
}
既存記事のclient_secret.jsonとはフォーマットが異なります。ダウンロードしたまま使えるかどうかわからないので既存記事のフォーマットに直しました。
ソースコードのPython3系への修正対応
https://developers.google.com/youtube/v3/guides/uploading_a_video?hl=ja#Sample_Code
上記の公式サンプルコードは現時点(2021/09/20)ではPython2系用のコードになっています。
ですので既存記事様が行っているようにコードの修正が必要なのですが、私の場合記載箇所よりも修正する箇所が複数あったのでそこを説明します。
http.client
Python3はhttplib
からhttp.client
に移行しているのでインポートライブラリを修正する必要があるのですがそれだけだと実行時にhttplib
が無いよと怒られてしまいます。なので以下のように私は直しました。
import http.client as httplib # httplibはPython3はhttp.clientへ移行
多分上記が一番楽です。
print
の引数は()で加工用にしましょう。
# 例
print "Uploading file..." # 修正前
print("Uploading file...") # 修正後
コード検索ですべてのprint
に対して修正をしてください。
except
except
に関してもPython3では記載方法が変わっているので以下のように修正。
except HttpError, e: # 修正前
except HttpError as e: # 修正後
終わりに
終わってみればなんてことなく終わったYoutube Data APIの利用。初めて利用するものってどこまで何をしないといけないかわからないので諦めてしまいがちですが今回は成し遂げられてよかった。
これを上手く使ってApexの動画を自動で自分のチャンネルに上げて好きな時に見られるようにしたい。