2016-02-21 54 views
2

我可以很容易地更新視頻到YouTube:上傳到YouTube使用Node.js的視頻使用流

var googleapis = require('googleapis'); 

googleapis.discover('youtube', 'v3').execute(function(err, client) { 

var metadata = { 
    snippet: { title:'title', description: 'description'}, 
    status: { privacyStatus: 'private' } 
}; 

client 
    .youtube.videos.insert({ part: 'snippet,status'}, metadata) 
    .withMedia('video/mp4', fs.readFileSync('user.flv')) 
    .withAuthClient(auth) 
    .execute(function(err, result) { 
     if (err) console.log(err); 
     else console.log(JSON.stringify(result, null, ' ')); 
    }); 
}); 

的問題是,對於大文件fs.readFileSync是非常不實用。

顯然this was fixed,但所提供的例子是谷歌驅動器:

var fs = require('fs'); 
var drive = google.drive({ version: 'v2', auth: oauth2Client }); 

drive.files.insert({ 
    resource: { 
    title: 'testimage.png', 
    mimeType: 'image/png' 
    }, 
    media: { 
    mimeType: 'image/png', 
    body: fs.createReadStream('awesome.png') // read streams are awesome!  
    } 
}, callback); 

如何使用流我上傳到YouTube?

+0

看看這個:https://www.npmjs.com/package/node-youtube-resumable-upload –

+0

我使用官方模塊googleapis而不是直接調用的URL – Merc

回答

2

在我的情況下,我可以使用這個模塊上傳大文件(> 2GB)。

var youtube = require('googleapis').youtube('v3'); 

youtube.videos.insert({ 
    'auth': auth, 
    'resource': resource, 
    'part': part, 
    'media': fs.createReadStream(videoFilePath) 
}, callback); 
+0

我不是東西后當然我明白。這是一個解決方案嗎? – Merc

+0

現在您可以檢查編輯後的解決方案 –