Picasa Video Upload
var gotStream = got.stream(`https://www.example.com/file`, {
encoding: null,
headers: {
//'Authorization': 'Bearer ' + accessToken
}
});
var videoData = {
body: gotStream,
contentLength: 1200102, // in bytes. max content limit is 1GB as of now.
mimeType: 'video/mp4', //should be actual mime type of video
title: 'title of the video',
summary: `summary for the video`
};
picasa.postVideo(accessToken, albumId, videoData, (a) => {
console.log(`this.bytes: ${bytesReceived}, gotStream.isPaused: ${gotStream.isPaused()}, ` + JSON.stringify(a));
});
CI
A simple Picasa Web Albums client (2.0) for nodejs. Includes Auth helpers.
Install
$ npm install --save picasa
Usage
(Check out the examples dir too, rename config.example.json > config.json and add your credentials)
const Picasa = require('picasa')
const picasa = new Picasa()
NOTE: Every Picasa API request requires an access token.
Photos
Get
const options = {
maxResults : 10 // by default get all
albumId : "6338620891611370881" // by default all photos are selected
}
picasa.getPhotos(accessToken, options, (error, photos) => {
console.log(error, photos)
})
Post
Where binary is the binary's file and the albumId the album id to be stored.
const photoData = {
title : 'A title',
summary : 'Summary or description',
contentType : 'image/jpeg', // image/bmp, image/gif, image/png
binary : binary
}
picasa.postPhoto(accessToken, albumId, photoData, (error, photo) => {
console.log(error, photo)
})
Delete
picasa.deletePhoto(accessToken, albumId, photoId, (error) => {
console.log(error)
})
Albums
Get
const options = {}
picasa.getAlbums(accessToken, options, (error, albums) => {
console.log(error, albums)
})
Create
const albumData = {
title: 'My first album',
summary: 'First album with Picasa API'
}
picasa.createAlbum(accessToken, albumData, (error, albums) => {
console.log(error, albums)
})
Auth
To get an access token follow the next flow:
1.Get the Auth URL and redirect the user to it.
// Get config here API Manager > Credentials https://console.developers.google.com/home/dashboard
const config = {
clientId : 'yourClientId',
redirectURI : 'redirectURI'
}
const authURL = picasa.getAuthURL(config)
2.Google displays a consent screen to the user, asking them to authorize your application to request some of their data.
3.Google redirects a code to your redirectURI.
4.Use the code given as GET param in order to get an access token:
// Get config here API Manager > Credentials https://console.developers.google.com/home/dashboard
const config = {
clientId : 'yourClientId',
redirectURI : 'redirectURI'
clientSecret : 'yourClientSecret'
}
picasa.getAccessToken(config, code, (error, accessToken, refreshToken) => {
console.log(error, accessToken, refreshToken)
})
5.If you need to renew an expired accessToken use the refreshToken with renewAccessToken:
const config = {
clientId : 'yourClientId',
redirectURI : 'redirectURI'
clientSecret : 'yourClientSecret'
}
picasa.renewAccessToken(config, refreshToken, (error, accessToken) => {
console.log(error, accessToken)
})
Change Log
16/05/2017: Get album, Create Album, Renew access token added. Get Photos can get all photos from an album id or all.
Contributors
Thanks to z1c0, hbakhtiyor, pauarge, wreuven
License
MIT
Play around https://developers.google.com/oauthplayground/?code=4/usq8QmuezR3Au_0UKyj9-UXmf6Bw_ij8KFWgIziYbpM#
Picasa Docs https://developers.google.com/picasa-web/docs/2.0/developers_guide_protocol