以下ページの転載になります。ご了承ください。
YouTubeから動画やサムネを取得するGoogle Apps Script - Yuto Hongo Portfolio
[ひとことでいうとこんな記事]
- 自分で運用しているYouTubeチャンネルの動画の情報を取得できます!
[目次]
- Google Apps Script と Googleのサービス群は相性抜群!
- YouTubeの情報をGASで取得するための事前準備
- GASでのYouTube動画情報取得の書き方
- 取得したYouTubeの動画情報をスプレッドシートに保存する
Google Apps Script と Googleのサービス群は相性抜群!
Many Google apps, one platform in the cloud
Google Apps Script は、様々なGoogleのサービスに関連したプログラムができる便利なものとなっています。
公式にも書いてあるとおりたくさんGoogleのサービスがありますが、それらをいろいろ複合的に処理できるわけですね。
YouTubeのアイコンは公式のTOPに掲載されていませんが、もちろんGASで情報を活用することができます。
YouTubeの情報をGASで取得するための事前準備
Google Apps Script を記述する前に、以下の設定をしておきましょう。
Google Apps Script ページ上部のタブ > リソース > Googleの拡張サービス… > Advanced Google Services の YouTube Data API
を有効
GASでのYouTube動画情報取得の書き方
動画リストの取得(Search.list)
YouTube.Search.list('id,snippet', {
maxResults: [budget(Integer)],
channelId: '[YourChannelID(String)]',
order: "date", // 取得順序は、最新動画順にしてある
type: "video",
pageToken: '[NextToken(String)]'
})
- [budget(Integer)]:一度に何個の動画情報を取得するか
- [YourChannelID(String)]:あなたの運用しているチャンネルのID
- [NextToken(String)]:まだ取得できる動画情報がある場合、指定することで次の動画を取得できる
お気づきの人もいるかも知れませんが、NextTokenがあるということは 一気に取得できる上限があるってことなんですよね。
0 以上 50 以下の値を指定できます。デフォルト値は 5 です。
ということなので、ページングの要領で何度も動画情報を取得する必要があるということです。
ちなみに、160本ほど動画をアップロードしている方に頼まれてこの手法で取得しておりますが、なぜか64個ほどの動画情報しか取得ができていません。(原因がわかりません。だれか助けてください)
取得した動画情報の構造
以下のような動画情報がitems
に配列として複数個入ってきます。
{
"kind": "youtube#video",
"etag": etag,
"id": string,
"snippet": {
"publishedTime": datetime,
"channelId": string,
"title": string,
"description": string,
"thumbnails": {
(key): {
"url": string,
"width": unsigned integer,
"height": unsigned integer
}
},
"channelTitle": string,
"liveBroadcastContent": string
}
実際私は、以下のように加工して利用していたりします。
function ParamToVideo_(param,upload){
this.title = param.snippet.title
this.slug = param.id
this.description = param.snippet.description
this.url = `https://www.youtube.com/watch?v=${param.id}`
this.thumbnail = param.snippet.thumbnails.high.url
this.iframe = `https://www.youtube.com/embed/${param.id}`
}
titleやdescriptionやidを取得するのはもちろん、iframe用のURLを生成したりしてます。
参考: YouTube 埋め込みプレーヤーとプレーヤーのパラメータ | YouTube IFrame Player API
取得したYouTubeの動画情報をスプレッドシートに保存する
Google Apps Script は冒頭にも記述したとおり様々なGoogleのサービスと連携しているので、__YouTubeの情報を取得し、それをGoogle Spread Sheet に入れる__なんてこともかんたんにできてしまいます。
その方法等は、以前記事にさせていただいた以下の内容を参考にぜひ実施してみてください。
Spreadsheetでラクしたい Google Apps Script ソースコードテンプレート
[その他]
ささやかながらYouTubeでも、学んだことのアウトプットをしていく取り組みをしていきたいと思います。また、自分の好きなものの紹介も実施していきます。
0から学ぶチャンネル(https://www.youtube.com/channel/UCJDrlIpOiV59K3crQnygExQ)
最後までお読みいただき、誠にありがとうございます。様々なことを学んでいきたいと思っていますので、内容やソースコード等のアドバイスいただけると幸いです。