0
我被分配創建一個節點js應用程序,該應用程序被提供給一些需要提交視頻的可信人員。預算非常小,他們沒有錢租用雲存儲。Youtube數據api - 將視頻上傳到一個頻道
現在我想知道是否有可能生成某種鍵並將視頻從設備上傳到單個YouTube頻道。我搜索了文檔,但找不到相關的內容。
用戶是內部和可信任的,應用程序將不會在別人的手中。
這可能嗎?如果不是,有什麼好的選擇?
感謝, 尼克
我被分配創建一個節點js應用程序,該應用程序被提供給一些需要提交視頻的可信人員。預算非常小,他們沒有錢租用雲存儲。Youtube數據api - 將視頻上傳到一個頻道
現在我想知道是否有可能生成某種鍵並將視頻從設備上傳到單個YouTube頻道。我搜索了文檔,但找不到相關的內容。
用戶是內部和可信任的,應用程序將不會在別人的手中。
這可能嗎?如果不是,有什麼好的選擇?
感謝, 尼克
在google-api-nodejs-client回購,你的YouTube視頻上傳代碼here一個例子與樣本文檔here
它使用用於上傳到YouTube的視頻Youtube insert API並設置視頻的元數據
這是一個最小的功能示例(在此示例中需要手動設置授權碼):
var google = require('googleapis');
var util = require('util');
var fs = require('fs');
var http = require('http');
var spawn = require('child_process').spawn;
var querystring = require('querystring');
var url = require('url');
var OAuth2 = google.auth.OAuth2;
var FILENAME = '/home/user/test.mp4';
// get these from https://console.developers.google.com/apis/credentials (don't forget to activate Youtube API)
var YOUR_CLIENT_ID = "XXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXX.apps.googleusercontent.com";
var YOUR_CLIENT_SECRET = "XXXXX-XXXXXXXXXXXXXXXXXX";
var YOUR_REDIRECT_URL = "https://your-domain/redirect";
var oauth2Client = new OAuth2(
YOUR_CLIENT_ID,
YOUR_CLIENT_SECRET,
YOUR_REDIRECT_URL
);
// initialize the Youtube API library
var youtube = google.youtube({
version: 'v3',
auth: oauth2Client
});
// very basic example of uploading a video to youtube
function uploadVideo() {
var req = youtube.videos.insert({
part: 'id,snippet,status',
notifySubscribers: false,
resource: {
snippet: {
title: 'Node.js YouTube Upload Test',
description: 'Testing YouTube upload via Google APIs Node.js Client'
},
status: {
privacyStatus: 'private'
}
},
media: {
body: fs.createReadStream(FILENAME)
}
}, function(err, data) {
if (err) {
console.error('Error: ' + err);
}
if (data) {
console.log(util.inspect(data, false, null));
}
process.exit();
});
var fileSize = fs.statSync(FILENAME).size;
// show some progress
var id = setInterval(function() {
var uploadedBytes = req.req.connection._bytesDispatched;
var uploadedMBytes = uploadedBytes/1000000;
var progress = uploadedBytes > fileSize ? 100 : (uploadedBytes/fileSize) * 100;
process.stdout.clearLine();
process.stdout.cursorTo(0);
process.stdout.write(uploadedMBytes.toFixed(2) + ' MBs uploaded. ' +
progress.toFixed(2) + '% completed.');
if (progress === 100) {
process.stdout.write('\nDone uploading, waiting for response...\n');
clearInterval(id);
}
}, 250);
}
var scopes = [
'https://www.googleapis.com/auth/youtube.upload',
'https://www.googleapis.com/auth/youtube'
];
var authorizeUrl = oauth2Client.generateAuthUrl({
access_type: 'offline',
scope: scopes.join(' ')
});
console.log("go to " + authorizeUrl + " to get authorization code");
var AUTHORIZATION_CODE = "X/XXXXXXXXXXXXXXXXXXXXXXX-XXXXXXXX";
oauth2Client.getToken(AUTHORIZATION_CODE, function(err, tokens) {
// Now tokens contains an access_token and an optional refresh_token. Save them.
if (!err) {
oauth2Client.setCredentials(tokens);
uploadVideo();
} else {
console.log(err);
}
});
如果用戶獲得與右聲道的授權碼,視頻將被上傳到同一通道
我忘了提,我使用在客戶端的角度,所以需要將在這裏工作。儘管如此,這給了我更好的見解。我會讓你知道它是否工作:) –
如果你想調用api客戶端,你有一個Javascript的例子[這裏](https://developers.google.com/youtube/v3/docs/videos/insert#示例) –
是的,也發現它:)只是混淆瞭如何用我的憑據替換谷歌登錄按鈕。 –