pythonでYouTubeアップロード(YouTubeAPI)

pythonでYouTubeアップロード(YouTubeAPI) プログラム

前回の記事(pythonでログ出力(loggingモジュール))では、
pythonでのログ出力例外処理の継続処理を作成しました。

今回は、YouTubeAPIを利用したpythonによる動画のアップロード
作成したいと思います。

このプログラムで出来る様になること

Youtubeの画面操作無しで、動画を投稿できるようになります。

さらにこのプログラムを応用することで、複数の動画を連続でアップロードしたり、 アップロード の自動化も望めます。

実際にアップロードした内容は以下です。130本近くの動画を再生リスト化しています。

手動でやった場合、数日作業になりますが、ここで作成するプログラムと他で作成しているプログラムの定期実行などと組み合わせれば、全て自動で行うことが可能です。

pythonで定期実行(schedule)
pythonのscheduleモジュールを利用して、プログラムの定期実行/スケジュール実行をプログラミングしていきたいと思います。このプログラムで出来る事これまでプログラミングしてきた内容を定期的に実行することが出...

pythonのソースコード

同じ内容をこちらにも記載しています。
基本的に、公式HPの内容をコピーして流用(※1)しています。
python3の環境であれば、ソースコードをそのままコピーすれば
利用できるはずです。(※2)
(動画のカテゴリは「音楽」、公開設定は「公開」でアップロードされます。)

(※1)公式HPのソースコードはpython2で書かれており、
 私の環境はpython3.8なので、次の点を公式HPの内容から修正しています。
  ・import httplibをimport http.clientへ。
  (httplib モジュールは、Python 3.0 では http.client に
   リネームされました。参考にしたサイトはこちら
  ・print “***” という記述をprint(“***”)記載へ。
  ・except ***Error , e: という記述をexcept HttpError as e:へ。

(※2)下記、事前準備有。

事前準備

次のコマンドでモジュールをインストールすることに加え、必要に応じて、足りないモジュールのインポートを行ってください。

client_secrets.jsonファイルの準備

client_secrets.jsonファイルを準備して、 pythonのソースコードと同じフォルダに配置する必要があります。

手順は、次の4ステップです。
1.Google API コンソールでプロジェクトを 作成 。
2.プロジェクト内で「 YouTube Data API v3」を有効化。
3.認証情報を作成 。
4.認証情報をJSONとしてダウンロードし、「 client_secrets.json 」
  と言う名前で pythonのソースコードと同じフォルダに配置 。

Google API コンソールでプロジェクトを 作成

Google API Console に移動します。[プロジェクトを作成] をクリックし、名前を入力して、[作成] をクリックします。

YouTube Data API v3を有効化

プロジェクトで Google Ads API を有効にする方法は、次のとおりです。

1.Google API コンソールで API ライブラリを開きます。プロンプトが表示されたら、プロジェクトのいずれかを選択するか、新しいプロジェクトを作成します。API ライブラリには、利用できるすべての API がプロダクト ファミリーと人気度によって分類され、表示されます。

2.リストに表示されない場合は、検索を使用して Google Ads API を見つけます。

3.API を選択し、[有効にする] ボタンをクリックします。

Google Ads API に Google API Console プロジェクトを設定する

認証情報を作成

[認証情報] ページから以下の手順を実行します。

1.[認証情報を作成] をクリックし、[OAuth クライアント ID] を選択します。
2.[アプリケーションの種類] で [その他] を選択します。
3.認証情報の名前を指定します。
4.[作成] をクリックします。

はじめてのアナリティクス API: インストール済みアプリケーション向け Python クイック スタート

認証情報のダウンロード

[認証情報] ページから 作成した認証情報を選択し、[JSON をダウンロード] をクリックします。

プログラムの実行

次のバッチ(youtubeUpload.py.bat)を、
pythonのソースコード「youtubeUpload.py」と
同じフォルダに配置して実行します。

なお、初めて実行した際に、ブラウザに遷移してGoogleアカウントの選択とYouTubeの管理許可を求める画面が表示されるので、画面に従って
許可する必要があります。

◆ youtubeUpload.py.bat の内容

ソースコードのチューニングについて

前述の通り、今回紹介したソースコードは、 動画のカテゴリは「音楽」、
公開設定は「公開」でアップロードされます。
こちらの修正方法を記載します。

動画のカテゴリの変更方法

ソースコード内の以下の数値部分を修正します。
(設定する値は表を参照。)
argparser.add_argument("--category", default="10"

idカテゴリ
1映画とアニメ
2自動車と乗り物
10音楽
15ペットと動物
17スポーツ
19旅行とイベント
20ゲーム
22ブログ
23コメディー
24エンターテイメント
25ニュースと政治
26ハウツーとスタイル
27教育
28科学と技術

公開設定の変更方法

やり方1: youtubeUpload.py.bat 内のpythonコマンドに--privacyStatus [公開レベル] のオプションを付与する。
やり方2:VALID_PRIVACY_STATUSES[0]を別の値に書き換える。

公開レベルについて
・public・・・公開
・private・・・非公開
・unlisted ・・・限定公開

VALID_PRIVACY_STATUSES について
次の値を持つようです。
VALID_PRIVACY_STATUSES = (“public”,”private”,”unlisted”)
例えば動画を限定公開にしたい場合、
VALID_PRIVACY_STATUSES[0] を VALID_PRIVACY_STATUSES[1] にします。

YouTube Data API v3 の制限について

無料アカウントの場合、1日6本までのアップロード制限があります。
詳しくはこちらに記載があります。(クォータの使用量)

簡単に解説すると、一日の使用制限が10000なのに対して、
動画1本のアップロードに1600消化する為、6本で9600が消化されてしまいます。
7本目をアップロードしようとした場合、次の様なメッセージが出力されます。

コメント

タイトルとURLをコピーしました