node package manager
Don’t reinvent the wheel. Reuse code within your team. Create a free org »

jab-vimeo

jab-vimeo

vimeo API + stream support & duplicate & patch & info & getDownloadStream functions

Official Node.js library for the Vimeo API (extended).

Installation

npm install jab-vimeo

API

uploadStream(stream [, opts])

Returns a Promise Object

Params

stream
Readable stream to upload to vimeo
opts
Object

opts is optional

opts.upTo1080=false - do you want to convert your video to HD? opts.name=undefined - name of video that appears in Vimeo. If no name is given, function try to determine filename on stream object.

opts.description=undefined - description of video that appears in Vimeo

Return

Promise is resolved with following properties

body
body response of patch on video
res
Object
videoId
Number

Example

var Vimeo = require('jab-vimeo').Vimeo;
var lib   = new Vimeo(CLIENT_ID, CLIENT_SECRET, ACCESS_TOKEN);
var fs    = require('fs');
 
var streamToUpload = fs.createReadStream(path.join(__dirname, 'your_video.mp4'));
 
lib.uploadStream(streamToUpload)
  .then(function(props) {
    console.log(props.res.headers);
    console.log(props.res.statusCode);
    console.log(props.body);
    console.log(props.videoId);
  });

patch(videoId, data)

Returns a Promise Object

Params

videoId
existing id of a vimeo video
data
Object

data can be anything available on Vimeo API

Return

Promise is resolved with following properties

body
body response of patch on video
res
Object
videoId
Number

Example

var Vimeo = require('jab-vimeo').Vimeo;
var lib   = new Vimeo(CLIENT_ID, CLIENT_SECRET, ACCESS_TOKEN);
 
var data = {name: 'my new video name', description: 'awesome description of my video'}
 
lib.patch(videoId, data)
  .then(function(props) {
    console.log(props.res.headers);
    console.log(props.res.statusCode);
    console.log(props.body);
    console.log(props.videoId);
  });

duplicate(videoId)

Returns a Promise Object

Params

videoId
existing id of a vimeo video

On Vimeo, there are different video quality available for download.

Function try to duplicate video with following priority: original source hd sd mobile

Return

Promise is resolved with following properties:

body
body response of patch on video
res
Object
videoId
Number

Example

var Vimeo = require('jab-vimeo').Vimeo;
var lib   = new Vimeo(CLIENT_ID, CLIENT_SECRET, ACCESS_TOKEN);
 
lib.duplicate(videoId)
  .then(function(props) {
    console.log(props.res.headers);
    console.log(props.res.statusCode);
    console.log(props.body);
    console.log(props.videoId);
  });

getDownloadStream(videoId)

Returns a Promise Object

Params

videoId
existing id of a vimeo video

On Vimeo, there are different video quality available for download.

Function try to duplicate video with following priority: original source hd sd mobile

Return

Promise is resolved with following properties:

req
hyperquest request representing readable stream

Example

var Vimeo   = require('jab-vimeo').Vimeo;
var lib     = new Vimeo(CLIENT_ID, CLIENT_SECRET, ACCESS_TOKEN);
var Promise = require('bluebird');
var fs      = require('fs');
 
function saveFile(stream) {
  return new Promise(function(resolve, reject) {
    var file = fs.createWriteStream('./downstream.mp4');
 
    stream.pipe(file);
    file.on('finish', function() { resolve(); });
    file.on('error', function(err) { reject(err); });
  });
}
 
lib.getDownloadStream(videoId)
  .then(saveFile);

info(videoId)

Returns a Promise Object

Params

videoId
existing id of a vimeo video

Return

Promise is resolved with following properties

body
body response of patch on video
res
Object
videoId
Number

Example

var Vimeo = require('jab-vimeo').Vimeo;
var lib   = new Vimeo(CLIENT_ID, CLIENT_SECRET, ACCESS_TOKEN);
 
lib.info(videoId)
  .then(function(props) {
    console.log(props.res.headers);
    console.log(props.res.statusCode);
    console.log(props.body);
    console.log(props.videoId);
  });