YouTubeにアップロードした動画からタグを取り出してコピーし、別の動画のタグに追加するときに使えるPython3のスクリプトを書いてみた。

By | 2017年12月13日 , Last update: 2017年12月16日

はじめに

この記事の情報は2017年12月のYouTubeに関連した仕様を基に記述したものです。

YouTubeにたくさん動画をアップロードをしていると、アップロードをした後に修正が必要で、それも動画を取り替えないと修正ができないような(字幕の誤字・脱字など)間違いが紛れ込むケースも出てきます。

アップロードした動画自体は一旦削除して、修正版を再度アップロードすればいいのですが、削除した動画につけていたタグや説明もそのまま削除されてしまいます。タグや説明をYouTube謹製の編集画面でいったん表示させてから、メモ帳などのエディタを使ってコピー&ペーストするのはかなり手間のかかる作業なので、できれば避けたいところです。

そこで、YouTube Data API v3を使って動画のタグの情報を読み出して、別の動画に追加するためのPython3のコードを書いてみました。本記事ではそれについて書いていきます。

なお、次節以降のコードを使用するためには、OAuth2.0による認証のための情報の作成が必要です。

スポンサーリンク

というわけで、サクサクとコードを書きます。

ということで、YouTube Data API v3のページも参考にしながら、以下のようなコードを書いてみました。

読み込みだけだった前の記事の時とは異なり、読み書きを行うため、SCOPEを変更しています(61行目)。

69-74行目あたりでCredentialを取得していますが、ここでコマンドラインから指定された引数を使用します。そこで、このスクリプト独自のコマンドライン引数(コピー元の動画のID及びコピー先の動画のID)は別の変数にコピーした後に削除(36,37行目)してから、Credentialの取得処理に修正されたコマンドライン引数のリストを渡しています。

使用例

Python3のスクリプトの使用法

例えば、こんなタグが設定されていた動画(以下、「コピー先動画」と書きます。)があったとします。

これに対して、シェルのコマンドプロンプトから以下のコマンドを実行します。コピー先動画は第2引数に指定します。

$ python3 copytag.py <source id> <target id>

 
すると、上記のコマンドの第1引数に指定された動画のタグがコピー先動画のタグにすべて追加されますので、コピー先動画のタグは以下のようになります。

なお、第3引数以降にはCredentialを取得するためのコマンドラインオプションを指定することができますが、一度Credentialの取得に成功すると、その後は取得したものをそのまま使用しますので、コマンドラインオプションを指定する必要はありません。

認証情報の作成

YouTube Data API v3を最初に呼び出すときに限り、呼び出し元のPCにインストールされているブラウザを起動して、認証情報を作成します(呼び出し元のPCからブラウザが起動できない場合には、コマンドの実行がいったん中断して、別のブラウザから認証情報を作成するためのURLにアクセスするように指示されるので、指示通りにブラウザを起動して指定されたURLにアクセスして認証情報を作成します)。

呼び出し元のPCにインストールされているブラウザを起動することができれば、認証情報の作成は自動的に行われます。そこで、Fedora 27がインストールされているPCで認証情報が作成される様子を撮影した動画を作成しました。

Windows 10でもFedora 27の場合と同様に認証情報を自動的に作成することができますが、このあたりの記事を参考にして、pipに付属しているスクリプトを修正する必要があります。

まとめ

ここまで YouTube Data API v3を使用して、動画のタグをコピーするための方法について書きました。これで、タグのコピーがWebブラウザを使わずにコマンドライン経由でできるようになりますので、作業効率の向上につながると思います。

また、説明についても類似の方法でコピーを行うプログラムが書けそうなので、別の記事として書くかもしれません。

この記事は以上です。