YouTube に動画を投稿する場合、
ほぼ必ず設定するのがサムネイルです。
通常であれば、手動で動画の投稿、
サムネイルの設定を行いますが、
これがすべてプログラムで自動でできると、
なにかと捗ります。
YouTube では API が提供されていて、
これを利用することで、
プログラムから動画の投稿やサムネの設定が行えます。
R でもこの API を利用するためのパッケージ「tuber」があるのですが、
動画のアップロードまでは対応していますが、
サムネイル画像の設定までは対応していません。
ここでは、ちょっと手を加えることで、
サムネイル画像の設定を設定する方法を紹介します。
準備
YouTube の API を利用するために、
API を有効にすることと、
tuber のインストールが必要です。
API の有効化
Youtube API を有効にするには、
Google アカウントが必要ですが、
そもそも動画投稿するからには持っているはずなので、
アカウント作成の手順は省きます。
プロジェクトを作成する
Google ではプロジェクト単位でAPI の管理を行っています。
↓の記事を参照して、プロジェクトを作成しましょう。 既存のプロジェクトを利用する場合はこの手順は不要です。
clean-copy-of-onenote.hatenablog.com
YouTube API を有効化する
Google Cloud Platformにアクセスする
- 検索窓に「youtube data」と入力
- YouTube Data API v3 を有効にする
認証情報を作成する
API を有効にすると、API 利用時に必要な認証情報の作成に進みます。
この時に表示される
クライアントIDとクライアントシークレット
は忘れないように保管しましょう。
tuber のインストール
tuber は R 上で次のコマンドを実行することでインストールします。
devtools::install_github("soodoku/tuber", build_vignettes =TRUE)
これで準備完了です。
サムネイルを設定する
YouTube API で提供されているのは、
すでにアップロードした動画に対して、
後付けでサムネイルを設定するAPIです。
このAPIを利用する関数は「tuber」パッケージの中にはないので、
自前で作る必要があります。
ということで次のset_thumbnail
関数を作りましょう。
set_thumbnail = function(vid,file){ body <- list(media=httr::upload_file(file)) yt_check_token() req <- httr::POST("https://www.googleapis.com/upload/youtube/v3/thumbnails/set", body = body, query = list(videoId=vid), config(token = getOption("google_token"))) return(req) } yt_check_token <- function() { app_token <- getOption("google_token") if (is.null(app_token)) stop("Please get a token using yt_oauth().\n") }
set_thumbnail
では、サムネイルを設定したい動画のIDvid
と、
設定するサムネイル画像のファイルパスfile
を指定することで、
動画にサムネイルが設定されます。
APIの認証にはtuber
で行う認証をそのまま行うようにしています。
実行例
実際に利用する際には、
APIの認証→(動画のアップロード)→サムネイルの設定
という手順になります。
ここでは、その手順にそって、実行例を示します。
API の認証
library(tuber) YOUTUBE_API_ID="[クライアントID]" YOUTUBE_API_PASS="[クライアントシークレット]" yt_oauth(YOUTUBE_API_ID,YOUTUBE_API_PASS)
クライアントID及び、クライアントシークレットには、
認証情報の作成で生成した文字列を入力します。
動画のアップロード
サムネを設定する動画がないと話にならないので、
動画をアップロードしてみましょう。
動画をすでに投稿している場合は、 URLから動画のIDを抽出すればOKです。
res = upload_video("[動画ファイル]")
これで、指定した動画ファイルがアップロードされます。
res
に動画IDを含めた動画の情報が格納されています。
サムネイルの設定
それでは、先ほど投稿した動画にサムネイルを設定しましょう。
set_thumbnail(res$content$id,"[サムネイル画像ファイル]")
これだけでサムネイルの設定が完了します。
後は適当に自動化しておけば、 毎回手動でやってた手間が大幅に省けますね。
まとめ
R 上からAPIを使ってYouTubeのサムネイルを
設定する方法について紹介しました。
パッケージに用意されてない機能は自分で作ってしまうのがいいですね。