APIを介してYouTubeに動画をアップロードすることは、ユーザーの明示的な承認に制限されているようであり、これはFWTではなくOAuth2を介してのみ可能であるというすべてのポイント. V3 API を使用すると、401 応答コードが返されますが、プレイリストのフェッチなどの読み取り専用操作を実行できます...
サーバー間のタスクの自動化では、OAuth は最適なソリューションではありません。
node.js を使用したテスト コードは次のとおりです。
var fs = require('fs')
var google = require('googleapis')
var youtube = google.youtube('v3')
var authClient = new google.auth.JWT(
'service-account-email@developer.gserviceaccount.com',
'path/to/key.pem',
null,
['https://www.googleapis.com/auth/youtube', 'https://www.googleapis.com/auth/youtube.upload'])
authClient.authorize(function (err, tokens) {
if (err) {
return console.log(err)
}
google.options({ auth: authClient })
youtube.videos.insert({
media: {
body: fs.createReadStream('video.mp4')
},
autoLevels: true,
part: 'status,snippet',
mediaType: 'video/mp4',
resource: {
snippet: {
title: 'test video',
description: 'This is a test video uploaded from the YouTube API'
},
status: {
privacyStatus: 'public'
}
}
}, function (err, res) {
if (err) {
return console.error(err)
}
console.log('Upload done!')
})
})
Google API node.js クライアントの元の例: https://github.com/google/google-api-nodejs-client/blob/master/examples/jwt.js