こんにちは、おでぃーです!
最近、YouTubeに動画を何本も投稿する機会があったのですが、、、
1本のアップロードあたりに設定しなきゃいけない項目は意外と少ないのに、最後の公開設定まで進むのに4ページかかります。
面倒くさがり屋の私は、動画ごとに発生するその単調な作業をやっていてふと思いました。
「これ人間がやることか?」
この記事を見に来てくださった方はおそらくYouTubeを運営していて、同じようなことを考えているのではないでしょうか。
できるならば自動投稿にして、時間を効率的に使いたいですよね!
早速調べてみると、GASやAPIに詳しくなくても簡単にYouTubeへ動画投稿することができたので、その方法を解説します!
ちなみに、スプレッドシートと連携した自動投稿ツールを別途販売しています。
追加の機能も用意しているので、ぜひチェックしてみてください!
Google Driveに投稿する動画をアップロード
GASでは、動画や画像といったファイルはDriveAppというメソッドでGoogleDriveから取得し使用することができます。
フォルダを作成しておくと後になって管理しやすくておすすめです!
GASでプロジェクトの作成
GASでプロジェクトを作成します。
新規スプレッドシートを作成し、メニュータブの「拡張機能」→「Apps Script」を選択。
「無題のプロジェクト」をクリックし、好きな題名に変更しておきましょう。
GASでYouTube Data APIサービスの追加
次にGASでYouTube Data APIサービスを追加します。
サービスとはライブラリ同様に拡張機能のようなもので、追加するだけで手間がかかることを簡単に実現させることができます。
まず、左にあるサービスの「+」を選択。
「YouTube Data API v3」を選択し、バージョンとIDはそのままで「追加」をクリック。
GCPでYouTube Data APIの有効化
GCPでYouTube Data APIを有効化します。
GCPとはGoogle Cloud Platformの略で、簡単に言えばGoogleのサービスやアプリを使って開発をするときに使うサービスです。
細かいことは知らなくても問題ないので、次の手順に沿ってAPIを有効化しちゃいましょう!
まず、GCPにアクセスし、「プロジェクトを作成または選択」をクリック。
「新しいプロジェクト」をクリック。
好きなプロジェクト名をつけて作成。
左上のドロップダウンで、作成したプロジェクトを選択し、「APIとサービス」をクリック。
「APIとサービスの有効化」をクリック。
検索欄にYouTubeといれ、ヒットした「YouTube Data API v3」をクリック。
「有効にする」をクリック。
以上でAPIの有効化はクリアです!
GASでスクリプトを記入
エディタに下記のスクリプトをコピペします。
function uploadVideoToYouTube() {
var videoFile = '[動画のファイル名]';
var videoTitle = '[動画のタイトル]';
var videoDescription = '[動画の説明]';
var videoBlob = DriveApp.getFilesByName(videoFile).next().getBlob();
var videoMetadata = {
snippet: {
title: videoTitle,
description: videoDescription,
categoryId: '[カテゴリID]'
},
status: {
privacyStatus: '[公開ステータス]'
}
};
var video = YouTube.Videos.insert(videoMetadata, 'snippet,status', videoBlob);
}
その後、下記の項目を好きなように変更します。
- 動画のファイル名
- 動画のタイトル
- 動画の説明
- カテゴリID
- 公開ステータス
カテゴリIDとは、動画のカテゴリに対して振られているIDのことで下記のように対応しています。
1 | Film & Animation |
2 | Autos & Vehicles |
10 | Music |
15 | Pets & Animals |
17 | Sports |
18 | Short Movies |
19 | Travel & Events |
20 | Gaming |
21 | Videoblogging |
22 | People & Blogs |
23 | Comedy |
24 | Entertainment |
25 | News & Politics |
26 | Howto & Style |
27 | Education |
28 | Science & Technology |
29 | Nonprofits & Activism |
30 | Movies |
31 | Anime/Animation |
32 | Action/Adventure |
33 | Classics |
34 | Comedy |
35 | Documentary |
36 | Drama |
37 | Family |
38 | Foreign |
39 | Horror |
40 | Sci-Fi/Fantasy |
41 | Thriller |
42 | Shorts |
43 | Shows |
44 | Trailers |
ちなみに、カテゴリIDの一覧を取得するにはAPIを別で叩く必要があります。(なんとも不親切…)
YouTube Data APIリファレンス: VideoCategories: list
公開ステータスは、public(公開)、unlisted(限定公開)、private(非公開)から選んでください。
GASの実行
「実行」をクリック。
実行が完了したら、YouTubeアカウントで動画がアップロードできているか確認してみましょう。
追記
2023年9月現在、こちらの通りにアップロードを試みると、非公開(ロック済み)というステータスになり、公開ステータスにならないようです。
対策としてはAPI監査フォームから申請することですが、組織名などが必要なことから個人での監査通過は難しいと予想しています。
他の対策としては、YouTubeライブラリを使わず、APIキーやエンドポイントを用いたコーディングを実装することです。
その方法では、問題なく公開ステータスになることを確認しており、下記の記事で実装方法を解説しているので、ぜひ参考にしてみてください!
まとめ
今回は、GASを使用してYouTubeに動画を投稿してみました。
ちなみに、この方法で投稿できるのはデフォルトチャンネルのみで、ブランドアカウントではできません。
とはいえデフォルトチャンネルに投稿する場合は、
タイトルやファイル名を動画によって変更したければスプレッドシートに整備した文字列を変数に格納して使用するような処理を加えたり、定期実行したければトリガーを設定したりと、いろんなアレンジも効きますね!
ぜひやってみてください!
コメント