All Projects → 3846masa → Upload Gphotos

3846masa / Upload Gphotos

Licence: mit
Upload photo to Google Photos (Unofficial).

Programming Languages

typescript
32286 projects

upload-gphotos

NPM

NPM VERSION GITHUB RELEASE LICENSE

Google Photos にファイルをアップロード.

Upload photos to Google Photos (Unofficial).

CAUTION | This library use an internal Google Photos API. USE AT YOUR OWN RISK

Requirement

  • Required: Chrome or Chromium
    • If you installed Chrome to custom path, set PUPPETEER_EXECUTABLE_PATH

Preparation

USE AT YOUR OWN RISK

  1. Turn on "Allowing less secure apps to access your account"
  2. (Optional) Login Google via browser if you haven't login from current IP address.

Installation

Executable file (Recommended)

Download your platform's binary via GitHub Releases.

npm

$ npm install -g upload-gphotos

Usage

$ upload-gphotos file [...] [--no-output-json] [--quiet] [-r retry] [-u username] [-p password] [-a albumname] [--aid albumid]

Library

This is also Node.js library.

const fs = require('fs');
const libpath = require('path');
const { GPhotos } = require('upload-gphotos');

const gphotos = new GPhotos();
const filepath = libpath.join(__dirname, './example.jpg');

(async () => {
  await gphotos.signin({
    username,
    password,
  });

  const album = await gphotos.searchAlbum({ title: 'TestAlbum' });

  const photo = await gphotos.upload({
    stream: fs.createReadStream(filepath),
    size: (await fs.promises.stat(filepath)).size,
    filename: libpath.basename(filepath),
  });

  await album.append(photo);

  console.log(photo);
})().catch(console.error);

FAQ

  • Q. Why not using Google Photos API?
  • Q. Is it support to login with SMS / 2FA / Application password?
    • A. No. I have no plan to support. See issues#196.
  • Q. I can't login, Why?
    • A. Please try to login via browser, first.
    • Google will ban to login from unknown IP.
  • Q. When uploading large / many files, Uploading was failed.
    • A. It maybe limitations of Google Photos.
    • Limitations is below. (FYI: issues#246, issues#256(comments))
      • 75 MB or 100 megapixels / 1 photo
      • 10 GB / 1 video
      • Total bandwidth maybe 10 GB / 1 day
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].