Как скачать MP4 файлы с Google Drive - PullRequest
0 голосов
/ 29 марта 2019

Привет, ребята, так что у меня есть этот кусок кода

const fs = require('fs');
const readline = require('readline');
const {google} = require('googleapis');

// If modifying these scopes, delete token.json.
const SCOPES = ['https://www.googleapis.com/auth/drive',
    'https://www.googleapis.com/auth/drive.appdata',
    'https://www.googleapis.com/auth/drive.file',
    'https://www.googleapis.com/auth/drive.metadata',
    'https://www.googleapis.com/auth/drive.metadata.readonly',
    'https://www.googleapis.com/auth/drive.photos.readonly',
    'https://www.googleapis.com/auth/drive.readonly'];

const TOKEN_PATH = 'token.json';

// Load client secrets from a local file.
fs.readFile('credentials.json', (err, content) => {
  if (err) return console.log('Error loading client secret file:', err);
  // Authorize a client with credentials, then call the Google Drive API.
  authorize(JSON.parse(content), listFiles);
  authorize(JSON.parse(content), downloadFile);
});

function listFiles(auth, drivefiles) {
  const drive = google.drive({version: 'v3', auth});
  drive.files.list({
    pageSize: 10,
    fields: 'nextPageToken, files(id, name)',
  }, (err, res) => {
    if (err) return console.log('The API returned an error: ' + err);
    const files = res.data.files;
    if (files.length) {
        //if(files.title contains 'mp4'){
      console.log('Files:');
      files.map((file) => {
        drivefiles = res.data.files;
        console.log(`${file.name} ${file.id}`);
      });
        //}
    } else {
      console.log('No files found.');
    }
  });


}

function downloadFile(auth) {

 const drive = google.drive({version: 'v3', auth});
 var fileId = '1e1IuhYX1XggM9whYr6trI9J-4gZS07kV';
 var dest = fs.createWriteStream('./testds.mp4');
 drive.files.get({fileId: fileId, alt: 'media'}, {responseType: 'stream'},
    function(err, res){
        res.data
        .on('end', () => {
            console.log('Done');
        })
        .on('error', err => {
            console.log('Error', err);
        })
        .pipe(dest);
    }
);
}

Я пытаюсь скачать файл mp4, но для этого мне сначала нужен его идентификатор. Функция listfiles выводит список всех файлов на диске, поэтому есть ли способ, с помощью которого я могу сузить список только до файлов mp4, чтобы я мог получить идентификатор файла и загрузить его?

например, если есть, я могу получить только идентификатор файла определенного файла, который, я хочу, чтобы моя проблема была решена. любой совет или помощь очень ценятся!

Заранее спасибо за любую помощь.

...