2016-02-21 2 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 По-видимому, но пример, приведенный для Google Drive:

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

В моем случае я могу загрузить этот модуль для большого файла (> 2 ГБ).

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

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

Я не конечно, я понимаю. Это решение? – Merc

+0

Теперь вы можете проверить отредактированное решение –

Смежные вопросы