首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用S3将文件从node.js上传到Youtube

使用S3将文件从node.js上传到Youtube
EN

Stack Overflow用户
提问于 2014-03-26 15:56:33
回答 2查看 2.8K关注 0票数 5

使用以下代码将文件从S3上传到youtube:

代码语言:javascript
运行
复制
s3.setBucket('MyBucket'); 
s3.get('MyBucket/5/' + filename, null, 'stream', function(err, response) {  
    googleapis.discover('youtube', 'v3').execute(function(err, client) {
      var metadata = {
              snippet: { title: title, description: description}, 
                status: { privacyStatus: 'public' }
      };
      client
          .youtube.videos.insert({ part: 'snippet,status'}, metadata)
          .withMedia('video/mp4', response)
          .withAuthClient(auth)
          .execute(function(err, result) {
            if (err) console.log(err);
            else console.log(JSON.stringify(result, null, '  '));
            response.redirect('/share?set=yt&id=' + result.id);
          });       });     });

不工作,因为行:

.withMedia(视频/MP4,响应)

它取代了原来的那个,起作用了:

fs.readFileSync('/temp/myfile.png')

换句话说:如果我在我的笔记本电脑上上传一个本地文件,这将是可行的,因为我使用的是文件系统对象。

EN

回答 2

Stack Overflow用户

发布于 2015-11-16 11:37:17

如果有人在寻找答案,下面是:

代码语言:javascript
运行
复制
var googleapis = require('googleapis'),
    OAuth2 = googleapis.auth.OAuth2,
    ytdapi = googleapis.youtube('v3'),
    AWS = require('aws-sdk'),
    s3  = new AWS.S3;

var s3data = {
    Bucket: 'BUCKET_NAME',
    Key: 'VIDEO_NAME'
};

s3.getObject(s3data, function (err, data) {
    var params = {
        auth: oauth2Client,
        part: 'snippet,status',
        resource: {
            snippet: {
                title: 'Title',
                description: 'Description'
            },
            status: {
                privacyStatus: 'public'
            }
        },
        media: {
            mimeType: 'video/mp4',
            body: data.Body
        }
    };
    
    ytdapi.videos.insert(params, function (err, result) {
        if (err) console.log(err);
        else console.log(JSON.stringify(result, null, '  '));
    });
});

票数 7
EN

Stack Overflow用户

发布于 2018-02-27 10:10:21

这个问题有点老了,但下面是我如何使用S3 v6.10.3将存储在NodeJS中的视频上传到Youtube。

代码语言:javascript
运行
复制
const AWS = require('aws-sdk'); // v1.6.0
const s3 = new AWS.S3({region: 'eu-west-1', apiVersion: '2006-03-01'});
const {google} = require('googleapis'); // v26.0.1
const YoutubeApi = google.youtube('v3');

const s3data = {
    Bucket: bucketName,
    Key: fileName
};
let fileStream = s3.getObject(s3data).createReadStream();
const params = {
    auth: oauth2Client, // create this using 'google-auth-library'
    part: 'snippet,status',
    resource: {
        snippet: {
            title: 'Title',
            description: 'description'
        },
        status: {
            privacyStatus: 'private'
        }
    },
    media: {
        mimeType: 'video/mp4',
        body: fileStream // stream to stream copy
    }
};
YoutubeApi.videos.insert(params, function (err, result) {
    if (err) {
        console.error('error');
        console.error(err);
    }
    else {
        console.log('success');
    }
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22666520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档