Как загрузить видео на YouTube из облачной функции firebase - PullRequest
0 голосов
/ 09 июля 2020

Есть ли способ загрузить видео из облачной функции firebase на youtube?
Если возможно, и если мы загружаем дату 2 ГБ с помощью облачной функции firebase, взимается ли плата за передачу данных 2 ГБ, изменение $ 0,12 * 2

1 Ответ

0 голосов
/ 09 июля 2020

Вы можете использовать клиентскую библиотеку Nodejs для Youtube API. Я рекомендую вам go через Quickstart для этой клиентской библиотеки и следовать YouTube API Samples , где вы можете найти пример того, как загрузить видео:

'use strict';

/**
 * Usage: node upload.js PATH_TO_VIDEO_FILE
 */

const fs = require('fs');
const path = require('path');
const readline = require('readline');
const {google} = require('googleapis');
const {authenticate} = require('@google-cloud/local-auth');

// initialize the Youtube API library
const youtube = google.youtube('v3');

// very basic example of uploading a video to youtube
async function runSample(fileName) {
  // Obtain user credentials to use for the request
  const auth = await authenticate({
    keyfilePath: path.join(__dirname, '../oauth2.keys.json'),
    scopes: [
      'https://www.googleapis.com/auth/youtube.upload',
      'https://www.googleapis.com/auth/youtube',
    ],
  });
  google.options({auth});

  const fileSize = fs.statSync(fileName).size;
  const res = await youtube.videos.insert(
    {
      part: 'id,snippet,status',
      notifySubscribers: false,
      requestBody: {
        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),
      },
    },
    {
      // Use the `onUploadProgress` event from Axios to track the
      // number of bytes uploaded to this point.
      onUploadProgress: evt => {
        const progress = (evt.bytesRead / fileSize) * 100;
        readline.clearLine(process.stdout, 0);
        readline.cursorTo(process.stdout, 0, null);
        process.stdout.write(`${Math.round(progress)}% complete`);
      },
    }
  );
  console.log('\n\n');
  console.log(res.data);
  return res.data;
}

if (module === require.main) {
  const fileName = process.argv[2];
  runSample(fileName).catch(console.error);
}

module.exports = runSample;

Что касается цен, Youtube API является бесплатным, но ваши расходы будут зависеть от плана Firebase , который вы выберете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...